Раздел:
Документация0 ...
176 177 178 179 180 181 182 ...
195 Активные состояния:
•Shift-DR — осуществляется побитная загрузка байта данных;
•Update-DR — содержимое регистра данных FLASH-памяти копируется во временный регистр в буфере страницы. Чередование старшего и младшего байта при каждом прохождении состояния Update-DR осуществляется автоматически, начиная с младшего байта при загрузке команды.
PROG PAGEREAD (код команды $07)
Эта команда предназначена для считывания содержимого страницы памяти программ через порт JTAG. Реализация этой команды также зависит от модели микроконтроллера.
В «старых» моделях (ATmega 16х/32х/64х/128х и ATmegal62x) в качестве регистра данных выбирается регистр чтения виртуальной страницы (Virtual FLASH Page Read Register), размер которого на 1 байт больше размера страницы памяти программ. Побайтная пересылка содержимого страницы в сдвиговый регистр осуществляется автоматически.
Активные состояния:
•Shift-DR — осуществляется побайтная пересылка содержимого страницы FLASH-памяти в сдвиговый регистр и побитовая его выдача на вывод TDO. Первые 8 тактов используются для первоначальной загрузки сдвигового регистра, поэтому выдаваемые в это время биты следует игнорировать.
В остальных моделях в качестве регистра данных выбирается 8-битный регистр данных FLASH-памяти.
Активные состояния:
•Capture-DR — содержимое выбранного байта защелкивается в регистре данных FLASH-памяти. Чередование старшего и младшего байта при каждом прохождении состояния Capture-DR осуществляется автоматически, начиная с младшего байта при загрузке команды.
•Shift-DR — осуществляется побитовая загрузка байта данных.
14.4.4. Алгоритм программирования
В этом разделе описываются действия, которые необходимо выполнять для программирования микроконтроллеров через порт JTAG. Формат всех команд, используемых при программировании (не путать с командами JTAG), приведен в Табл. 14.20.
Таблица 14.20. Команды программирования по интерфейсу JTAG
Команда | TDI | TDO | Примечание |
1 | а. Стирание кристалла | 0100011 10000000 0110001 10000000 0110011 10000000 0110011 10000000 | xxxxxxx xxxxxxxx xxxxxxx xxxxxxxx xxxxxxx xxxxxxxx xxxxxxxxxxxxxxx | - |
Ь. Запрос состояния операции | 0110011 10000000 | xxxxxox xxxxxxxx | 2 |
2 | а. Вход в режим записи FLASH-памяти | 0100011J0010000 | xxxxxxxxxxxxxxx | - |
Ь. Загрузка дополнительного байта адреса | 0001011 сссссссс | xxxxxxxxxxxxxxx | - |
с. Загрузка старшего байта адреса | 0000111 аааааааа | xxxxxxxxxxxxxxx | - |
d. Загрузка младшего байта адреса | 000001 ljbbbbbbb | xxxxxxxxxxxxxxx | - |
е. Загрузка младшего байта данных | 0010011 iiiiiiii | xxxxxxxxxxxxxxx | - |
f. Загрузка старшего байта данных | 0010111 Jiiiiiii | xxxxxxxxxxxxxxx | - |
g. Фиксация данных | 0110111 00000000 1110111 00000000 OllOlllJOOOOOOO | xxxxxxxxxxxxxxx xxxxxxxxxxxxxxx xxxxxxxxxxxxxxx | - |
h.Запись страницы FLASH-памяти | 0110111 00000000 0110101 00000000 0110111 00000000 OllOlllJOOOOOOO | xxxxxxxxxxxxxxx xxxxxxxxxxxxxxx xxxxxxxxxxxxxxx xxxxxxxxxxxxxxx | - |
i. Запрос состояния операции | OllOlllJOOOOOOO | xxxxxoxxxxxxxxx | 2 |
3 | а. Вход в режим чтения FLASH-памяти | 0100011J0000010 | xxxxxxxxxxxxxxx | - |
Ь. Загрузка дополнительного байта адреса | 000101l cccccccc | xxxxxxxxxxxxxxx | , - |
с. Загрузка старшего байта адреса | 00001ll aaaaaaaa | xxxxxxxxxxxxxxx | - |
d. Загрузка младшего байта адреса | 000001 ljbbbbbbb | xxxxxxxxxxxxxxx | - |
е. Чтение младшего и старшего байтов данных | 0110010 00000000 011011000000000 011011100000000 | xxxxxxxxxxxxxxx xxxxxxxoooooooo xxxxxxx 00000000 | 9 8 |
(продолжение)
Команда | TDI | TDO | Примечание |
4 | а. Вход в режим записи EEPROM-памяти | 0100011 00010001 | xxxxxxx xxxxxxxx | - |
Ь. Загрузка старшего байта адреса | 0000111 аааааааа | xxxxxxx xxxxxxxx | - |
с. Загрузка младшего байта адреса | 000001 ljbbbbbbb | xxxxxxx xxxxxxxx | - |
d. Загрузка байта данных | 0010011 iiiiiiii | xxxxxxx xxxxxxxx | - |
е. Фиксация данных | 0110111 00000000 1110111 00000000 0110111 00000000 | xxxxxxx xxxxxxxx xxxxxxx xxxxxxxx xxxxxxx xxxxxxxx | - |
f. Запись страницы EEPROM-памяти | 0110011 00000000 0110001 00000000 0110011 00000000 0110011 00000000 | xxxxxxx xxxxxxxx xxxxxxx xxxxxxxx xxxxxxx xxxxxxxx xxxxxxx xxxxxxxx | - |
g. Запрос состояния операции | 0110011,00000000 | xxxxxox xxxxxxxx | 2 |
5 | а. Вход в режим чтения EEPROM-памяти | 0100011J0000011 | xxxxxxx xxxxxxxx | - |
Ь. Загрузка старшего байта адреса | 00001 П аааааааа | xxxxxxx xxxxxxxx | - |
с. Загрузка младшего байта адреса | 000001 ljbbbbbbb | xxxxxxx xxxxxxxx | - |
d. Чтение байта данных | 0110011 bbbbbbbb 0110010 00000000 OllOOllJOOOOOOO | xxxxxxx xxxxxxxx xxxxxxx xxxxxxxx xxxxxxx oooooooo | - |
6 | а. Вход в режим записи конфигурационных ячеек | 0100011.01000000 | xxxxxxx xxxxxxxx | - |
Ь. Загрузка байта данных | 0010011 iiiiiiii | xxxxxxx xxxxxxxx | 3,5 |
с.Запись дополнительного конфигурационного байта | 0111011 00000000 0111001 00000000 0111011 00000000 OlllOllJOOOOOOO | xxxxxxx xxxxxxxx xxxxxxx xxxxxxxx xxxxxxx xxxxxxxx xxxxxxxxxxxxxxx | - |
d. Запрос состояния операции | 0110111J0000000 | xxxxxoxxxxxxxxx | 2 |
е. Загрузка байта данных | 001001 ljiiiiiii | xxxxxxxxxxxxxxx | 3,5 |
0 ...
176 177 178 179 180 181 182 ...
195