Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
sp_avr_2009.doc
Скачиваний:
50
Добавлен:
21.04.2023
Размер:
819.2 Кб
Скачать

4.3. Загрузка программы в энергонезависимую память программ

Рассмотрим операцию загрузки управляющей программы в энергонезависимую память программ микроконтроллера семейства AVR. Для простоты назовем эту операцию «Загрузка программы в кристалл». Данное выражение устоялось в среде инженеров. Также эту операцию называют «Прошивка памяти».

Для загрузки программы в кристалл требуется специальный программатор. Такие программаторы для микроконтроллеров семейства AVR выпускает фирма ATMEL и ряд других фирм. Для микроконтроллеров семейства AVR предусмотрены два варианта загрузки программы в кристалл: параллельное или последовательное.

Параллельное программирование выполняется при помощи специального программатора, используя напряжение программирования, которое выше чем рабочее напряжение микроконтроллера. При этом микроконтроллер требуется извлечь из целевой платы и установить в программатор.

Последовательное программирование называется внутрисистемным программированием (In-System Programmer), при котором используется всего четыре линии данных и не требуется на микроконтроллер подавать повышенное напряжение программирования. В случае использования последовательного программирования микроконтроллер программируется непосредственно на целевой плате. При данном типе программирования используется интерфейс SPI (Serial Peripheral Interface – последовательный периферийный интерфейс).

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

MOSIMaster Output Slave Input (Выход главного, вход подчиненного);

MISOMaster Input Slave Output (Вход мастера, выход подчиненного);

SCKSerial ClocK (сигнал синхронизации);

RESET – сигнал системного сброса.

Схема подключения микроконтроллеров семейства AVR к последовательному программатору приведена на рис. 14.

Мы будем использовать внутрисистемный программатор AVRISPmΙΙ фирмы ATMEL. Программатор AVRISPmΙΙ имеет интерфейс USB.

Рассмотрим порядок загрузки программы в кристалл:

Сначала при выключенном напряжении питания программатор должен быть подключен к микроконтроллеру, установленному на целевой плате. Затем на целевую плату подается напряжение питания. После этого USB кабель программатора подключается к компьютеру. Компьютер распознает подключенное устройство как программатор AVRISPmΙΙ (при установке программы AVR STUDIO 4.16 должен быть установлен соответствующий драйвер). При распознавании программатора компьютер издает звуковой сигнал. Программатор имеет трехцветный светодиод для отображения режимов работы. Зеленый цвет означает, что программатор готов к работе, красный сигнализирует об ошибке, а желтый показывает процесс выполнения операций программатором. При подаче питания программатор готов к работе, и индикатор должен быть зеленого цвета.

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

Для управления программатором (или другим внешним устройством) имеется специальное диалоговое окно. В меню программы AVR STUDIO 4.16 имеются две кнопки со стилизованным изображением микросхемы. На одной кнопке надпись «Con», на другой кнопке – «AVR». Кнопка с надписью «Con» используется для выбора конкретного программатора, если их несколько. В случае, если подключен всего один программатор, используется кнопка, изображающая микросхему с надписью «AVR». Если указанные кнопки отсутствуют в меню, их можно найти на вкладке Tools/Program AVR.

При нажатии кнопки «AVR» появляется диалоговое окно программирования, которое имеет несколько вкладок. При запуске откроется та вкладка, которая была активна в предыдущем сеансе.

Рассмотрим те вкладки, которые необходимо использовать при загрузке управляющей программы в кристалл в порядке их использования.

Вкладка «Main» (главная) (рис. 15) – управляет двумя параметрами: выбором устройства и выбором режима программирования. Имеет два диалоговых окна. Первое окно «Device and Signature Bytes» (выбор устройства и байт сигнатуры). К этому окну добавлены две кнопки управления «Erase Device» (стирание устройства) и «Read Signature» (чтение сигнатуры). Второе диалоговое окно «Programming Mode and Target Setting» (режим программатора и целевые установки). Поскольку мы работаем с последовательным программатором, по умолчанию выставляется режим «ISP Mode» (ISP режим) и он не может быть изменен. Имеется кнопка «Settings» (установки) для выбора частоты программирования. Важно иметь ввиду, что частота программирования должна выбираться не менее чем в 4 раза меньше тактовой частоты целевого (отлаживаемого) устройства.

Рис. 15. Вкладка «Main» (главная)

Вкладка «Fuses» (предохранители) (рис. 16) – управляет настройкой параметров микроконтроллеров, недоступных через программу. Рассмотрим наиболее важные из них:

– «SPIEN» – разрешение последовательного программирования. Для нового микроконтроллера этот параметр разрешен (установлен), и он не может быть запрещен при помощи внутрисхемного последовательного программирования. «SPIEN» может быть сброшен только параллельным программатором;

Рис. 16. Вкладка «Fuses» (предохранители)

– «SKSEL» – выбор источника тактового сигнала. По умолчанию установлен в качестве источника внутренний RC осциллятор. С этим параметром надо быть внимательным. Если программируемый микроконтроллер тактируется только от внутреннего RC осциллятора, и будет случайна запрограммирована опция «EXT» (внешний источник), то микроконтроллер не запустится и утратит связь с программатором. В этом случае требуется подключить к микроконтроллеру внешний генератор, запустить его и перепрограммировать «SKSEL»;

– «JTAGEN» – разрешение работы внутрисхемного эмулятора. Если «JTAGEN» разрешен, то к микроконтроллеру может быть подключен внутрисхемный эмулятор с протоколом обмена «JTAG». При этом некоторые линии ввода-вывода микроконтроллера не будут работать как порты ввода-вывода. Эта опция отсутствует у микроконтроллеров группы «Tiny». У микроконтроллеров «Tiny» используется однопроводной интерфейс отладки «Debug Wire». В этом случае внутрисхемный эмулятор подключается к микроконтроллеру через линию «Reset».

Вкладка «Program» (программирование) (рис. 17) – предназначена для загрузки программы в энергонезависимую память программ и данных. Имеет четыре окна:

– окно «Device» имеет кнопку «Erase Device» для стирания энергонезависимой памяти микроконтроллера. Также имеются две галочки. Первая галочка «Erase device before flash programming» (стирание устройства до программирования памяти программ) позволяет задать постоянную операцию стирания перед программированием. Вторая галочка «Verify device after programming» (проверка устройства после программирования) позволяет задать обязательную проверку устройства после программирования;

– окно «Flash» позволяет выбрать расположение загрузочного файла «HEX-файла». В случае, если выбрана опция «Use Current Simulator/Emulator Flash Memory», при программировании будет использован загрузочный «HEX-файл», сформированный при ассемблировании программы. Рекомендуется использовать эту опцию. Опция «Input HEX File» требует указать конкретный «HEX-файл». Эту опцию целесообразно использовать, когда загружается уже готовый «HEX-файл» из внешнего источника. Также на этой вкладке имеются три кнопки управления: «Program» (программирование), «Verify» (проверка) и «Read» (чтение);

Рис. 17. Вкладка «Program» (программирование)

– окно «EEPROM» аналогично окну «Flash», но предназначено для программирования энергонезависимой памяти данных. Данное окно используется только если производится программирование энергонезависимой памяти программ через программатор;

– окно «ELF Production File Format» можно не использовать, и нами рассматриваться не будет.

Вкладка «LockBits» (рис. 18) – установка защиты программы от несанкционированного доступа. Имеет три возможных варианта защиты. По умолчанию защита не установлена. На этапе начального освоения программирования микроконтроллеров защита программы от взлома не является актуальной, и нами рассматриваться не будет.

Рис. 18. Вкладка «LockBits», установка защиты программы

Рекомендованный порядок работы с вкладками программатора. На вкладке «Main» (главная) выбрать тип микроконтроллера. На вкладке «Fuses» (предохранители) выбрать или проверить источник тактового сигнала. После этого на вкладке «Main» (главная) можно подобрать частоту тактирования в целях уменьшения время программирования. Затем на вкладке «Program» загрузить программу в энергонезависимую память программ.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]