Программаторы ПЗУ

Эй, вы, задние! Делай как я!
Это значит: не надо за мной!
В.Высоцкий "Колея"

Программатор 573РФ2 / 573РФ5

Программатор 556РТ4

Программатор EPROM / FLASH "PARAPROG"

Стирание


Программатор ПЗУ 573РФ2 / 573РФ5


Данный программатор предназначен для программирования микросхем 573РФ2 и 573РФ5, а также записи эмулятора этих ПЗУ на микросхеме 537РУ10. Программатор подключается к проту LPT1. Порт должен работать в двунаправленном режиме. Для управления программатором написана программа, работающая из среды W2K/WXP, которая использует для доступа к порту библиотеку inpout32.dll.

Программатор выполнен по классической схеме: тактируемый счетчик адреса и управляемый ключ напряжения. В схеме был использован в качестве ключа стабилизатор на микросхеме 142ЕН2, которая имеет управляющий вход, позволяющий ее отключать - при повторении можно использовать любую другую схему управляемого ключа. Также в схеме применен формирователь 50 мс на микросхеме 555АГ3, который ограничивает длительность программирующего импульса - это делает ненужным выдерживать интервал программно, что существенно для ОС типа Windows и упрощает алгоритм программирования. При испытаниях было обнаружено существенное влияние помех на работу счетчиков адреса, поэтому рекомендую не скупиться на конденсаторы по питанию (сейчас их больше, чем на приведенных рисунках!). Программатор требует источника питания 5В для чтения и записи эмулятора, а также источника 30 вольт, можно нестабилизированного, для программирования ПЗУ. Для получения 5В можно сделать кабель к USB-порту, но ответственность за вашу материнскую плату лежит полностью на вас! Также, если вы используете готовый кабель LPT, то имеет смысл его проверить: в попавшем ко мне экземпляре проводник сигнала AUTOLF просто отсутствовал.

Внимание! Устанавливать микросхему в панельку следует только после подключения программатора к компьютеру и запуска программы! Также рекомендуется дополнительно отключать вручную напряжение программирования в случаях, когда оно не нужно (чтение микросхем, проверка чистоты, работа с эмулятором).

Схема

Управляющая программа позволяет выбрать файл и записать его в микросхему, сравнить содержимое ПЗУ с файлом или считать содержимое в файл, причем как целиком, так и произвольную область размером от одного байта. Для выполнения таких операций включите опцию "Дополнительные параметры".

Перед записью настоящей ПЗУ рекомендуется воспользоваться калибровкой - будет проверена работоспособность таймера а также включено напряжение программирования для возможности его подстройки. Неработающий таймер приведет к зависанию программы записи. Для работы программы потребуется библиотека inpout32.dll, которую можно взять на сайте logix4u. Работа из под 9Х/МЕ не проверялась.

Эмулятор, используемый с данным программатором, сделан из микросхемы 537РУ10 - статическое ОЗУ 2К. Для совместимости с ПЗУ сигнал ОЕ пропускается переключателем на ОЕ в режиме чтения или на WR в режиме записи. Также на эмуляторе есть электролитический конденсатор, позволяющий кратковременно хранить содержимое в ОЗУ при переносе эмулятора из программатора в схему.

Вариант повторения программатора на другой элементной базе (автор конструкции - Максим)


Программатор 556РТ4


Данный программатор позволяет программировать 556РТ4 вручную. Для программирования ячейки устанавливают адрес, выбирают бит для программирования (записи "1"), включают напряжение программирования (я использовал +12В, хотя по нормам нужно меньше), а затем кратковременно нажимают кнопку "Выбор" (четко, но без задержки между нажатием и отпусканием), после чего снимают напряжение программирования. При программировании нужно следить, чтобы микросхема не перегревалась. При нажатии кнопки "Выбор" без подачи напряжения программирования содержимое ячейки индицируется светодиодами (горящий светодиод = "0").

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

Также мной программатор был собран на куске пластмассы - не нужно так делать! Легко устанавливать детали, зато потом плохо паять, когда начинает плавиться пластмасса!

Переходник 2х556РТ4 =>24-контактная панелька


Программатор EPROM / FLASH "PARAPROG"


Внимание! Изменения в схему и программное обеспечение вносятся без предупреждений!

Перейти к программному обеспечению

История изменений


Интерфейс

Схема интерфейса программатора с ПК использует порт LPT. В отличие от программатора РФ2/РФ5 эта схема не требует двунаправленного режима LPT. Схема построена по принципу максимальной параллельности линий данных, что обеспечивает большую скорость работы интерфейса.

Также я должен заметить, что применил регистры 580ИР82, так как они у меня имелись в наличии, и их цоколевка меня устроила больше, чем регистров 555ИР23 и 555ИР22. Я бы предпочел регистры 555ИР33 (74LS573) или 555ИР37 (74LS574), но их у меня не оказалось под рукой.

Для отладки данной схемы была написана специальная программа/отладчик, которая позволяет выставлять биты на регистрах, а также считывать биты с панельки. Проверить чтение можно записав байт в регистр данных, а затем прочитав его. При этом бит DE регистра управления нужно сбросить в ноль. Можно "прозвонить" панельку, закорачивая выводы D0-D7 на землю и считывая байт - в этом случае бит DE должен быть выставлен в "1", чтобы переключить регистр данных в Z-состояние.

Тест таймера: на P4 3GHz составляет около 15 циклов для 0.1 мс и около 150 циклов для 1 мс. Если возвращаемое значение равно 0, значит, или не работает таймер, или скорость машины недостаточна для работы с ним (на машинах с низкой частотой процессора еще не проверялась). Если возвращено значение 100000 - это также говорит о неработоспособности таймера. Теоретически запись УФ EPROM должна выполняться корректно при любой скорости машины, а для тестирования таймера можно добавить дополнительный резистор для формирования более продолжительного периода (желательно такой резистор подключать кнопкой без фиксации, чтобы не забыть его подключенным). При использовании медленных машин могут быть проблемы разве что с FLASH типа AT29C010A, у которых критично время интервала между записью байтов в буфер сектора - в этом случае возможно разве что написать версию под DOS.

Диаграмма расположения джамперов (в будущем может измениться!):

История изменений


Внимание! Для исключения непредвиденных ситуаций перед использованием программатора рекомендуется дождаться полного окончания загрузки системы, после чего запустиь программу, которая произведет его сброс. В случае, если программатор будет нужен только для чтения, рекомендуется отключать напряжение программирования перемычкой.

Источник питания

Последний вариант источника питания программатора - внешний источник, собранный в отдельном корпусе. Поскольку у меня не было подходящего трансформатора для этой схемы, я использовал два отдельных. Также я не вводил здесь отдельно 6В, т.к. не вижу особой разницы между 6В и 6.25В, но если что - я вам этого не советовал.

От стабилизатора на плате программатора пришлось отказаться из-за того, что 580ИР82 потребляют значительный ток, из-за чего стабилизатор существенно грелся, а напряжение просаживалось, особенно при программировании РФ2/РФ5. Однако я оставлю здесь старую схему источника питания - она имеет право на жизнь при использовании других регистров, например 74НС573.

О Vpp: Схема регулируемого источника взята из мануала к 7805.

О Vcc: 7805 (нашего производства), которую я поставил, выдавала 4.85В под нагрузкой, поэтому я ее "подпер" сразу диодом Д310 (падение напряжения - 0.2В) и получил 5.05В. Далее я подбирал диоды, чтобы получить 6В и 6.25В (согласно мануалов по разным ПЗУ). Возможно, у вас будет другая комбинация.


Переходник PLCC -> DIP

Для работы с микросхемами в корпусе PLCC потребуется переходник. Переходник можно сделать из двух панелек. Вначале по размеру большой панельки (DIP) нужно вырезать прямоугольник, желательно из нефольгированного текстолита или гетинакса, которую приклеить к панельке. Если выводы маленькой панельки (PLCC) значительно выступают над ее дном, под дно желательно приклеить дополнительную подкладку. Далее к выводам маленькой панельки припаивают тонкие луженые проводники, которые можно надергать из многожильного провода с лужеными жилами или из оплетки экранированного провода. При использовании ZIF панельки в программаторе плоские выводы большой панельки переходника нужно развернуть пинцетом на 90°, чтобы не создавать чрезмерной нагрузки на ZIF панельку при фиксации. Приложив маленкую панельку к посадочному месту нужно отметить ее края, после чего просверлить 7 отверстий "домиком" "над", и 7 отверстий "под" ней диаметром ~1мм. После этого маленькая панелька приклеивается на свое место, и проводники поочередно припаиваются к основаниям выводов большой панельки. По окончанию пайки маленькая панелька дополнительно закрепляется с торцов термоклеем. Необходимо обратить внимание, что 32-выводные и 28-выводные микросхемы имеет разное соответствие выводов в PLCC корпусах, а также следует обращать внимание на напряжение питания, так как 5В может повредить микросхему, расчитанную на 3-3.3В.


Программное обеспечение


Программы предлагаются с исходным текстом для ассемблера FASM, выполнены в IDE WinAsm Studio, работают в ОС Win XP/2k, для работы требуют библиотеку inpout32.dll.

Особенности работы с образами несовпадающих размеров.

При выключенных "Дополнительных параметрах": если файл меньше размера ПЗУ - будет выдано сообщение об ошибке, если файл больше размера ПЗУ, в ПЗУ будет записано столько байт, сколько может поместиться в ПЗУ от начала файла.

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

Программы имеют русский интерфейс и являются UNICODE-приложениями.


Программа для разбивания образа ROM на 2 или 4 части и обратной сборки из частей (для использования в 8-битных ПЗУ на 16-и и 32-битной шине). WinXP/2k/9x


Маленькая поэтапная галерейка:




Демонстрация записи 27512


Стирание


В начале я стирал микросхемы бытовой бактерицидной лампой неизвестной мне мощности с таймером. Стирал по 5 минут с расстояния около 10-15 см, расположив микросхемы на металлической фольге. Микросхемы значительно нагревались, поэтому я давал им остыть около 15-20 мин, после чего проверял на чистоту, и нестертые стирал повторно. Для стирания требовалось от одного до нескольких циклов (5-6). Однако лампа была чужая, и мне пришлось ее вернуть.

Затем я приобрел УФ-лампу в исполнении как у энергосберегающих ламп. Испытывал на двух 27С010 - стирание производил, расположив микросхемы вплотную к лампе, на стирание требуется продолжительное время (у меня ушло две ночи), что не очень удобно, если нужно срочно стереть микросхему, однако приятный момент - нагрев микросхем практически отсутствует, благодаря чему, надеюсь, срок службы микросхем будет более продолжительный.

Последнее обновление: 2013-04-28 14:18:54 EEST