Этот проект некоммерчесий и выражает исключительно мнение автора, который не несет никакой ответственности за достоверность и корректность находящейся здесь информации. Проект носит ознакомительный характер. Коммерческое использование любых материалов этой страницы запрещено.
Сие чудо техники неизвестного разработчика, призводимое некоей KitLAB и рассылаемое по почте агенством Dessy - представляет из себя простенький программатор микросхем ПЗУ с параллельным доступом. "Официальную" информацию и программное обеспечение можно закачать с вышеприведенных сайтов.
Я радиолюбитель "со стажем".
Конструированием аналоговых устройств
занимаюсь много лет. Но не так давно и меня
заинтересовали устройства цифровые, чему немало
поспособствовало наличие компьютера. И вот года
два назад в журнале "Радио хобби" я увидел
рекламу недорогого и (как следовало из описания)
весьма практичного программатора - и я его купил
(заказал по почте). Отдал я тогда за
"все-провсе" около шестисот
"деревянных". Внешний вид того, что мне
прислали (в немного измененном виде) можно видеть
на фотографии выше.
Поначалу я был очень доволен своим
приобретением. Но со временем я понял, что очень
многие ПЗУ, которые мне хотелось бы прошить -
программатор не поддерживает. К тому же было
неочень удобно то, что управляющая программа
была только под DOS, да и интерфейс у неё, на мой
взгляд неудобный (как у учебной программы
студента-троишника). Я обратился к производителю
по емылу с выше приведенными замечаниями, и
выразил надежду, что производитель проапгредит
софт. На первое письмо я ответа не получил, на
второе тоже ... Программа не обновлялась и я писал
еще ... Потом я получил ответ, где назывался
даже примерный срок выхода новой версии
программы. Но с тех пор прошло уже очень много
времени а обновлений до сих пор нет. Я отправлял и
просьбы выслать мне исходный код программы,
чтобы я ее доработал для себя и для других сам. Но
был ответ, что некий неизвестный (общественности)
автор этого программатора исходный код не
распространяет (а беседу я вел надо понимать с
менеджером ?).
Еще сразу взглянув на принципиальную
схему я понял, что возможности программатора
намного шире, чем те, что позволяет использовать
все таже старая версия программы (другой-то нет).
Включил я программатор запустил Паскаль и стал,
глядя на принципиальную схему одним глазом - в
справочники другим, пробовать писать нечто свое.
Фактически сразу столкнулся с одной проблемой:
"Что записанно в контроллере pic12c508, и как он
функционирует". Посмотрев на схему
повнимательнее стало понятно, что его задача
состоит в формировании произвольного
значения на трех "выходах", в зависимости от
определенной, надо понимать,
последовательности сигналов на двух
"входах". Алгоритм понятное дело
представлял из себя "черный ящик".
Была мысль и прочитать содержимое контроллера и
я даже его аккуратно выпаял (как видно, сейчас он
установлен в кроватке) - но он оказался
защищенным от считывания. И тогда я понял - что
это является своеобразным ключем защиты от
копирования этого девайса. Да нужды в
копировании и небыло. Меня интересовали входные
последовательности для управления этим
контроллером (его выходными линиями). И я
вооружившись вольтметром и самопальной
программой с генераторм случайных чисел стал
тестить котроллер. На вход подавалась
последовательность и по вольтметру
отслеживалось изменение состояний выходов, как
только наблюдаемый выход удавалось перебросить
в противоположное состояние - последние элементы
последовательности сохранялись. Далее шла
работа по минимизации последовательности
(очистки ее от элементов, не влияющих на
результат). И так для каждого выхода. Работа очень
крапотливая и результат носит вероятностный
характер. Не один день я потратил на это. Но вот
все позади и у меня есть те комбинации сигналов,
которые нужно подавать на входы контроллера,
чтобы изменить соответствующий выход, также была
найдена последовательность сбрасывающая все
выходы. Явной закономерности в управляющих
комбинациях сразу я не нашел, уже потом я еще раз
брался за вольтметр и довел дело до конца -
подробное описание результатов смотри здесь 12c508a.txt (кодировка win-1251).
Далее была написана простенькая программка,
читающая ПЗУ в файл. Затем я стал искать
документацию по алгоритмам программирования
ПЗУ. Стало ясно, что "железная" часть
программатора тоже накладывает большие
ограничения на применимость ряда алгоритмов и
возможность работы с некоторыми ПЗУ. Для начала
решив не повторяться, я отложил написание
программы работы с микросхемами UVPROM (стандартная
программа с ними работает не плохо). А стал я
эксперементировать с микросхемами Flash - и начал я
с имеющейся у меня в наличии MXIC 28F1000P (стандартная
программа работать с ней не умеет). Достал
документацию от производителя и стал писать. Все
шло очень небыстро - софт для программатора пишу
в первый раз ...
Но вот все написано и отлажено - УРА!!!
Программатор PGM02 с успехом читает/стирает/пишет
ранее не поддерживаемую микросхему MXIC 28F1000P.
Лежала рядом и другая микросхема AT49F002T и я взялся
писать и для нее. Все работает - но программатор
PGM02 явно не приспособлен для такого алгоритма:
младние 12 линий адреса перебираются
последовательно - а микросхема требует на запись
кажного запись управляющих слов по разлтчным
адресам. В результате запись оказывается
неимоверно долгой (6 сек-128 байт).
Также неоднократно ругался на видимо тупого и
недальновидного разработчика прграмматора.
Иначе бы он не стал вешать свою защиту (@#$%) на
линию #CE, котрую в некоторых флэшках надо дергать
по несколько раз за один цикл записи байта. А тут
один раз изменить линию #CE - нужно 15 циклов
параллельного порта (LPT) - соответственно время
записи сильно возрастает. Благо некоторые
(далеко не все) микросхемы позволяют тактировать
запись только сигналом #WE...
Между тем нашел тут драйвер прямого доступа к
портам из под Windows, причем как 9x так и 2k. Переписал
свою программу на Дельфе под Windows.
И так - зачем создавался этот проект или для чего я все это писал ?
Я не призываю копировать этот программатор другим радиолюбителям - не по соображениям легальности - просто поверьте мне - это неудачный пример для подражания. (сущестуют более функциональные любительские разработки - например bidiPro)
Я просто хочу немножко порадовать тех людей кто, возможно, как и я прокололся с покупкой этого программатора. Последняя версия программы от производителя - двухлетней давности. Надеяться на его поддержку, я думаю, бессмысленно. По этим двум причинам это все и затевалось. Мой проект открыт - все исходники можно забрать по ссылкам ниже. Мой труд основан на чистом энтузиазме - и коммерчекого распространения (от моего лица) он не получит (так, что с моей стороны все законо).
Я буду рад если кто нибудь заинтересуется моим проектом и мы совместными усилиями его еще немножко продвинем - дабы помочь как себе, так и другим пользователям программатора PGM02.
Обсуждение этой темы на форуме здесь.
Драйвер прямого доступа к портам в Win9x/Win2k
И еще - при наличии времени/настроения и новых видов микросхем - я буду дописывать мою программу (версию под Win2k). Так сейчас последняя версия полностью поддерживает и AT28C64. Пока я не смог разобраться, как программируются (во всех случаях) микросхемы серии 29Cxxx - если кто подскажет, то реализуем. Эту версию (самую последнюю) можно забрать по следующей ссылке (вместе с исходниками).
PGM02 & MXIC 28F1000P & AT28C64 (Win2k & Delphi)
Спрашивайте, что непонятно, напишем поподробнее для всех.
Последняя редакция 17.01.2004