Amateur Radio Station R9AL
Начало здесь

      Модифицированный вариант pcb3b (http://se-ed.net/mpu51/eprom/eprom.html#SCHPCB), изменена схема формирования Vpp и добавлены резисторы, рекомендованные разработчиками софта. Импульсный преобразователь с микросхемой 34063 заменен на LM 7812 (как в оригинале Willem 3,1). Добавлены джамперы переключения между версиями pcb3b и pcb35. Функционально полный аналог pcb3b/35. Изменена печатная плата в части стабилизаторов Vpp и Vcc. Перемычка для i28001 и две линии D04, D05 напаяны проводом с обратной стороны платы, два диода и резистор (D8, D9, R21) так же паять с обратной стороны. Диод D3 служит для предотвращения попадания потенциала 3-5 v от LPT в цепь питания программируемой МС при выключенном питании, в этом варианте можно заменить перемычкой.

В монтаже и наладке сложнее, чем v3.1s, более высокая плотность компоновки и много перемычек (как и у прототипа, 76 перемычек и 3 провода), но работать с ним удобнее. Расчистка дефектов печатной платы и монтаж заняли около 10 часов. После сборки программатор заработал сразу.


Рис.1 Программатор "Willem" PCB3M.


Проверил работу на МС: Проверял эти же микросхемы с ПО версий 097g, 097ja, 098d2 - результат тот же. Для контроля проделал то же на программаторе pcb3,1s - все повторяется один в один.

С ПО версии 0,98D5 программатор не работает. Стирание проходит нормально, Hardware test нормально, запись и чтение - ошибка. По некоторым признакам сбоит схема считывания (4014). На рисунке осциллограммы тактовой частоты на выводе 10 МС 4014.



При работе с ПО 0,97ja и 0,98D2 на экране четко видны пакеты из 8-и импульсов тактовой частоты с интервалом примерно 100 мкс, длительность импульсов примерно 5 мкс, более точно мой антикварный осциллограф не показывает. При работе с ПО 0,98D5 в пакете отсутствуют 2-й и 6-й импульсы, естественно считывание происходит не полностью и на выходе мусор. Исходя из этого можно предположить следующие причины (в порядке возрастания вероятности):
  1. Быстродействие схемы видимо не при чем, но чтобы окончательно убедиться в этом, нужно собрать программатор на скоростной серии 74HCxxx. Это потребует некоторых изменений в схеме и полной переделки разводки.
  2. В схеме программатора pcb4,5, для которого разработана эта версия ПО, есть изменения, не влияющие на работу с другими версиями. Например, тактовые импульсы подаются на вход 10 МС 4014 от двух линий LPT через диодную развязку (схема "ИЛИ"). Прецедент уже был - в pcb3,5 изменена схема установки адреса.
  3. EPROM51.exe v0,98D5 содержит ошибки.
Чтобы окончательно выяснить это нужно еще несколько экспериментов со схемой, возможно потребуется собрать новый программатор ну и конечно пораскинуть мозгами.
Функциональное описание

* Это описание сделано только на основании анализа схемы и наверняка содержит много неточностей, но для понимания принципов работы схемы этого достаточно.
** Нумерация компонентов по схеме pcb3m

      Программатор состоит из двух частей, функционально полностью самостоятельных: последовательной секции и главной параллельной EPROM части.

Схема питания, построенная на интегральных стабилизаторах 7805 и 7812, подробных пояснений не требует. Дополнительные напряжения получаются включением в "земляной" вывод стабилизатора диодов и стабилитронов, переключаемых джамперами J6-J8. Vpp управляется сигналом Strob (pin 1 LPT) и транзисторами Q3 и Q1. Vcc управляется сигналом Init (pin 16LPT) через U1C и Q2.

DIP switch 12 используется для поддержки различных типов микросхем. Vcc, Vpp и WE и некоторые адреса могут быть подключены к различным выводам Zif 32. Джамперы J1 и J2 также обеспечивают возможность программирования без дополнительных адаптеров МС с нестандартной разводкой выводов. J5 переключает схему регистра адреса для совместимости с pcb3b/pcb3,5, чтобы иметь возможность работы с ПО версий 0,97j и 0,98C-0,98D2

Алгоритмы чтения, записи, стирания, чтения ID любой реальной микросхемы достаточно сложны, в чем можно убедиться заглянув в документацию от производителя. Для понимания принципа работы программатора не требуется описывать их во всей полноте, достаточно упрощений. Тем более, что все операции состоят из ряда элементарных действий - установка шины адреса, установка шины данных, WE, CE, OE, выполняемых в определенной последовательности.

    Запись Flash:
  1. SELIN - "1" (WE - "1" запись запрещена), AUTO - "1", шина данных отключена (E1 - "1", U2.1 - U2.4, U4.1 - U4.4 отключены), U2.5 и U2.6 включены. На DO1 выставляется значение старшего разряда адреса An, на DO0 поступает тактовая частота. С приходом положительного фронта CLK значение адреса записывается в ячейку Q1 регистра. На DO1 выставляется значение адреса An-1, следующий импульс CLK сдвигает An в ячейку Q2, а в Q1 записывает An-1 и тд. Цикл повторяется до полнлго заполнения регистра значенниями адреса A0 - An.
  2. AUTO - "0", SELIN - "1", U2.5 и U2.6 выключены, U2.1-U2.4 и U4.1-U4.4 включены. CLK=D="1" и регистр адреса в режиме хранения. S6=OE="1"- вывод данных записываемой Flash запрещен. На шине DO0-DO7 выставляется первый Byte записываемых данных.
  3. AUTO - "0", U2.1-U2.4 и U4.1-U4.4 включены, на выводах записываемой МС присутствуют значения адреса и данные. SELIN = WE = "0" - запись разрешена - внутренняя логика Flash микросхемы производит запись данных D0-D7 в массив памяти по установленному адресу.
    Чтение Flash:
  1. Установка адреса аналогично зписи.
  2. SELIN - "1" (WE - "1" запись запрещена), AUTO - "1", S6=OE="0" вывод данных разрешен, DO2 имеет постоянное значение и регистр 4014 в пассивном состоянии. На выводах Flash микросхемы присутствуют адрес и сигнал разрешения вывода OE="0". Внутренняя логика микросхемы дешифрует адрес и выводит на шину D0-D7 Byte данных.
  3. На вход CLK U3 подается импульс по положительному фронту которого данные с шины D0-D7 записываются в регистр 4014.
  4. DO1=D="0" регистр 4014 переключается в режим сдвига. На вход CLK от DO2 подается импульсная последовательность и записанные данные сдвигаются на вывод Q8 U3, оттуда через инвертор U1F на вход ACK, где считываются программой.
Для чтения ID программатор использует программый метод суть которого заключается в записи в микросхему определенного набора команд для перевода в режим чтения ID и считывании 3х Byte'ного кода. Таким способом можно прочитать ID не всех микросхем. Например, в старых EPROM для перехода в режим ID нужно подать на вывод А9 напряжение 12 в. Многие МС более поздних выпусков тоже поддерживают этот способ для совместимости со старой аппаратурой. Это реализуемо и в Willem'е, достаточно подать 12в на А9 при чтении МС (убедившись по документации, что этот режим поддерживается) , значения адресов 0000 и 0001 и будут содержать ID. Информацию по кодам ID можно найти в документации или на тематических сайтах, например, на форуме по программатору BiDiPro http://www.geocities.com/pop_eco/ .

Работа схемы в других режимах и при записи МС других типов происходит аналогично, но могут быть некоторые отличия. Например при записи 16-bit EPROM на каждый адрес пишется 2 Byte'а данных, а при записи FWH адрес устанавливается два раза на каждый Byte, что обусловлено конструктивными особенностями этих микросхем.
Наладка
Подробно о наладке здесь

Котухов М.Г.
г.Усть-Каменогорск, Восточно-Казахстанская обл.
kotyx@mail.ru




Приложение



Обсудить на форуме







Copyright © R9AL 2004 Все права защищены

Рейтинг@Mail.ru Яндекс цитирования