Программирование микроконтроллеров

В общей сложности микроконтроллеры семейств Tiny и Mega поддерживают следующие режимы программирования:

• последовательное программирование при высоком напряжении;

• последовательное программирование при низком напряжении (по интерфейсу SPI);

• параллельное программирование при высоком напряжении;

• программирование по интерфейсу JTAG.

Под «высоким» напряжением здесь понимается управляющее напряжение (12 В), подаваемое на вывод RESET микроконтроллера для перевода последнего в режим программирования.

Микроконтроллеры семейства Mega, кроме того, имеют возмож­ность самопрограммирования. Под этим термином понимается изме­нение содержимого памяти программ, управляемое самим микрокон­троллером.

В процессе программирования могут выполняться следующие опе­рации:

• стирание кристалла (Chiperase);

• чтение/запись FLASH-памяти программ;

• чтение/запись EEPROM-памяти данных;

• чтение/запись конфигурационных ячеек;

• чтение/запись ячеек защиты;

• чтение ячеек идентификатора;

• чтение калибровочного байта.

Все модели микроконтроллеров поставляются со стертой памятью программ и памятью данных (во всех ячейках находится число «$FF») • пригодны к немедленному программированию.

Режим последовательного программирования при высоком напря­женииподдерживается не всеми моделями, а только ATtinyllx/12x/ 15L. Этот режим требует дополнительного источника повышенного напряжения (12 В) и применяется, как правило, для программирова­ния микроконтроллеров перед установкой их на плату.

Режим программирования по последовательному каналуподдерживается всеми микроконтроллерами семейства Mega, а также микро­контроллерами ATtiny12x и ATtiny15L семейства Tiny. В этом режиме программирование памяти программ и данных осуществляется через последовательный интерфейс SPI. Как правило, рассматриваемый режим используется для программирования (перепрограммирования) микроконтроллера непосредственно в устройстве.

Схема включения микросхем в режиме программирования по последовательному каналу приведена на Рис. 4.5.

Программирование микроконтроллеров - student2.ru

Рис. 4.5. Включение микроконтроллеров в режиме программирования по последовательному каналу

Как видно из рисунка, для подключения программатора к устройст­ву используются три линии интерфейса: SCK (тактовый сигнал), МО-К1 (вход данных) и MISO (выход данных).

Программирование осуществляется путем посылки 4-байтных команд на вывод MOSI микроконтроллера. Результат выполнения команд чтения снимается с вывода MISO микроконтроллера. Передача команд и выдача результатов их выполнения осуществляется от старшего разряда к младшему. При этом «защелкивание» входных данных выполняется по нарастающему фронту сигнала SCK, а «защел­кивание» выходных данных — по спадающему (см. Рис. 4.6 и Рис. 4.7).

Программирование микроконтроллеров - student2.ru

Рис. 4.6. Временные диаграммы сигналов при программировании по последовательному каналу

Программирование микроконтроллеров - student2.ru

Рис. 4.7. Передача данных при программировании по последовательному каналу

Наши рекомендации