![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
В процессе программирования микроконтроллеров разработанная пользователем программа заносится в энергонезависимую память. При этом выполняются операции по стиранию, чтению и записи различных элементов памяти кристалла. Типовыми операциями являются:
0 операция "Chip erase" (стирание кристалла);
0 чтение/запись FLASH-памяти программ;
0 чтение/запись EEPROM памяти данных;
0 чтение/запись конфигурационных FUSE-битов;
0 чтение/запись LOCK-битов защиты программной информации;
0 чтение SYGNATURE-битов идентификации кристалла;
Микроконтроллеры обычно поставляются со стертыми встроенными FLASH и EEPROM блоками памяти (содержимое всех ячеек = $FF), готовыми к программированию. Программирование кристалла, как правило, может выполняться различными способами:
0 Параллельное программирование - информация заносится в энергонезависимую память через параллельные порты ввода/вывода. Обычно эта операция выполняется на специальных приборах - программаторах.
0 Последовательное программирование - информация заносится в энергонезависимую память через схему последовательного интерфейса. Операция, как правило, может выполняться непосредственно в микропроцессорной системе (In System Programming).
0 Самопрограммирование может осуществляться самим микроконтроллером под управлением программы, записанной в Boot Program Section флэш- памяти программ.
Параллельное программирование
При параллельном программировании информация поступает на микроконтроллер в параллельном коде через один из его портов. Ряд других контактов микроконтроллера используется для управления записью и чтением данных. На рис. 15.1. показана схема подключения микроконтроллера АТтеgа163 при параллельном программировании.
Рис. 15.1. Параллельное программирование микроконтроллера ATmegal63
Для перевода устройства в режим параллельного программирования необходимо:
0 Подать напряжение 4.5 - 5.5V на контакт Vcc.
0 Установить на контактах #RESET, BS0 и BS1 сигнал низкого уровня на время не менее 100 нc.
0 Подать напряжение 11.5 - 12.5V на контакт #RESET.
В каждом такте программирования импульс синхронизации длительностью не менее 500 не подается на контакт XTAL1. Совокупность остальных сигналов (табл. 15.1 и табл. 15.2) описывает операцию, выполняемую в момент прихода синхроимпульса. В зависимости от сочетания сигналов информация на линиях порта В микроконтроллера, может быть восприняты как команда управления процессом записи, как данные или как один из байтов адреса ячейки памяти.
Таблица 15.1. Назначение сигналов при параллельном программировании
Наименование сигнала в режиме программирования | Контакт | Вход/ выход (I/O) | Функция сигнала |
RDY/BSY | PD1 | О | 0: Программирование, 1: Чтение команды |
ОЕ | PD2 | I | Включение выхода (активный низкий уровень) |
WR | PD3 | I | Импульс записи (активный низкий уровень) |
BS1 | PD4 | I | Выбор байта 1 ('0' - младший байт, '1' - старший байт) |
ХАО | PD5 | I | Операция (бит 0) |
ХА1 | PD6 | I | Операция (бит 1) |
PAGEL | PD7 | I | Загрузка страницы памяти программ |
BS2 | РАО | I | Выбор байта 2 ('0' - младший байт, '1' - старший байт) |
DATA | PB7 | Двунаправленный ввод/вывод (вывод при OE=0) |
Таблица 15.2. Выбор операции при параллельном программировании
ХА1 | ХАО | Операция при импульсе на входе XTAL1 |
Загрузка адреса Flash или EEPROM памяти (байт адреса задается сигналом BS1) | ||
Загрузка данных (байт адреса задается сигналом BS1 | ||
Загрузка команды | ||
Ожидание |
В таблице 15.3 приведены команды параллельного программирования микроконтроллера АТтеgа163, различаемые микроконтроллером при выполнении операции «Загрузка команды» (ХА1=1, ХА0=0).
Таблица 15.3. Команды параллельного программирования микроконтроллера АТтеgа163
Байт | Команда |
1000 0000 | Очистка кристалла |
0100 0000 | Запись Fuse битов |
0010 0000 | Запись Lock битов |
0001 0000 | Запись Flash памяти |
0001 0001 | Запись EEPROM |
00001000 0000 0100 | Чтение байта Signature Чтение Fuse и Lock битов |
0000 0010 | Чтение Flash памяти |
0000 0011 | Чтение EEPROM |
FLASH и EEPROM блоки памяти программируются байт за байтом.
Во время операции очистки кристалла (Chip erase) стираются все ячейки FLASH и EEPROM памяти, а также LOCK-биты. Причем LOCK-биты стираются только после того, как будет очищена вся память программ. На состояние FUSE-бит операция Chip erase не оказывает воздействия.
У контроллера АТтеgа163 имеется FUSE бит EESAVE, программирование которого приводит к тому, что при выполнении операции Chip erase содержимое EEPROM сохраняется.
Последовательное программирование
При последовательном программировании значительно меньше контактов микроконтроллера и не требуется источника высокого напряжения. На рис. 15.2 показана схема включения микроконтроллера в режиме последовательного программирования.
Рис. 15.2. Последовательное программирование микроконтроллера АТтеда163
Здесь для программирования используется последовательный SPI интерфейс при подключении контакта Vcc к источнику питания 5В, а контактов GND и #RESET - к земле. Последовательный интерфейс использует контакты SCK (синхронизация), MOSI (ввод) и MISO (вывод).
При записи последовательно поступающих данных в микроконтроллер данные синхронизируются по переднему фронту сигнала SCK. При чтении данных с микроконтроллера данные синхронизируются по заднему фронту SCK.
Для программирования и проверки микроконтроллера ATMEGA163 в последовательном режиме программирования используются четырехбайтные команды (табл. 15.4).
Таблица 15.4. Инструкции последовательного программирования микроконтроллера АТтеgа163
Дата публикования: 2014-11-03; Прочитано: 797 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!