Микропроцессоры AVR. Реферат Микроконтроллеры avr студента 3го курса Курапова Анатолия Введение
Скачать 0.65 Mb.
|
Программирование конфигурационных ячеек Программирование байтов конфигурации микроконтроллеров семейства Mega осуществляется следующим образом. Младший конфигурационный байт: загрузить команду “Запись конфигурационных ячеек”; загрузить младший байт данных. Если бит сброшен в 0, выполняется программирование соответствующей ячейки, если установлен в 1 – ее сброс; записать младший байт конфигурации. Старший конфигурационный байт: Загрузить команду “Запись конфигурационных ячеек” (код 0100 0000). Загрузить младший байт данных. Если бит сброшен в 0, выполняется программирование соответствующей ячейки, если установлен в 1 — ее сброс. Записать старший байт конфигурации. Программирование ячеек защиты Программирование ячеек защиты выполняется аналогично программированию конфигурационных ячеек: Загрузить команду “Запись ячеек защиты”; Загрузить младший байт данных. Для программирования ячейки соответствующий бит должен быть сброшен в 0. Неиспользуемые биты должны быть всегда установлены в 1; Записать младший байт конфигурации. Программирование по интерфейсу JTAG Общие сведения об интерфейсе JTAG Интерфейс JTAG был разработан группой ведущих специалистов по проблемам тестирования электронных компонентов (Joint Test Action Group). В дальнейшем он был зарегистрирован в Институте инженеров по электротехнике и электронике (IEEE) в качестве промышленного стандарта IEEE Std 1149.1-1990 (IEEE Standard Test Access Port and Boundary-Scan Architecture). Встроенный в большинство микроконтроллеров семейства, интерфейс JTAG может быть использован для следующих целей: тестирования печатных плат; конфигурирования (программирования) кристалла; внутрисхемной отладки. Рассмотрим непосредственно только один из аспектов использования интерфейса JTAG, а именно программирование микроконтроллеров. Доступ к модулю JTAG осуществляется через четыре вывода микроконтроллера, составляющих так называемый “порт тестового доступа” (Test Access Port — ТАР): TMS, TCK, TDI и TDO. Стандартная разводка 10-штырькового разъема для подключения JTAG-устройств приведена на рис. 9.4. Работой модуля JTAG управляет так называемый ТАР-контроллер, представляющий собой конечный автомат с 16 состояниями. Диаграмма состояний ТАР-контроллера приведена на Рис. 14.14. Переход между состояниями осуществляется по нарастающему фронту сигнала ТСК в соответствии с сигналом, присутствующим на выводе TMS. После включения питания контроллер находится в состоянии Test-Logic-Reset. Рис. 9.4. Разводка разъема JTAG Использование интерфейса JTAG для программирования кристалла Разрешение/запрещение интерфейса JTAG осуществляется при помощи конфигурационной ячейки JTAGEN. Если она не запрограммирована (1), то выводы ТАР работают как обычные контакты портов ввода/вывода, а ТАР-контроллер находится в состоянии сброса. Для включения интерфейса ячейка JTAGEN должна быть запрограммирована (состояние по умолчанию). Кроме того, должен быть сброшен бит JTD регистра MCUCSR или MCUCR (рис. 9.5). Причем, для изменения состояния этого бита новое значение необходимо записать в него дважды в течение четырех тактов. Описанный механизм позволяет использовать выводы ТАР как в качестве контактов портов ввода/вывода при нормальном функционировании микроконтроллера, так и в качестве выводов собственно порта JTAG при программировании кристалла. Разумеется, этот механизм не применим в том случае, если порт JTAG используется для отладки или тестирования. Рис. 9.5. Регистры MCUCSR/MCUCR применительно к интерфейсу JTAG Команды JTAG, используемые при программировании Из 16 команд, поддерживаемых интерфейсом, при программировании используются только пять. AVR_RESET Эта команда предназначена для перевода микроконтроллера в состояние сброса и соответственно вывода его из этого состояния. В качестве регистра данных выбирается 1-битный регистр сброса (Reset Register). Запись 1 в этот регистр эквивалентна подаче на вывод RESET микроконтроллера напряжения НИЗКОГО уровня. В состоянии сброса микроконтроллер будет находиться до тех пор, пока в регистр сброса не будет записан 0. PROG_ENABLE Эта команда предназначена для разрешения программирования кристалла через порт JTAG. В качестве регистра данных выбирается 16-битный регистр разрешения программирования (Programming Enable Register). При записи в этот регистр числа $А370 (сигнатура разрешения программирования) разрешается программирование микроконтроллера по интерфейсу JTAG. При выходе из режима программирования этот регистр должен сбрасываться. PROG_COMMANDS Эта команда предназначена для загрузки команд программирования и выдачи результатов их выполнения (если они есть). В качестве регистра данных выбирается 15-битный регистр команд (Programming Command Register). PROG_PAGELOAD Эта команда предназначена для непосредственной загрузки страницы памяти программ через порт JTAG. Реализация этой команды зависит от модели микроконтроллера. PROG_PAGEREAD Эта команда предназначена для считывания содержимого страницы памяти программ через порт JTAG. Реализация этой команды также зависит от модели микроконтроллера. |