Предлагаю схему программатора.
Схема нарисована не с пустого места: до этого имелся успешный опыт
разработки программатора AT89C51, AT89C52, AT89C2051 - параллельное
программирование, AT90S1200 - последовательное программирование по SPI(не
сильно отличается от протоколов программирования ATmega), PIC16F84A- (ICSP-
интерфейс), I2C - интерфейсных микросхем.
Все эти функции умещались в 4Кбайта памяти программ и менее чем 128 бит
оперативки (AT89C51).
Некоторые соображения по поводу идеологии программатора
1) Временные интервалы программирования и напряжения программирования
должны быть соблюдены как можно точнее (чтобы лишний раз не сказывалось на
надёжности микросхем)
2) Возможность параллельного программирования никогда не повредит (допустим
в дальнейшем может понадобиться тестер LCD - модулей или ещё чего с большим
количеством ног)
3) Гальвоническая развязка с компьютером - лишняя заморочка с сомнительным
результатом т.к.
a) приборы (включая комьютер) на рабочем месте ДОЛЖНЫ БЫТЬ ЗАЗЕМЛЕНЫ и
те кто пользуется любыми примочками типа GTAG - эмуляторов должны это
знать.
б) блок питания программатора должен быть гальванически развязан с сетью
и если уж дело дошло до подключения компьютер к программатору, то лучше
это делать при выключенном питании (или использоватьразъёмы специальной
конструкции - как USB -где всегда сначала подключается общий провод.
в) общий провод компьютеров всегда соединён с корпусами.
г) много- ли Вы видели JTAG - эмуляторов с гальванической развязкой.
4)Нужно - ли плате программатор буферное ОЗУ или, может сделать
программирование по мере поступления байт от компьютера? Обычно FLASH -
ячейке требуется порядка нескольких миллисекунд на программирование (за это
время можно принять следующий байт данных).
В общем, буферное ОЗУ только усложнит схему, при сомнительном выигрыше по
скорости.
5)Цепи программатора следует обесточивать при установке/удалении
программируемых микросхем следовательно нужно осторожно относиться к
инициализации источника напряжения программирования.
6)Для связи с компьютером для начала следует использовать RS-232 (на
перспективу есть же мостыь USB<->RS232) так как всё равно всё сведётся к
UART со стороны контроллера.
7)Исходя из эвристических соображений скажу, что в 8Кбайт памяти программ
влезут протоколы программирования всех AVR и многого другого.
8) Насчёт программирования 3.3В схем - 5 - вольтовая TTL - логика совместима
с LVTTL по уровням.
9)Что бы ни говорили линуксоиды - командная строка - это трата времени
пользователя. Программатору
нужен GUI. Чтобы уж совсем сработать на перспективу, можно воспользоваться
не MFC или C++Builder, а кроссплатформенными QT (Trolltech) или GTK (GNU).
Тогда, когда возникнет надобность можно с минимумом прооблемм перейти под
Linux (теоретически переписав: функцию main, модуль comport, файл Makefile)
Предлагаю принципиальную схему Sheet1.pdf (на мой взгляд вполне жизнеспособную)
ВНИМАНИЕ ! Некоторуе тонкости ещё не проработал (нужен - ли инвертор на
ноге Р2.2 AT89S52, поставить - ли всё-таки резистор последовательно с ногой
частота кварцевого генератора теоретически позволяет использовать UART на
скорости 38400 на практике - не знаю.)
-----------------------------------------------------------------------------------------------
Продолжаю заниматься программатором. Собрал принципиальную схему, устранил ошибки:
1) частота кварца 22.1184 МГц - реально общался с платой на скорости 115200
2) решил проблеммкус отрицательным источником напряжения программирования для запитки операционного усилителя: от MAX232
3) источник напряжения программирования работает теперь в диапазоне 0...(Uвх - 2В - 0.6В)
Вот ещё не окончательный вариант, но более приближенный к реальности Sheet2.pdf
-----------------------------------------------------------------------------------------------
Вот схема в фрмате P-CAD2001 P-CAD2001.ZIP
-----------------------------------------------------------------------------------------------
Каркасец программы для платы программатора. Пока работают функции смены
скорости обмена с компьютером, информация о версии, управление источником напряжения : в файле Programmator.zip
-----------------------------------------------------------------------------------------------
Работаю над управляющей программой. Создаю её на языке C++ в среде
Dev-C++ c использованием графической библиотеки GTK (знаете есть такой
редактор картинок GIMP - гроза Adobe PhotoShop)
-----------------------------------------------------------------------------------------------
Вот предварительные наброски управляющей программы вместе с исходниками:
файл Progr3.0.zip. Работы в общем ещё много, но идею можно уловить.
Думаю, перечисленные там процессоры осилю один, а остальные буду добавлять по мере поступления. В общем, чтобы программатор был полноценным
нужно, чтобы человек несколько прониклись идеей
------------------------------------------------------------------------------------------------
GIU со связями почти готов. Процедуры обмена с приставкой будут во втором
потоке (пока вместо них заглушки) Файл GTK.zip