На производстве, при ремонте прибора советского производства, выяснили, что РПЗУ выдаёт не ту информацию, которая требуется, то есть произошла частичная потеря записанных данных. В приборе установлена РПЗУ КС537РФ2 (зарубежный аналогM2716). Возникла острая необходимость запрограммировать эту древнюю микросхему. Так как прибор на заводе не один, то считать рабочую прошивку было откуда. А вот программатора ни на заводе, ни в продаже, ни в мастерских не нашли. Да и покупать программатор, умеющий записывать данные в РПЗУ, за большие деньги для разовой прошивки не целесообразно.
Было решено собрать простой копировщик, с минимумом деталей. Покопавшись в своих запасах, нашёл плату от автосигнализации TOMAHAWK TW-9010, на плате которой установлен 40 ногий микроконтроллер PIC16F74. Ног этого микроконтроллера хватает для подключения адресной шины и шины данных РПЗУ. Объём памяти К573РФ2(5) составляет 2кБ. Для хранения считанной с донора прошивки потребовалась флешка с не меньшим объёмом. Посмотрев платы, нашёл EEPROM 24LC16, как раз с объёмом 2кБ. Посмотрев даташиты на микросхемы, накидал схему. Схема очень простая.
Программно реализованы следующие функции:
- Чтение РПЗУ (Копирование содержимого РПЗУ в EEPROM), запускается после нажатия кнопки S3;
- Запись РПЗУ (Копирование содержимого EEPROM в РПЗУ), запускается после нажатия кнопки S4;
- Сравнение содержимого РПЗУ с содержимым EEPROM, запускается после нажатия кнопки S5;
- Проверка чистоты РПЗУ, запускается после нажатия кнопки S6;
- Режим записи адаптивный (1 импульс длительностью 1мс, проверка записи, если не записалось, то повторить, и так 25 раз. Если не записалось за 25 циклов, то выдаёт ошибку и останавливает программирование) или простой (1 импульс длительностью 50мс, после чего проверка записи. Если не записалось, то выдаёт ошибку и останавливает программирование);
- Проверка возможности записи в РПЗУ (В РПЗУ можно записать только нули, но не во все ячейки их надо записывать. Программа сравнивает содержимое EEPROM с содержимым РПЗУ, на предмет возможности записать необходимый код поверх имеющегося). Полезная функция в тех случаях, когда в РПЗУ произошла частичная потеря информации, и для её восстановления (повторного программирования) не требуется стирать всю информацию, так как эта операция довольно длительная и требует ультрафиолетового источника.
- При чтении РПЗУ, считанная информация передаётся на выход TX. Подключив этот выход через переходник TTL-RS232 или TTL-USB к компьютеру, можно сохранить прошивку на компьютере. Так же, легко можно извлечь EEPROM из панельки и на любом программаторе прочитать содержимое, либо прошить нужной прошивкой, которую необходимо записать в РПЗУ.
В устройстве установлено 4 светодиода, которые отображают различные режимы работы:
Синий- отображает режим ожидания, программа ждёт нажатие кнопок;
Зелёный - отображает режим чтения. Вспыхивает при чтении, сравнении и проверке возможности записи;
Красный - отображает режим записи, а так же об ошибках при проверке записи и проверке возможности записи, указывая об отрицательном результате проверки;
Жёлтый - загорается при подаче программирующего напряжения на РПЗУ.
Для питания устройства требуется источник питания с напряжением 26В с током не менее 200мА. В закромах нашёл импульсный блок питания от принтера с выходными напряжениями 5В и 24В. В обратной связи этого блок питания собрана стандартная схема на TL431 и оптопаре. Заменив в делителе напряжения TL431 постоянный резистор на переменный, я легко поднял выходное напряжение с 24В до 26В. На 5В выходе напряжение тоже приподнялось, но незначительно, до 5,4В. Все микросхемы имеют верхний предел питающего напряжения 6В, поэтому не стал заморачиваться с этим повышением.Так как у меня 2 напряжения питания (5В и 26В) я удалил из схемы стабилизатор напряжения.
В видео показаны все режимы работы копировщика
Печатную плату и фото собранного устройства любезно предоставил Кузь Олександр.