В режиме параллельного программирования от программатора к микроконтроллеру передаются одновременно все биты кода команды или байта данных. Этот режим задействует большое число выводов микроконтроллера и требует использования дополнительного источника повышенного напряжения. Поэтому программирование в параллельном режиме осуществляется специализированными программаторами. Основное применение этого режима — “прошивка” микроконтроллеров перед установкой их на плату в условиях массового производства.
Схема включения микросхем в режиме параллельного программирования приведена на рис. 9.3.
Рис. 9.3. Включение микроконтроллеров в режиме параллельного программирования
Таблица 9.7. Обозначение и функции выводов, используемых при программировании в параллельном режиме
Сигнал
Вывод
Вход/Выход
Назначение
RDY/BSY
PD1
Выход
Состояние устройства:
0 – занято (выполняется предыдущая команда);
1 – готово к приему следующей команды.
ОЕ
PD2
Вход
Управление режимом работы шины данных РВ7...РВ0:
0 — выход, 1 — вход
WR
PD3
Вход
Сигнал записи (активный уровень — лог. 0)
BS1
PD4
Вход
Выбор байта (см. Табл. 14.14)
ХАО
PD5
Вход
Определяют действие, выполняемое по положительному импульсу на выводе XTAL1
ХА1
PD6
Вход
PAGEL
PD7
Вход
Сигнал загрузки страницы памяти
BS2
РАО
Вход
Выбор байта (см. Табл. 14.14)
DATA
РВ7...РВ0
Вход/Выход
Двунаправленная шина данных
В общих чертах процесс программирования в этом режиме состоит из многократного выполнения следующих операций:
загрузка команды;
загрузка адреса;
загрузка данных;
выполнение команды.
Последовательность подачи сигналов на выводы микроконтроллера при выполнении различных базовых операций приведена в табл. 9.8.
Таблица 14.7. Базовые операции программирования в параллельном режиме
№
Название операции
Действия
Загрузка команды
1.Установить выводы ХА1, ХАО в состояние 10.
2.Подать на вывод BS1 напряжение лог. 0.
3.Выставить на шину DATA код команды.
4.Подать на вывод XTAL1 положительный импульс.
Загрузка адреса
1.Установить выводы ХА1, ХАО в состояние 00 (загрузка адреса).
2.Установить выводы BS2:BS1 в состояние 00 (загрузка младшего
байта), 01 (загрузка старшего байта) или 10 (загрузка дополнительного
байта).
3.Выставить на шину DATA байт адреса.
4.Подать на вывод XTAL1 положительный импульс.
Загрузка данных
1.Установить выводы ХА1, ХАО в состояние 01 (загрузка данных).
2.Подать на вывод BS1 напряжение лог.0 (загрузка младшего байта) или лог.1 (загрузка старшего байта).
3.Выставить на шину DATA содержимое байта данных.
4.Подать на вывод XTAL1 положительный импульс.
Запись данных в буфер страницы
1.Подать на вывод BS1 напряжение лог. 1.
2.Подать на вывод PAGEL положительный импульс.
Запись байта конфигурации
1.Установить выводы BS2:BS1 в состояние 00 (запись младшего байта),
01 (запись старшего байта) или 10 (запись дополнительного байта).
2.Подать на вывод WR отрицательный импульс; при этом на выводе
RDY/BSY появляется сигнал НИЗКОГО уровня.
3.Ждать появления на выводе RDY/BSY сигнала ВЫСОКОГО уровня.
Запись страницы
1.Установить выводы BS2:BS1 в состояние 00.
2.Подать на вывод WR отрицательный импульс; при этом на выводе
RDY/BSY появляется сигнал НИЗКОГО уровня.
3.Ждать появления на выводе RDY/BSY сигнала ВЫСОКОГО уровня.