Программаторы AVR микроконтроллеров

         

Программаторы AVR микроконтроллеров. COM программатор



Программаторы AVR микроконтроллеров. COM программатор.
Принципиальная схема более сложного программатора на COM порт показана на рисунке. В качестве преобразователя уровня RS-232 выбрана микросхема MAX202CPE, хотя при соответствующей доработке схемы может быть использована любая подходящая микросхема (возможно также использование транзисторных ключей, но в этом случае максимальная скорость работы микроконтроллера с портом уменьшится). В качестве управляющей микросхемы выбрана микросхема AT90S2313. Светодиод VD1 индицирует подачу питания на схему, которое берётся из программируемой схемы через разъём ISP. Частота кварца выбрана равной 11,092 МГц, поскольку при работе микроконтроллера на этой частоте процент ошибок при обмене данными между портом и микросхемой на любой скорости передачи равен нулю (об этом можно прочитать в документации на микроконтроллер AT90S2313). Эта схема является усовершенствованной схемой программатора, предлагаемого фирмой Atmel (описание - в документе Application note AVR910 на сайте фирмы Atmel). Для работы с этим программатором подойдёт любая программа, работающая с программатором AVR910 (к примеру AVR Prog), в частности, можно порекомендовать программу AS1, разработанную фирмой ArgusSoft (здесь можно скачать описание к ней).

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

Файлы:



Схема COM программатора (в формате sPlan 5.0) (22,1 кб)
Топология печатной платы COM программатора (в формате Sprint Layout 3.0) (25,9 кб)
Прошивка микросхемы AT90S2313
Программа AVR Prog 1.37 (архив RAR) (88,7 кб)
Программа AS1 8.66 (архив RAR) (142 кб)
Описание программы AS1 8.66 (архив RAR) (764 кб)

Рудных Владимир
Mailto: Dreadatour@mail.ru



Avreal


AVReAl Описание Адаптеры History FAQ English Russian
AVReAl - описание программы Программа компилируется в следующих вариантах 16-битном DOS, для работы на процессорах начиная с 286. 32-битном WIN32 Также существует вариант для LINUX, но он еще недостаточно оттестирован. Для работы WIN32 версии необходимы
W95/W98 DLportIO.DLL
NT4,W2000 DLportIO.DLL и DLportIO.sys

Это файлы из комплекта DriverLINX от Scientific Software Tools, Inc. (http://www.sstnet.com) Его поставка достаточно громоздкая, с примерами работы на C и VisualBASIC, автоматической инсталляцией DLportIO.SYS для WindowsNT и т.д. - итого файл port95nt.exe имеет размер 1.6Mb. С некоторых пор этот драйвер перестал поддерживаться фирмой, исчез с основной страницы фирмы и находится по адресу http://www.sstnet.com/ftp/unsupported/port95nt.exe. В переупакованном виде p95nt.zip это добро лежит у меня p95nt.zip (1.55Mb)
Применение WIN32 версии фактически имеет смысл только под NT, когда DOS-программа не имеет доступа к портам. Под W95/W98 нормально работает и DOS-версия.

Программа AVReAl предназначена для программирования микроконтроллеров серии AVR фирмы Atmel в режиме ISP (in-cirсuit serial programming, последовательное программирование в схеме). Т.е. на плату устройства устанавливаются штыри, к которым впоследствии подключается шлейфик от программатора (подключение LPT к чипу рассмотрено в разделе "адаптеры"). По окончании процесса программирования снимается сигнал сброса и процессор начинает выполнять зашитую в него программу.

В режиме "fbprg" незадействованные выходы данных LPT могут быть использованы как питание чипа (ключ -ap).

При использовании буферированных адаптеров (Altera ByteBlaster, Atmel STK*00) программа рассчитана на шитье в плате с "родными" питанием и кварцем.

Также возможна генерация XTAL программой (ключ -o0), данный режим может оказаться полезен и при наличии кварца в плате (LPT-порт легко его пересилит) для "обхода" ошибок кристалов "не читается содержимое EEPROM данных при частотах кварца, близких к максимальной".

Принимает INTEL HEX (avrasm -i).
Загружает HEX в память не в массив, а в список. Т.е. различается ситуация "байт 0xFF в .hex" и "неупомянутый байт" В результате есть возможность шить только то, что надо, остальное только проверять при необходимости (см. ключ -v+).

Для любителей патчить прямо по HEX-файлу: если не совпадает контрольная сумма строки, то задается вопрос - "игнорировать?". При ответе 'Y' (или 'y') эта и все остальные ошибки CSUM игнорируются (но сами символы контрольной суммы должны присутствовать, иначе программа отвалится еще раньше по недопустимому символу в строке).
Для облегчения таких патчей (особенно "форматных" записей в EEPROM) реализована фича, подсмотренная у программы от VMK@real.kiev.ua для программирования PIC через Tait-совместимое железо: перед анализом строки из нее убираются пробелы и табуляции. В итоге можно дать: :08 0001 00 00 01 0203 0405 0 6 0 7 DB Также игнорируются пустые строки и строки, начинающиеся с символа '#', последнее предназначено для помещения комментариев о версии непосредственно в HEX-файлы. Проверяется верхний адрес в HEX-файле, если не влазит в опознанный чип, то никаких действий (кроме ругани) не осуществляется.
Проверяется перекрытие адресов записей в HEX файле. При нахождении первого перекрытия производится выход из программы с указанием диапазона адресов перекрывающихся данных.

Для mega103 необходим расширенный формат HEX-файла (обычный не поддерживает объем больше 64Kb). Запись прочитанных данных в файл всегда производится с дополнительными записями тип '04' - Extended Linear Address Record, как не имеющим разночтений. Чтение из HEX-файла записей типа '02' Extended Segment Address Record производится в соответствии с формированием их в AVRASM by Atmel (без предусмотренного документацией Intel сворачивания адреса смещения по модулю 64Kb).

ВЫЗОВ avreal [ключи] [[-c] имя_файла_кода [[-d] имя_файла_данных]] или avreal [ключи] -d имя_файла_данных (когда код трогать желания нет) Если есть только имена файлов, то выполняется чтение.


Подробнее про работу с файлами и про ключи -c, -d рассказано после описания остальных ключей.
Ключи (признак ключа - символ '-' или '/', регистр букв не важен).

-? (-h) выдать ключи и перечень поддерживаемых кристаллов. Команда avreal +name -? (+name должен быть задан раньше ключа -?) выдает список fuses, поддерживаемых в режиме ISP для чипа name

+имя установить тип кристалла, <имя> задается без префикса 'At', например, 90s1200, 90s8515, mega103 (т.е. в том виде, в котором имена выдаются по -h, регистр букв не важен) Обязательный ключ, никаких действий по умолчанию не производится. Если задан только чип (больше нет ни ключей, ни имен файлов), то чип будет сброшен и выдана информация о нем (наличие, если есть доступные по ISP fuses - их состояние).

-p<число1>[,<число2>] "число1", шестнадцатеричное установить порт 1,2,3 - номер LPT порта, >0x100 - базовый адрес порта если задан номер - адрес из BIOS MEMORY (не работает для win32 и linux версий, там принято, что LPT1/2/3 это 278/378/3BC). Адрес и в виде -p3BC, и в виде -p0x3BC воспринимается как HEX число. если задан адрес - "сами попросили" по умолчанию -p2 (LPT2) "число2", с плавающей точкой, необязательный параметр если указан, то не производится настройку на скорость порта, время обращения принимается равным <число2> микросекунд. В win32 версии настройка не производится никогда, если не указано - считается, что обращение к порту не быстрее 1мкс

-a<буква> группа ключей "адаптер" -ab работа через Altera ByteBlaster -as работа через адаптер Atmel STK*00 -aa автоматический выбор ByteBlaster/STK -az пытаться переводить выходы LPT в Z-состояние для "отключения" программатора от схемы ("byte-blaster для ленивых", работает в "FBPRG" режиме) -ar инверсия полярности сброса (например, для подачи его через резистор в базу присутствующего в схеме транзистора) -ai# установить время неактивного Reset после стирания равным # mS.


Необходимо устанавливать большим времени задержки снятия сброса присутствующим в схеме супервизором. -ap подавать питание чипа через свободные выходы данных LPT (несовместимо с -ab,-as) Рекомендуется поближе к чипу установить блокировочный конденсатор по питанию [Andy Chernyshenko]

-o<число> Задать частоту установленного кварца для настройки скорости SPI. <число>=<частота в килогерцах>, по умолчанию 800 (0.8MHz)
-o0 означает необходимость генерации XTAL из программы (работает со всеми адаптерами, однако Altera ByteBlaster должен быть несколько доработан)

-n[<число>] Использовать последние 2 байта кода как счетчик стираний. Если указано <число>, то для записи счетчика используется оно, а не инкрементированное прочитанное значение. При -ewn если последние 2 байта заняты кодом то -n игнорируется

-e[-] Стереть чип
'-' задает сохранение содержимого EEPROM способом прочесть/стереть/записать. Даже для megaX03 применяется этот способ, если хочется пользоваться имеющимся fuse EESAVE, следует установить его (-fe) отдельным запуском avreal.

-1,-2,-3,-4,-5 Увеличить задержки на программирование в 1.5, 2, 3, 4, 5 раз соответственно (для программирования при пониженном напряжении)

-b Проверить на чистоту

-r Прочитать из чипа в файл[ы]

-w[+] Записать в чип
дополнительный '+' - если чип в этом задании не стирался и задана запись в EEPROM, то прописать FF в ячейки EEPROM, не заданные в HEX. Верификация этих ячеек на значение FF будет производится даже если был задан просто -v, а не -v+ (мы же эти ячейки писали). Автоматическое стирание чипа не производится по -w, используйте -ew для нестертого чипа.

-v[+] Верифицировать (только то, что есть в hex) дополнительный '+' вызывает проверку на FF "свободных" с точки зрения HEX-файла позиций

-l# Установить уровень защиты # = 1 or 2

-f<fuselist> список fuses для тех чипов, в которых они шьются по ISP. <fuselist> выглядит как fusename=value,fusename=value,alias,alias...


value - шестнадцатеричное значение без префиксов и суффиксов. Для однобитовых fuse добавлены мнемонические значения ON и OFF (прошить и стереть, 0 и 1 соответственно). alias'ы - это однобуквенные сокращения для fusename=value, соответствующие буквенным обозначениям в версиях avreal до 1.22. При наличии "противоречивых" fusename=val и/или alias выдается сообщение об ошибке. В целях совместимости с предыдущими версиями оставлена возможность перечисления alias-ов без разделения запятыми. Перечень fusename с диапазоном value и комментарием, а также допустимые alias'ы для конкретного чипа можно получить при помощи avreal +chipname -? Если работа с fuses по SPI поддерживается, то их состояние сообщается при любой операции с чипом, задание ключа -F необязательно. OSCCAL (Tiny12, Tiny15, Mega163) рассматривается как Read-Only fuse ;-) Fuses программируются или верифицируются указанием ключа -w или -v совместно с ключом -f (в том числе в одном сеансе с программированием/верификацией кода или данных).
Неупомянутые fuse остаются неизменными (кроме BLB для mega161, mega163, так как они могут быть стерты по -E независимо от ключа -F). Группа BLB относится скорее к lock-битам, записать 1 поверх уже запрограммированной в 0 fuse невозможно. Если запрошена такая операция и чип не стирался, то программа завершает работу с соответствующим предупреждением.
AVReAl обеспечивает также расширенную поддержку osccal
Для tiny12, tiny15 поддерживается программирование SPIEN и RSTDSBL. Будьте осторожны, SPIEN по умолчанию запрограмировано, ключ -fspien=1 (-fspien=off) сотрет SPIEN и запретит дальнейшее низковольтное программирование. То же произойдет и при программировании RSTDSBL (-frstdsbl=0 или -frstdsbl=on).

-% Выдавать по ходу дела дополнительную информацию (производимые действия и ответы чипа). Внутри .bat файлов следует писать -%% (пожалуй, это был неудачный выбор - символ, имеющий особый смысл в bat-файлах, но меняться уже не будет).

-! Делать, что велено, даже если чип не распознан (или распознан "не так", как задано в +<имя чипа>) а также если не обнаружен указанный в командной строке адаптер.


Попытка стереть нераспознанный ( возможно просто залоченный) чип при наличии команды стирания производится и без -! после чего проводится повторное детектирование чипа. возможны осмысленные комбинации: /vw Записать, проверить -e-wv Стереть с сохранением EEPROM, записать, верифицировать -bw Проверить на чистоту, если грязная - отвалиться, иначе писать После ключа -d идет имя файла данных, после -c имя кода, в этом случае порядок файлов не важен. Пробел между ключами -c/-d и именами не обязателен, т.е. допустимо как -cfoo.hex так и -c foo.hex. Если дано два имени файла без ключей -c и -d, то первое имя - файл кода, второе - файл данных (EEPROM).
Если имя одно и нет ключей -c/-d, то этот файл содержит данные для кода и, если он содержит информацию после верхнего адреса FLASH для заданного кристалла, то эта информация используется для программирования EEPROM данных. Т.е. если, например, для 90s2313 hex-файл содержал данные в адресах от 0x800 до 0x87F, то эти данные будут записаны в EEPROM по адресам 0x00-0x7F.

Для Mega163 и Tiny12 поддерживаются особые формы ключей -c и -d для записи значения OSCCAL по адресу offset (шестнадцатеричное значение без префиксов и суффиксов). Байт (слово для '?') по offset должен существовать в исходном HEX-файле. Используется адрес байта, а не слова, в том числе и при обращении ко flash кода. -d*osccal=offset занести osccal как байт в EEPROM данных -c*osccal=offset занести osccal как байт (для flash кода это выходит под команду LPM) -с?osccal=offset врезать OSCCAL как часть команды LDI по offset,offset+1. Например: public osccal_ldi ... osccal_ldi: ldi R16,0xFF out OSCCAL,R16 ... Далее смотрим по MAP-файлу значение osccal_ldi, например оно вышло 0x120 (при адресации в байтах, или 0x90 в словном) и пишем: avreal +tiny12 -ewv -c foo.hex -c?osccal=120 Группа ключей может задаваться как одним аргументом (-wv) так и раздельно (-v -w). Ключ с параметром (-p -c -d) может стоять в группе только последним. Т.е. допустимо, скажем, такое: -wddata.hex -bv+c prog.hex -ep1 Порядок ключей не важен, выполнение производится в порядке E B W V L.


Если проверка (B, V) дала отрицательный результат, то дальнейшая работа не производится. Т.е. -ebwvl2 означает: стереть, если стерлась - писать, если верифицировалась - залочить. +tiny12 -w -c foo.hex -c*osccal=1f3 -fcks=3,boden=0 Для tiny12 записать во флеш кода файл foo.hex, по адресу байта 0x1F3 занести прочитанное из чипа значение OSCCAL, запрограммировать fuse boden и установить fuse CKSEL в бинарное значение 0011 Возвращаемый ERRORLEVEL 0 все заказанное сделалось 10 not blank при -b, несравнение при -v[+] 20 Невозможность осуществить запрошенную операцию HEX кода или данных слишком большой для распознанного чипа. Запрошенное для записи состояние BLB нельзя записать, не стерев чип (а команды стирания не было). 30 не распознан конкретный чип (бывает при защищенном чипе, поэтому при -e все равно делается попытка стереть и если после этого тоже не распознан - отвал) 40 шнурок не подключен (не удалось войти в программирование по алгортиму для At90s) 50 ошибка при чтении (не найден, "не те" символы, не совпала контрольная сумма, ошибка чтения, ...) или записи (есть защищенный от перезаписи с таким же именем, ...) HEX-файла. 60 недостаточно памяти для списков кода/данных 70 недопустимая командная строка (в т.ч. задан номер отсутствующего LPT) СВЕТЛОЕ БУДУЩЕЕ (список унылостей в настоящем :-) Cо временем добавится (может не все из перечисленного, зато очень может быть, что еще при жизни этого поколения :-):
Поддержка 89s8252, 89s53 P.S. При обнаружении неприятностей просьба сообщать версию и очень желательно копию расширенной выдачи программы по -% (перенаправив выдачу в файл).


Программатор "AVReAL"


Программатор AVREAL служит для внутрисистеммного программирования микроконтроллеров фирмы ATMEL, серии AVR: AT90S1200, AT90S2313, AT90S4414, AT90S8515, mega103 и другие.
Аппартная часть програматора представляет из себя немного модифицированный загрузочный кабель ALTERA ByteBlaster, описаный выше. Изменения внесены с учетом рекомендаций автора программатора "AVReAL" (рис.2)

Рис 2.Принципиальная схема программатора ByteBlaster+.

Конструктивно программатор выполнен на односторонней печатной плате. Подключение программатора к LPT-порту осуществляется стандартным кабелем, а подключение к платам адаптеров (или к разрабатываемой конструкции) с помощью типового (IDC-10) шлейфа (рис.3)
Печатная плата разработана так, что на ней можно собрать как обычный ByteBlaster, так и модифицированый для использования с программой AVReAL.


Рис 3. Загрузочный кабель ByteBlaster+

Более подробно о программаторе можно посмотреть на сайте автора "там живет avreal", там же можно скачать последнюю версию программатора, а также посмотреть F.A.Q.

Описание программы

AVReAl ver1.23rev0 В архиве находятся версии для DOS и WIN32, а также краткое описание программы (DOS text)
Топология печатной платы в формате *.pcb

(!)

Для программирования ПЛИС ALTERA EPM7032SLC44-10, EPM7064SLC44-10 и т.п. можно использовать Адаптер MAX7000

Для программирования микроконтроллера Atmel AT90S2313 можно использовать Адаптер 2313

09. Программатор ByteBlaster+

Программатор AVREAL служит для внутрисистеммного программирования микроконтроллеров фирмы ATMEL, серии AVR: AT90S1200, AT90S2313, AT90S4414, AT90S8515, mega103 и другие.
Аппартная часть програматора представляет из себя немного модифицированный загрузочный кабель ALTERA ByteBlaster, описаный выше. Изменения внесены с учетом рекомендаций автора программатора "AVReAL" (рис.2)

Рис 2.Принципиальная схема программатора ByteBlaster+.

Конструктивно аппартная часть программатора представляет из себя печатную плату и два типовых шлейфа, это достаточно удобно, так как шлейфы могут использоваться при работе с другими устройствами, когда программатор не используется. Печатная плата разработана так, что на ней можно собрать как обычный ByteBlaster, так и модифицированый для использования с программой AVReAL.

Рис 3. Загрузочный кабель ByteBlaster+

Более подробно о программаторе можно посмотреть на сайте автора "там живет avreal", там же можно скачать последнюю версию программатора, а также посмотреть F.A.Q.

Описание программы

AVReAl ver1.23rev0 В архиве находятся версии для DOS и WIN32, а также краткое описание программы (DOS text)
Топология печатной платы в формате *.pcb

(!)

Для программирования ПЛИС ALTERA EPM7032SLC44-10, EPM7064SLC44-10 и т.п. можно использовать Адаптер MAX7000

Для программирования микроконтроллера Atmel AT90S2313 можно использовать Адаптер 2313

09N. Набор для сборки "Программатор ByteBlaster+" - Инструкция по сборке

09a. Программатор ByteBlaster+ на односторонней п.плате

Программатор "ByteBlaster"


Микросхемы MAX7000A, MAX3000A, MAX9000 фирмы ALTERA, программируются в системе через стандартный четырехконтактный JTAG интерфейс. Програмное обеспечение создает конфигурационную последовательность, которая загружается в ПЛИС с помощью специального загрузочного кабеля ByteBlaster, принципиальная схема которого приведена на рис.1



Рис 1.Принципиальная схема программатора ByteBlaster.


Полностью описание в формате .pdf, можно взять здесь: dsbyte.pdf





Микросхемы MAX7000A, MAX3000A, MAX9000 фирмы ALTERA, программируются в системе через стандартный четырехконтактный JTAG интерфейс. Програмное обеспечение создает конфигурационную последовательность, которая загружается в ПЛИС с помощью специального загрузочного кабеля ByteBlaster, принципиальная схема которого приведена на рис.1


Рис 1.Принципиальная схема программатора ByteBlaster.

Загрузить програмное обеспечение MAX+PLUS II BASELINE версии 10.0 (объем составляет 45,822,459 байт)



Полностью описание в формате .pdf, можно взять здесь: dsbyte.pdf




Программаторы AVR микроконтроллеров. LPT программатор



Программаторы AVR микроконтроллеров. LPT программатор.
Принципиальная схема более сложного программатора на LPT порт показана на рисунке. В качестве шинного формирователя используется микросхема 74HC244 (К1564АП5), 74LS244 (К555АП5) либо 74ALS244 (К1533АП5), хотя может использоваться любой другой неинвертирующий шинный формирователь с тремя состояниями (в этом случае может потребоваться соответствующее изменение схемы). Светодиод VD1 индицирует режим записи микроконтроллера, светодиод VD2 - чтения, светодиод VD3 - наличие питания схемы. Напряжение, необходимое для питания схема берёт с разъёма ISP, т.е. от программируемого устройства. Эта схема является переработанной схемой программатора STK200/300 (добавлены светодиоды для удобства работы), поэтому она совместима со всеми программами программаторов на PC, работающих со схемой STK200/300. Для работы с этим программатором можно посоветовать программу IC-Prog (где при выборе типа программатора следует установить "STK200 Programmer") или программу AVReal.

Программатор можно выполнить на печатной плате и поместить её в корпус разъёма LPT, как показано на рисунках:
Для работы с программатором удобно использовать удлинитель LPT порта, который несложно изготовить самому (к примеру, из кабеля Centronix для принтера), главное "не жалеть" проводников для земли (18-25 ноги разъёма) или купить. Кабель между программатором и программируемой микросхемой не должен превышать 20-30 см.

Файлы:

Схема LPT программатора (в формате sPlan 5.0) (22,5 кб)
Топология печатной платы LPT программатора (в формате Sprint Layout 3.0) (22,0 кб)
Программа IC-Prog 1.05 (архив RAR) (375 кб)
Программа AVReal 1.22 (архив RAR) (98,8 кб)

Рудных Владимир
Mailto: Dreadatour@mail.ru



COM программатор для PIC микроконтроллеров



COM программатор для PIC микроконтроллеров.
Светодиод двухцветный или два обычных, зелёный индицирует наличие питания (и создаёт нужную вольтодобавку для питания Upp), а красный наличие напряжения Udd (подачу сигналов на программатор). Можно вообще отказаться от красного светодиода и убрать соответствующий резистор, правда тогда можно не заметить, что программатор не подключен к компьютеру ;) Крайне не рекомендуется использовать "обычные" стабилизаторы напряжения 7805, 7812, 142ЕH5А, 142ЕH8Б: они потребляют слишком большой ток... Допускается изменение в номиналах резисторов и конденсаторов до 30%. Только рабочее напряжение электролитов должно быть не меньше указанного. Длина кабеля не очень критична.

Файлы:

Схема программатора (в формате sPlan 5.0) (21,9 кб)
Топология печатной платы программатора (в формате Sprint Layout 3.0) (27,6 кб)
Программа COMPIC1 1.54b (архив RAR) (84,5 кб)

Рудных Владимир
Mailto: Dreadatour@mail.ru



Простейший программатор на LPT порт



Программаторы AVR микроконтроллеров. Простые программаторы. Простейший программатор на LPT порт.

Принципиальная схема программатора показана на рисунке. Как видно из схемы, программатор представляет собой три резистора и несколько проводков, соединяющих порт LPT и микроконтроллер и может быть выполнен навесным монтажом в корпусе LPT разъёма (DB25). Программируемая микросхема может брать питание с порта LPT, в этом случае, на выводах 2, 3, 4 порта должны быть установлены единицы, а вывод 2 разъёма ISP должет быть подключен к выводу Vcc микросхемы. Некоторые порты могут не потянуть такой нагрузки, в этом случае придётся использовать внешний источник питания (5В). Источником тактовых импульсов для микросхемы также может служить LPT порт. В этом случае вывод 3 разъёма ISP (LED) должен быть подключен к выводу XTAL 1 программируемой микросхемы. Естественно, программа программатора на PC должна понимать эти режимы работы (для работы с этой схемой нужно воспользоваться программой IC-Prog, где при выборе типа программатора следует установить "Fun-Card Programmer").
Простой программатор на COM порт.
Принципиальная схема простого программатора на COM порт показана на рисунке. Это схема программатора PonyProg, упрощённая для работы только с AVR. Схема очень проста: транзисторный ключ подаёт сигнал сброса на микросхему (т.е. переводит её в режим программирования), а стабилитроны играют роль простейших преобразователей уровня. Сигнала с выхода MISO микроконтроллера (+5В) достаточно для того, чтобы COM порт определил логическую единицу на своём входе. После окончания работы с программатором, его следует отключить от программируемого устройства. Для работы с этой схемой нужно использовать программу PonyProg.

Файлы:

Схема простейшего программатора на LPT порт (в формате sPlan 5.0) (10,0 кб)
Схема простейшего программатора на COM порт (в формате sPlan 5.0) (10,7 кб)
Программа IC-Prog 1.05 (архив RAR) (375 кб)
Программа PonyProg 2.05 (архив RAR) (145 кб)

Рудных Владимир
Mailto: Dreadatour@mail.ru