ДОМОЙ

Программирование микросхем. FLASH

По многочисленным просьбам полученым по электронной почте( два письма :-)))) выкладываю схему программатора, программу и исходный текст.

В архиве содержится:
PROG3E8.SCH схема программатора PCAD 4.5
PROG3E8.PLT схема программатора для обработки PCPRINT от PCAD 4.5
PROG3E8.HPP это можно отправить в лазерный принтер "copy PROG3E8.HPP prn /b" и
получить распечатку схемы.

PROG_BOM.ASM Головная часть исходного кода.
PROG_BOM.COM Откомпилированая программа.

Компилировал TASM 2.0, мождно найти на сайте Borland в разделе antique.
MASM не подходит.

Оставшиеся inc требуется расположить в каталоге inc, для компиляции.

Программа работает с минимальным участием пользователя.
Файл для записи во флеш etalon.bin в текущем каталоге, файл считываемый из flash - output.bin.
Ни каких ключей не используется.
Для всех операций производиться детектирование чипа, подачей 12 воьт на ножку A9(Hardware Ident). При записи проверяется только размер файла.

Некоторые чипы не требуют стирания перед записью. Возможно процедуры стирания для них я не дописал.

Программа работает под DOS,Win98, WinMe. Под NT и ее клонами наверное не пойдет.

Собственно программатор.

Программатор вставляется в 8-ми битный слот ISA.
Напряжение питания и программирования берет от туда-же.
Занимает адрес COM3 (ControlPort EQU 03E8h в файле const.inc).

Для изготовления я использовал старый внутренний модем на 2400 (думаю 9600 тоже подойдет:-)))
От него я использовал дешифратор базового адреса 3E8h. А также буфер шины (D5 на схеме).

D01 - половина микросхемы 555TM2 используется сброса программатора в исходное состояние.

D02 - 155ЛН3 используется следующим образом:
части A,B - схема сброса от ISA или программного. (Регистр D6)
часть C - разрешение работы регистров адреса.
часть E - выход на индикатор работы программатора.
часть F - включение питания на flash.

Так как для включения питания производися переключением 12 вольт, то использовать 555ЛН2 нельзя. По крайней мере по ТУ. Можно заменить элемент F транзистором NPN + резистор 10K в базу. Для использования 555ЛН2.

D03 - 555ИД7, дешифратор обращения к регистрам программатора(стробы).

D04 - 555АП5, буфер отвязывающий программатор от ISA шины.
Через него идут A0..A2 IOW, IOR, ResetDRV. Также я завел сигнал выбора базового адреса от остатков модема.

D05 - 555АП6, буфер отвязывающий программатор от шины данных ISA.

D06 - 555ИР23, регистр управления программатором.
Выход Q0 - сброс.
Выход Q1 - разрешение работы.
Выход Q2 - включение Vid на ножку А9.
Выход Q3 - включение Vpp на ножку VPP/A18 (ножка 1 Flash).
Выход Q7 - включение Vpp на ножку OE ( снятие защиты некоторы MX, программирование Boot Block у Intel).

D07, D08 - 590КН4, собственно коммутаторы напряжений.
Один элемент свободен. Можно его использовать для управления включением питания.

D20, D21, D22 - - 555ИР23, регистры адреса flash. A19..A23 - резерв.

Подключение к сокету flash.

Я использовал отечественную панельку на 40 ножкек. Лишние заклеил.
Адреса с D20, D21, D22 завел на соответствующие адреса сокета (А9, А18 конечно с 590КН4).
Шина данных с формирователя D05.
OE c 590КН4.
CE он же CS 3E8h (D04).
WE - #CS7 c дешифратора D03.

Кратко принцип работы программатора.

Адреса flash выставляются записью байт по портам LoPort, HiPort, HiHiPort (const.inc).
Запись/чтение flash через порт DataPort (const.inc).
Ожидание окончания записи/стирания через ToggleBit.



Программатор Flash, устанавливается в ISA слот .



4 февраля 2002г.

misyachniy@mail.ru