Программатор МК ATMEL серии АТ89

Программатор МК ATMEL серии АТ89

Микроконтроллеры (МК) фирмы Atmel давно известны и широ¬ко используются радиолюбителями во всем мире. МК серии АТ89 имеют полный набор команд (CISC) и полностью совмести¬мы по ним с МК Intel 8051. В статье описывается программатор для наиболее широко применяемых МК АТ89С51, АТ89С52, АТ89С55 и их низковольтных версий AT89LV51, AT89LV52, AT89LV55.
В отличие от программаторов, описанных в [1,2], предлагаемый не требует наличия другого, уже запрограммированного микроконтроллера для своей работы. Состоит он из аппаратной части и управляющей программы для IBM-совместимого компьютера. Аппаратную часть (далее — программатор) подключают к LPT-порту, который должен быть переключен (в меню Integrated peripherals в BIOS компьютера) в режим ЕРР (Enhanced Parallel Port — усовершенствованный параллельный порт). В этом режиме LPT-порт компьютера становится двунаправленным (более подробно см. [3]).

Принципиальная схема программатора изображена на рис. 1. Микросхема DD1 (программируемый параллельный интерфейс КР580ВВ55) распределяет поступающие с LPT порта байты информации на шину данных, шину адреса и формирует сигналы управления. По каналу А передаются последовательно младшая и старшая части адреса, по каналу В — данные, причем в режиме записи программы этот канал работает на вывод, а в режиме чтения — на ввод. Канал С используется для управления режимами работы регистров DD2, DD3, стабилизатора напряжения DA1 и программируемого МК, установленного в розетку XS1. Управление микросхемой DD1 осуществляется сигналами, поступающими на ее входы АО, А1, FID и WR. Режимы работы микросхемы DD1 приведены в табл.1.





Микросхемы DD2 и DD3 предназначены для хранения младшей и старшей частей адреса программируемого МК. Информация записывается с помощью сигналов СО и С1 DD1. Регулируемый стабилизатор напряжения DA1 служит для создания на выводе EA/UP программируемого МК напряжения 5 или 12 В. Значения напряжения определяются резисторами R4—R6. При низком уровне сигнала С2 DD1 напряжение на выходе стабилизатора равно 12 В, при высоком, когда открыт транзистор VT1 и резистор R4 подключен параллельно R6, — 5 В.

Для программирования МК микросхему DD1 переключают в режим, в котором ее каналы А, В и С работают на вывод. Для этого записывают в DD1 управляющее слово 80h (см. табл. 2).



С помощью сигналов С4—С7 DD1 устанавливают программируемый МК в режим записи (см. табл. 3) и задают начальные значения СО—СЗ (СО = С1 = С2 = СЗ = 1). Затем в канал А выводят младшую часть адреса МК и записывают в DD2 с помощью сигнала СО (установка СО = 0), а после этого — старшую часть адреса и записывают ее в DD3 сигналом С1 = 0.



Далее в канал В выводят данные, и они поступают на соответствующие входы программируемого МК. На С2 подают низкий уровень, что вызывает появление на входе EA/Upp МК напряжения +12 В. Затем подтверждают запись изменением уровня с высокого на низкий на выходе СЗ и соответственно на входе ALE/PROG МК (рис. 2; значения временных параметров указаны в табл. 4). Цикл записи данных завершен. Теперь сигналы С2 и СЗ можно вернуть в исходное состояние и переходить к следующим адресу и байту данных.





Все указанные операции повторяют до тех пор, пока не будут записаны все данные из исходного файла «прошивки». Следует учесть, что файл «прошивки» должен быть представлен в простейшем бинарном формате (расширение .bin). Для преобразования файла из формата Intel hex в бинарный используют утилиту hex2bin.exe.

В режиме чтения LPT-порт переключают в двунаправленный режим, микросхему DD1 устанавливают в режим 82h (табл. 2), каналы А, С — на вывод, канал В — на ввод. Аналогично режиму записи выводят на DD2 и DD3 младшую и старшую части адреса соответственно, затем устанавливают режим чтения МК (табл. 3). Выход С2 DD1 в режиме чтения всегда находится в состоянии лог. 1. После установки адресов на вход ALE/PROG МК подают низкий уровень (СЗ = 0), и МК выдает данные, которые находятся по установленному адресу. Затем считывают информацию из канала В DD1 и принятые данные записывают в файл, имя которого вводят в начале процедуры чтения программы МК. Файл будет иметь расширение .bin и представлять собой полную копию программной памяти МК.

В режиме проверки содержимого выполняются чтение памяти МК и побайтное сравнение с указанным файлом. При обнаружении различий на экран монитора выводятся адрес несовпадающих значений и два байта: один — из памяти МК, другой — из файла.

В режиме стирания МК по линиям С4—С7 DD1 выставляют значения в соответствии с табл. 3. Затем на вход EA/VPP подают напряжение 12 В (С2 = 0), а на выход СЗ (ALE/PROG) — низкий уровень, который удерживается в течение 10 мс. После стирания контролируют содержимое памяти. Если оно прошло успешно, вся программная память будет заполнена значениями FFh, если же какая-либо ячейка имеет иное содержимое, на экран монитора выводится сообщение, содержащее ее адрес и значение.

Для считывания кодов идентификации микросхему DD1 переключают в режим, в котором канал В работает на ввод (аналогично режиму чтения), шины С4—С7 переводят в состояние лог. 0 (в соответствий с табл. 3), а на шину адресов поочередно выводят адреса 30h, 31 h, 32h. В результате на экране монитора появляются соответствующие байты, по которым и определяют тип МК (табл. 5).



Кроме этого, программное обеспечение позволяет автоматически определять тип МК, а если это невозможно, его тип можно ввести вручную. Программу для ПК и ее исходный текст на языке Turbo Pascal можно скачать .

ЛИТЕРАТУРА
1. Программатор для микроконтроллеров ATMEL с FLASH памятью. —
2. Programatory procesoru a pamiti firmy Atmel. —
3. IEEE 1284 EPP-Enhanced Parallel Port Mode. —
А. ГОЛУБКОВ, г. Москва
Радио 09-2003






Рекомендуемый контент




Copyright © 2010-2017 housea.ru. Контакты: info@housea.ru При использовании материалов веб-сайта Домашнее Радио, гиперссылка на источник обязательна.