Раздел:
Документация0 ...
168 169 170 171 172 173 174 ...
195 роллера источников. При этом должно выполняться следующее условие: длительность импульсов как НИЗКОГО, так и ВЫСОКОГО уровня сигнала SCK должна быть больше 2 (при/ск < 12 МГц) или 3 (при/ск > 12 МГц) периодов тактового сигнала микроконтроллера.
Программирование осуществляется путем посылки 4-байтных команд на вывод MOSI микроконтроллера. Результат выполнения команд чтения снимается с вывода MISO микроконтроллера. Передача команд и выдача результатов их выполнения осуществляются от старшего бита к младшему. При этом «защелкивание» входных данных выполняется по нарастающему фронту сигнала SCK, а «защелкивание» выходных данных — по спадающему (см. Рис. 14.3 и Рис. 14.4).
Входные данные (MOSI)
Выходные данные (MISO)
S H rL ji TL rbJb
Рис. 14.4. Передача данных при программировании по последовательному каналу
Формат всех команд, используемых для программирования микроконтроллеров семейства в этом режиме, приведен в Табл. 14.12.
Таблица 14.12. Команды режима программирования по последовательному каналу
Команда | Формат команды | Описание команды |
1-й байт | 2-й байт | 3-й байт | 4-й байт |
Разрешение программирования | $АС | $53 | $00 | $00 | Разрешает программирование микроконтроллера, пока на выводе RESET присутствует напряжение НИЗКОГО уровня |
Стирание кристалла | $АС | $80 | $00 | $00 | Очистка содержимого FLASH -и EEPROM-памяти |
Чтение флага готовности RDY/BSY!) | $F0 | $00 | $00 | данные | Если 0-й бит принятого байта сброшен в 0, то предыдущая операция программирования не завершена. Перед посылкой новой команды программирования необходимо дождаться установки этого бита в 1 |
(продолжение)
Команда | Формат команды | Описание команды |
1-й байт | 2-й байт | 3-й байт | 4-й байт |
Команды загрузки |
Загрузка дополнительного байта адреса | $4D | $00 | адрес | $00 | Загрузка старшего байта адреса слова данных в моделях ATmega2560x/2561x (используется только младший бит) |
Загрузка страницы FLASH-памяти, старший байт | $48 | $00 | адрес | старший байт | Запись младшего/старшего байта в буфер страницы памяти программ. Адрес является адресом слова в пределах страницы. Младший байт должен загружаться первым |
Загрузка страницы FLASH-памяти, младший байт | $40 | $00 | адрес | младший байт |
Загрузка страницы EEPROM-памяти (страничный доступ)1) | $С1 | $00 | адрес | данные | Запись байта в буфер страницы EEPROM-памяти. Адрес является адресом байта в пределах страницы |
Команды чтения |
Чтение FLASH-памяти, старший байт | $28 | адрес (ст. байт) | адрес (мл. байт) | данные | Чтение старшего/младшего байта памяти программ. Адрес является адресом слова в пределах адресного пространства памяти программ. В моделях ATmega2560x/2561x предварительно должен быть загружен старший бит адреса (команда загрузки дополнительного байта адреса) |
Чтение FLASH-памяти, младший байт | $20 | адрес (ст. байт) | адрес (мл. байт) | данные |
Чтение EEPROM-памяти | $А0 | адрес (ст. байт) | адрес (мл. байт) | данные | Чтение содержимого ячейки EEPROM-памяти. Адрес является адресом байта в пределах адресного пространства EEPROM |
Чтение ячеек защиты | $58 | $00 | $00 | данные | Чтение байта, содержащего значение ячеек защиты |
Чтение идентификатора | $30 | $00 | адрес | данные | Чтение байта идентификатора с заданным адресом (только в режимах защиты №1 и №2, см. Табл. 14.2) |
Чтение младшего конфигурационного байта | $50 | $00 | $00 | данные | Чтение конфигурационных ячеек. Сброшенный бит означает, что соответствующая конфигурационная ячейка запрограммирована |
Чтение старшего конфигурационного байта | $58 | $08 | $00 | данные |
(продолжение)
Команда | Формат команды | Описание команды |
1-й байт | 2-й байт | 3-й байт | 4-й байт |
Чтение дополнительного конфигурационного байта | $50 | $08 | $00 | данные | Чтение конфигурационных ячеек. Сброшенный бит означает, что соответствующая конфигурационная ячейка запрограммирована |
Чтение калибровочной ячейки | $38 | $00 | адрес | данные | Чтение калибровочной константы по заданному адресу |
Команды записи |
Запись страницы FLASH-памяти | $4С | адрес (ст. байт) | адрес (мл. байт) | $00 | Запись страницы памяти программ по заданному адресу. Адрес представляет собой значение старших битов слов загруженной страницы (Рис. 14.5). В моделях ATmega2560x/2561x предварительно должен быть загружен старший бит адреса (команда загрузки дополнительного байта адреса) |
Запись EEPROM-памяти | $С0 | адрес (ст. байт) | адрес (мл. байт) | данные | Запись значения в ячейку EEPROM-памяти по заданному адресу |
Запись страницы EEPROM-памяти (страничный доступ)1) | $С2 | адрес (ст. байт) | адрес (мл. байт) | $00 | Запись страницы EEPROM-памяти по заданному адресу. Адрес представляет собой номер страницы, сдвинутый влево (Рис. 14.5) |
Запись ячеек защиты | $АС | $Е0 | $00 | данные | Запись ячеек защиты. Для программирования ячейки соответствующий бит байта данных должен быть сброшен |
Запись младшего конфигурационного байта | $АС | $А0 | $00 | данные | Запись конфигурационных ячеек. Для программирования ячейки соответствующий бит байта данных должен быть сброшен |
Запись старшего конфигурационного байта | $АС | $А8 | $00 | данные |
Записьдополнительного конфигурационного байта | $АС | $А4 | $00 | данные |
1} В моделях ATmega48x/88x/168x, ATmegal62x, ATmega 164х/324х/644х, ATmega 165х/325х/3250х/645х/6450х и ATmega640x/1280х/1281 х/2560х/2561 х. |
0 ...
168 169 170 171 172 173 174 ...
195