Раздел: Документация
0 ... 175 176 177 178 179 180 181 ... 195 управляет элементами микроконтроллера, с которыми связан этот регистр данных. 2.На вход TMS подается последовательность сигналов 1,0, в результате чего микроконтроллер возвращается в состояние Run-Test/Idle. При прохождении состояния Update-IR содержимое сдвигового регистра фиксируется на его параллельном выходе. 3.На вход TMS подается последовательность сигналов 1, 0, 0, которые «защелкиваются» по нарастающему фронту сигнала ТСК. В результате ТАР-контроллер переходит в состояние Shift-DR. В этом состоянии в регистр данных, определяемый загруженной ранее командой, заносятся необходимые данные, начиная с младшего бита. Как и в случае команд, загрузка осуществляется с вывода TDI по нарастающему фронту сигнала ТСК. При загрузке всех битов регистра, кроме самого старшего, на выводе TMS должен удерживаться сигнал лог. О, чтобы ТАР-контроллер оставался в состоянии Shift-DR. Старший бит данных заносится в регистр при выходе контроллера из этого состояния, осуществляемого путем подачи на вход TMS лог. 1. При этом контроллер переходит в состояние Exit-DR. Одновременно с загрузкой данных на вывод TDO выдается, начиная с младшего бита, содержимое регистра данных, «захваченного» в состоянии Capture-DR. 4.На вход TMS подается последовательность сигналов 1, 0, в результате чего микроконтроллер вновь возвращается в состояние Run-Test/Idle. Если выбранный регистр имеет параллельный выход, то его содержимое фиксируется на нем при прохождении состояния Update-DR. Остается только добавить, что независимо от начального состояния ТАР-контроллера он всегда возвращается в состояние Test-Logic-Reset после удержания на выводе TMS сигнала лог. 1 в течение 5 периодов сигнала ТСК. 14.4.2. Использование интерфейса JTAG для программирования кристалла Разрешение/запрещение интерфейса JTAG (причем не только для программирования) осуществляется при помощи конфигурационной ячейки JTAGEN. Если она не запрограммирована (1), то выводы ТАР работают как обычные контакты портов ввода/вывода, а ТАР-контроллер находится в состоянии сброса. Для включения интерфейса ячейка JTAGEN должна быть запрограммирована (состояние по умолчанию). Кроме того, должен быть сброшен бит JTD регистра MCUCSR или MCUCR (Рис. 14.15). Причем, для изменения состояния этого бита новое значение необходимо записать в него дважды в течение четырех тактов.
ATmega 164x/324x/644x ATmega 165x ATmega325x/3250x/645x/6450x ATmega640x/1280x/1281x ATmega2560x/2561x ATmega 16x/32x ATmega64x/128x ATmega 162x Puc. 14.15. Регистры MCUCSR/MCUCR применительно к интерфейсу JTAG Описанный механизм позволяет использовать выводы ТАР как в качестве контактов портов ввода/вывода при нормальном функционировании микроконтроллера, так и в качестве выводов собственно порта JTAG при программировании кристалла. Разумеется, этот механизм не применим в том случае, если порт JTAG используется для отладки или тестирования. 14.4.3. Команды JTAG, используемые при программировании Из 16 команд, поддерживаемых интерфейсом, при программировании используются только пять. Описания этих команд приведены ниже. AVR RESET (код команды $0С) Эта команда предназначена для перевода микроконтроллера в состояние сброса и соответственно вывода его из этого состояния. В качестве регистра данных выбирается 1-битный регистр сброса (Reset Register). Запись 1 в этот регистр эквивалентна подаче на вывод RESET микроконтроллера напряжения НИЗКОГО уровня. В состоянии сброса микроконтроллер будет находиться до тех пор, пока в регистр сброса не будет записан 0. Активные состояния: • Shift-DR — осуществляется загрузка регистра сброса. PROG.ENABLE (код команды $04) Эта команда предназначена для разрешения программирования кристалла через порт JTAG. В качестве регистра данных выбирается 16-битный регистр разрешения программирования (Programming Enable Register). При записи в этот регистр числа $А370 (сигнатура разрешения программирования) разрешается программирование микроконтроллера по интерфейсу JTAG. При выходе из режима программирования этот регистр должен сбрасываться. Активные состояния: •Shift-DR — осуществляется загрузка регистра разрешения прерывания; •Update-DR — осуществляется сравнение содержимого регистра с числом $А370 и в случае совпадения — перевод микроконтроллера в режим программирования. PROG COMMANDS (код команды $05) Эта команда предназначена для загрузки команд программирования и выдачи результатов их выполнения (если они есть). В качестве регистра данных выбирается 15-битный регистр команд (Programming Command Register). Активные состояния: •Capture-DR — результат выполнения предыдущей команды загружается в регистр; •Shift-DR — по нарастающему фронту сигнала ТСК осуществляется выдача результата с одновременной загрузкой новой команды; •Update-DR — загруженная команда подается на блок памяти микроконтроллера; •Run-Test/ldle — в ряде случаев генерируется один тактовый импульс, необходимый для выполнения команды. PROG PAGELOAD (код команды $06) Эта команда предназначена для непосредственной загрузки страницы памяти программ через порт JTAG. Реализация этой команды зависит от модели микроконтроллера. В «старых» моделях (ATmega 16х/32х/64х/128х и ATmega 162х) в качестве регистра данных выбирается регистр загрузки виртуальной страницы (Virtual FLASH Page Load Register), размер которого равен размеру одной страницы памяти программ. Собственно сдвиговый регистр является 8-битным, а побайтная пересылка данных в буфер осуществляется автоматически. Активные состояния: •Shift-DR — осуществляется побитовая загрузка данных и побайтная их пересылка в буфер страницы FLASH-памяти. В остальных моделях в качестве регистра данных выбирается 8-битный регистр данных FLASH-памяти. 0 ... 175 176 177 178 179 180 181 ... 195
|