Уже давно хотел попробовать в жизни олдскульные пережигаемые ППЗУ, да всё никак руки не доходили. Но вот, наконец, дозрел до сборки соответствующего программатора. В первую очередь, конечно, обратил внимание на известную реализацию от misyachniy, судя по отзывам, как хорошо зарекомендовавшую себя на практике. Наши коллеги у соседей zx-pk.ru активно продолжают её развивать и поныне. Впрочем, несмотря на ряд преимуществ, в виде относительной простоты и доступности элементной базы, оригинальная схемотехника имеет и ряд существенных недостатков. Самый главный из них, на мой взгляд, связан с использованием коммутатора 590КН6/DG508A. Данная линейка чипов изначально создавалась для коммутации информационных, а не силовых цепей. Из чего следует ряд негативных моментов:
- В режиме прошивки чип заставляют коммутировать ток минимум в десятки мА, что, скорее всего, превышает гарантированную по документации нагрузку открытого канала. Почему "скорее всего", читаем далее.
- Даже в полностью открытом состоянии канал коммутатора имеет значительно сопротивление, до нескольких сотен Ом. Этот факт автор использовал в схеме для ограничения прошивающего тока. Поэтому резистор, включаемый последовательно с прожигаемым разрядом, у него значительно меньшего сопротивления, чем должен был бы стоять для идеального случая. Но проблема даже не в этом. А в том, что сопротивление канала может иметь очень большой разброс от экземпляра к экземпляру чипа. Даже по даташиту на DG508 оно может оказаться от 170 до 400 Ом, "как повезёт"! Подозреваю, что для отечественных чипов ситуация может оказаться ещё хуже. Для коммутации сигналов с токами в доли мА, а то и меньше, всё это несущественно, но в нашем случае...ток прошивки, получается, может иметь разброс где-то от 20 до 60мА!
- Замечал за подобными КМОП-коммутаторами такую особенность, что они ненадёжно закрываются при попытке коммутировать напряжение, близкое к уровню отрицательного, либо положительного питания. А здесь именно тот самый случай!
Только схема в PDF: ссылка на Google-диск
Полный проект в Altium Designer 10: ссылка на Google-диск
Основное отличие - отказ от использования двустороннего коммутатора и замена его связкой дешифратор - мультиплексор. Для формирования прожигающего тока поставил специальный мощный драйвер (UDN2981). Схема теперь кажется люто-бешено громоздкой. Но зато ток прожига задан более чётко резисторами R5...R12 и для питания Vpp = 12В составит значение, близкое к 40 мА. Заменил также транзистор, коммутирующий питание прожигаемого чипа, на ключевой полевик, чтобы значительно снизить потери на нём. Для снижения потерь в сигнальных и питающих цепях везде применил диоды Шоттки. Защиту адресных линий при пробое ППЗУ, как у solegstar, решил всё же не делать. Это дополнительно съедает напряжение лог. 1, и мне всё же кажется маловероятным подобный сценарий пробоя. Однако, если у кого-либо есть иной опыт в этом плане - было бы интересно ознакомиться.
И вот что в итоге получилось:
На данный момент успел протестировать прошивку азоновских КР556РТ5 90-го года и НЭВЗовских 155РЕ3 91-го. Использовал модифицированную Tronix программу. Все чипы прошились чётко с первого раза. "Термотренировка" на 100-ваттной лампочке накаливания в течение нескольких вечеров "зарастания" прошитых битов пока что не вызвала.
Не обошлось, впрочем, и без ошибок. Если приглядеться, на двух ногах у драйвера можно заметить проволочные "костыли". Да, попутал землю с питанием при разводке...в выложенном проекте данный косяк исправлен.
Также поступило предложение модифицировать схему питания (DA1) для компенсации падения напряжения на VD1 таким образом:
Можно попробовать использовать её в случае возникновения проблем с чтением чипов.
Вот ещё вариант программатора с заменой ключа VT3 на управляемый стабилизатор. В жизни я такой вариант не испытывал, но всё в принципе должно работать. Кто пожелает - можете попробовать. Бонусом на разводке платы загнал под TO-220 футпринты для стандартных радиаторов серии SK29.
Только схема в PDF: ссылка на Google-диск
Полный проект в Altium Designer 10: ссылка на Google-диск
Для нормальной работы LM317 напряжение питания придётся подавать минимум где-то вольта на 3...4 выше, чем выставлено напряжение прожига. Настроено оно в данном случае на 12В, но в принципе возможно выставить и иные его значения, скорректировав номиналы R14...R16.
Тепловая нагрузка распределяется между DA1 и DA3, что, наверно, неплохо, но в основном, понятное дело, греться будет LM317. Так что я бы под него площадь радиатора не экономил и поставил бы, как минимум, SK29-38S. Для 7805 вполне должно хватить SK29-25S, а то и меньше.