Информационный портал MSEVM



Главная > Программаторы > Программатор Willem Prog

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

      Если говорить только об универсальных программаторах, то даже на российском рынке можно найти несколько вполне приличных и доступных по цене: Triton, Мастер, Uniprog, Autoprog, нет смысла перечислять все - слишком долго. Смущает только то, что всегда найдется микросхема, которую не поддерживают эти программаторы. Кроме того, удовольствие от самостоятельной сборки конструкции многого стоит и, лично для меня перевешивает все остальное.

      Проектов программаторов для повторения и самостоятельной сборки в Интернете тоже можно найти немало, хотелось бы коротко сказать о тех, с которыми приходилось работать. Прежде всего, это, конечно, патриарх "программаторостроения" - Турбо фирмы "Бинар". Невозможно подсчитать, сколько людей повторили его схему, цифра наверняка будет со многими нулями. У меня тоже лежит программатор Турбо одной из первых версий, приобретенный лет восемь назад. И он до сих пор работает. На рис.1 показан один из вариантов этой конструкции от Алексея Белянского.



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

      К сожалению, в последней доступной версии ПО Turbo-v6 нет поддержки современных микросхем, в том числе FWH.

      BiDiPro - другой программатор, с которым мне пришлось поработать. Отличный проект от Эдуарда Панченко и Игоря Попова! До предела вылизанная схема, тщательно проработана разводка печатной платы, очень подробно описаны процессы сборки и наладки (хотя любой инженер электронщик с первого взгляда обнаружит парочку некорректных схемных решений, видимо, оставленных авторами в стремлении сделать схему более простой и компактной). Добавьте сюда великолепно изготовленные по промышленной технологи печатные платы программатора и адаптеров - и я побежал на почту переводить деньги за набор плат. Целая неделя кайфа - собирать устройство на такой плате сплошное удовольствие. Но все хорошее быстро кончается, обнаружилось, что BiDi пишет не все что мне нужно и не всегда корректно (например, LPC flash). Работа по обновлению ПО тоже ведется не так быстро, как хотелось бы, а дописывать конфигурационные модули на нужные микросхемы самому, как предлагают авторы, для меня непосильная задача - не мой профиль. Пришлось отказаться от этого, в общем-то, неплохого программатора.


Рис.2a Программатор "BiDiPro" (вид сверху)



Рис.2b Программатор "BiDiPro" (вид снизу, со стороны деталей)

      Более подробно об этом проекте и Турбо можно ознакомится на сайтах Игоря Попова (http://www.geocities.com/pop_eco/) и на сайте фирмы Бинар.

      Не стоит забывать и Hot Swap. Многие пользуются этим способом до сих пор. Дергать МС bioc'а на ходу не стоит, лучше изготовить давно известное приспособление из двух панелек, а поскольку все необходимые сигналы есть на ISA шине, то эти панельки можно смонтировать на старой ISA карте, обрезав ее разводку. Сигнал CE, переключаемый для выбора активной микросхемы берется с панельки bios на материнской плате. Такое приспособление в комплекте со старенькой матплатой под socket 7 или slot 1 почти ничего не стоит и позволяет работать с относительным комфортом. С помощью утилит Amiflash и Uniflash (http://www.uniflash.org) можно писать практически все существующие Flash микросхемы. Для FWH принцип тот же, только переключается сигнал IDO. Ничто не мешает пользоваться этим же способом при записи последовательных МС и PIC, но нет подходящей программы, увы, никто не хочет ее писать.


рис.3 "Hot Swap"

      А дальше опять поиск подходящей конструкции (Этим вынуждены заниматься все любители конструирования не сподобившиеся, как и я, освоить хотя бы один язык программирования и не способные написать программу для собственной схемы). Вообще-то принцип построения программаторов основанный на использовании LPT (или COM) портов для управления схемой и основного процессора PC в качестве управляющего процессора программатора среди профессионалов считается безнадежно устаревшим, он налагает жесткие ограничения на скорость работы и функциональные возможности устройства. Современные программаторы, те же Triton или Мастер, имеют встроенный процессор со своей программой и очень сложную схему управления узлами, построенную на универсальных логических драйверах, но этот путь доступен только профессиональным коллективам, а среди любителей радиоэлектроники по прежнему популярно программирование через LPT, поэтому я выбрал самый простой и раскрученный проект - Willem Prog. Надергал из Интернета все, что смог найти по теме, количество вариантов и версий оказалось впечатляющим:

  • pcb3; pcb4; pcb4,5 (http://willem.org/)
  • pcb3b (http://www.se-ed.net/eprom/)
  • pcb3.1 (http://msevm.com)
  • pcb3.5; pcb4.0c; pcb4.5c (http://www.sivava.com)
  • EzoFlash+ (http://www.ezoflash.com/).

      Последняя модификация Willem'а мне особенно импонирует - никаких переключателей, никаких сокетов, оставлено только то, без чего не обойтись. Собственно получился базовый блок программатора с двухрядным разъемом для адаптера, все необходимые соединения и напряжения Vcc и Vpp формируются на самом адаптере. На редкость рациональный подход к решению задачи, тем более что обычно приходится иметь дело с двумя-тремя типами микросхем и усложнять конструкцию сверх необходимого ни к чему.

Но симпатии симпатиями, а купить в нашей глубинке все нужные компоненты невозможно, поэтому приобрел набор для сборки Willem ATH 3,1 special, предлагаемый на сайте e-KIT (http://e-kit.su). В тот же день, как получил посылку, сел и смонтировал плату, прогнал Test H/W, устранил парочку дефектов на печатке и программатор заработал (несмотря на одну неустановленную перемычку, как потом обнаружилось). На фото 4 - то, что у меня получилось.



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

      Картинка, естественно та же, что и на сайте e-KIT, но отличия есть. Свободный 4-й контакт дополнительного джампера я приспособил для записи i28F001BT (рис. 5), припаяв к нему провод от Vpp и добавил джампер переключения pcb3,1/3,5.



Рис.5 Установка дополнительного джампера                   Рис.6 Установка джамперов переключения pcb3,1\pcb3,5

      Прогнал несколько Flash и FWH - работает. Менял микросхемы на советские аналоги, изменял напряжения на 10-15% - работает, редкостная стабильность. Ложка дегтя, естественно, тоже нашлась - не берется ID микросхем W49V002,004FA, при этом пишутся и читаются они нормально. Вначале искал неполадки в железе, не нашел, да и на форумах многие сообщаю об этой проблеме, видимо недоработка в ПО. Только после всего, как обычно и бывает, стал разбираться, как же оно работает. Скачал с сайта willem.org файлы funcdescr.txt и debug.txt, более подробных описаний не нашел, да и не нужно пользователю разбирать работу программатора по тактам, это титанический труд и под силу разве что автору, достаточно общих принципов. В вольном изложении вот что там пишут:

Функциональное описание.

(Нумерация компонентов по схеме ATH 3,1 Special)
Программатор состоит из двух частей, которые являются полностью самостоятельными: последовательной секции и главной параллельной EPROM части. Последовательная секция поддерживает микросхемы I2C серии: 24CXXX, 25Cxxx и 93Cxxx. PIC-контроллеры также поддерживаются, они могут быть запрограммированы с IC2 шины и Vpp (ICSP) или в дополнительных панельках, установленных на плате. Эта секция - простая цепь, которая идет от D0 (pin 2 LPT) на U1d(4049), затем Q6, Q5, U1e и к BUSY (pin 11 LPT). Эта цепь также используется для контроля подключения программатора к порту.

Параллельная секция состоит из нескольких частей:

Две микросхемы 4503 (2х4 буфера с тремя состояниями) используются как буфер 8-и разрядной шины данных (D0-D7) от LPT, секции 2 + 4 буфера переключаются сигналом DA (pin1 U2 U4) в зависимости от режима работы - чтение\запись.
Режим чтение\запись управляется AUTOFEED (pin 14 LPT), этот сигнал также переключает data\clock регистра адреса (enable DB pin 15 U2). D0 (pin 2) и D1 (pin 3) имеют двойную функцию и должны быть выключены во время записи.
Регистр адреса на 24 bit (3 x 4015, U6, U11, U14) выставляется перед каждой операцией чтения\записи, для этой цели используются D0(clock) и D1(data).
8-bit параллельно-последовательный регистр (4014) используются для того, чтобы читать данные на 8-и разрядной шине данных EPROM. Параллельный вход (pin A..... H 4014) связан с 8 bit шиной данных EPROM (D0.. D7).
Для каждой операции чтения выставляется адрес, по сигналу P/S high (pin 9) от D1 в регистр 4014 будет записан byt данных, затем P/S low и импульсами от D2 (инвертированными U1b) к CLK (pin 10) данные за несколько тактов CLK(pin 10) через U1a передаются в порт (ACK pin 10).
Vpp управляется сигналом Strob (pin 1 LPT) и транзисторами Q3 и Q1. Vcc управляется сигналом Init (pin 16LPT) и транзисторами Q4 и Q2. PGM или WE (write enable), управляется Select (pin 17LPT), сигнал идет от LPT pin 17 к U4 pin 12, от U4 pin 11 на DIP-switches.
DIP switch 12 используется для поддержки различных типов микросхем, Vcc, Vpp, WE и некоторые адреса могут быть подключены к различным выводам Zif 32.

      Вот так, очень кратко и не очень внятно, когда просто смотришь на схему понятно больше. Описание основных функций программы не привожу, кому интересно прочитают в оригинале. Стоит отметить необычное схемное решение в адапторе FWH, эти микросхемы пишутся в параллельном режиме, как и обычные Flash, но адрес устанавливается двумя частями (строки и столбцы, R/C). Для мультиплексирования адреса в адапторе FWH Willem'а используется транзистор Vcc, а Vpp используется для питания микросхемы (через стабилизатор 3,3v) и как собственно Vpp.

Наладка.

(Нумерация компонентов по схеме ATH 3,1 Special)
Эта страница - о версиях eprom programmer 4.0, 4.5, 3.1

PCB3B от Gitti Ieo очень похож, но есть отличия - секция регулятора напряжения - полностью другая: 3.1, использует 7805 и 7812 интегральные стабилизаторы, Vpp 21 и 25 в могут быть получены дополнительными стабилитронами на корпусном выводе 7812, Pcb3b использует MC34063A, чтобы получить различные Vpp напряжения.

Конфигурация джемперов также отлична.

1.Визуальный осмотр

После того, как Вы закончили монтаж программатора, сделайте полный визуальный осмотр. Это очень важно для выявления проблем, вызванных плохой пайкой и дефектами печатной платы, (неизбежными при "утюжно - лазерной" технологии, особенно pcb3b, где плотность монтажа намного выше). Используйте сильный источник света и лупу. Проверьте правильность установки компонентов, особенно микросхем. В сомнительных случаях сверяйтесь с принципиальной схемой, нельзя доверятся только монтажке. Это самый важный пункт.

ПРАВИЛЬНО СОБРАННЫЙ ПРОГРАММАТОР РАБОТАЕТ СРАЗУ И НАЛАДКИ НЕ ТРЕБУЕТ. ПРОВЕРЕНО!!!

2.Проверка стабилизаторов напряжения и цепей питания.

При первом включении подключите источник питания 14-30в через резистор 150-300ом, это поможет избежать неприятностей связанных с короткими замыканиями и неправильно вставленными микросхемами.DIP4 - все on, DIP12 - все off. Должен загореться зеленый светодиод (во всяком случае, у меня он зеленый). В противном случае ищите кз и обрывы. Проверьте 12,7 в на выходе 7812 , если установлены стабилитроны, можно проверить 21в и 25в переключая DIP свич. Напряжение должно отличатся не более 5% . Если Vpp слишком мало, 20.5 в, например, Вы можете подключить последовательно со стабилитроном диод 1n4148 в прямом направлении или использовать стабилитрон другого номинала. Проверьте напряжение на выходе 7805 и на всех ИС pin - 16. (4049 pin). Если на выходе 7805 не 5 в, а ноль и она греется, то в цепях питания кз, если напряжение ниже, чем 5 в и нагрев, это наиболее вероятно чип, установленный наоборот, этот чип также станет теплым.

С 4.0 и 4.5 версиями это немного отличается:
v4.0 использует 2 LM317's, которые установлены с несколькими резисторами и DIPswitch.
v4.5 использует 7812 12.6 в и LM317 с резисторами.

3.Испытание программатора.

Подключите программатор к PC, включите источник питания и загрузите OS.


(У меня используются: Acorp 6BX86, PII350, 64Mb RAM, LPT-EPP+ECP, Блок питания 15в нестабилизированный вилочный. Windows 98SE2. Epr097ja)

Запустите EpromM51.exe, если программатор не обнаружен (меню Help\Test Hardware - в строке состояния должно появиться сообщение Hardware present) проверьте электропитание и кабель. Можно поэкспериментировать с настройками bios, но это вряд ли поможет.

Если вы уверены в исправности внешних цепей (LPT, кабель, блок питания), то переходите на закладку H/W test и проверьте "сериал (D0 pin 2)", должна стать '1', иначе есть проблема со связью с PC. Проверьте прохождение сигнала (3-5в или 0) по цепочке от LPT pin 2--4049 pin 9--4049 pin 10(инверсия)--Q6 (инверсия--Q5(инверсия)--4049 pin 11--4049 pin 12 (опять инверсия)--LPT pin 11.

Если изменение сигнала проходит, должна быть связь и проблема на вашем PC.

Если программа определяет наличие программатора, Вы можете продолжить испытания.

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

Установите DIP12 в положения, показанные в окне H/W Test программы. Поочередно ставьте "птички" на всех выводах ZIF32 и проверяйте напряжение вольтметром, на Vcc, A0-A17, D0-D7, WE должно быть 5в (на А9 3-4в из-за диодной развязки). Для обнаружения возможных замыканий проверяйте контакты ZIF рядом с тем, который стоит в "1", там должны быть "0". Для примера: Вы проверяете A5, A4 и A6 должны остаться в "0".

Теперь можно пробовать программировать eprom, лучше использовать 28F010 или 020, что позволит проверить все линии адреса, данных и Vpp(не забудьте выставить в меню Device тип микросхемы и установить DIP12 в нужное положение). Вы можете легко стереть чип программатором. Но Вы можете также использовать eproms 27C020 или 29F040, предварительно стертые конечно. Если проверка стирания терпит неудачу, и Вы уверены, что eprom пуст, должна быть проблема в секции чтения (4014). Загрузите файл, который равен по размеру EPROM, чтобы использовать весь диапазон адреса устройства. Проверьте ID микросхемы, если это работает и выводится hex ID микросхемы, тип и производитель, то программатор работает. Запустите erase\write\verify. Если программирование терпит неудачу, Вы должны будете сделать больше попыток, чтобы определить местонахождение проблемы. Отказ в том же самом месте подобно "ошибке в 0x040000 buffer=0xXX, chip=0xXX" вызван отказом адресации. Случайная ошибка, может быть вызвана плохо стертым УЛЬТРАФИОЛЕТОВЫМ чипом или Vpp слишком низко, могут также быть другие причины, например, нестабильность регуляторов напряжения.

Если в результате всех проверок программатор не заработал, то у вас по прежнему есть дефекты печатной платы, неправильно установленные или неисправные компоненты и тп. Начните все с начала.


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

Программное обеспечение для программатора не отличается таким разнообразием, как варианты конструкций. По сути, это Eprom51 версий 0,97G и 0,97ja для willem'ов с оригинальной схемотехникой и 0,98D2-D5 для серии программаторов pcb3,5-4,5 распространяемых через http://www.sivava.com.

  • v. 0,97ja - от Gitti Leo. На сегодняшний день, видимо, лучшая и наиболее часто используемая. Работает иногда вдвое быстрее, чем 0,97g. Список поддерживаемых МС достаточно широк для практических нужд, а те МС, которых нет в списке, можно писать, выбрав в меню ближайший аналог, главное не ленится заглянуть в документацию и правильно подключить. Замеченные неполадки - не берет ID МС W49Vxxx, при этом пишет и читает их нормально; не стирает МС 29Cxxx, но чтение\запись\верификация в норме, эти микросхемы допускают запись без промежуточного стирания. Очень хотелось бы дождаться от автора обновления этой версии.

  • v. 0,97g - по отзывам самая стабильная из всех.

  • v. 0,98D2 - добавлена поддержка большого количества микроконтроллеров, в том числе PIC 18xxxx. Не совместима с программаторами, построенными по оригинальной схеме, так как в версиях pcb3,5-4,5c изменена схема адресации. Регистр адреса в pcb3 заполняется последовательным сдвигом от линии D01 LPT, в pcb3,5 по линиям D01, D04, D05 LPT одновременно все 3 микросхемы, что дает выигрыш по времени. Вокруг этой версии большой и не очень понятный ажиотаж и я тоже доработал свой pcb3,1s (рис. 6) джамперами переключения pcb3,1\pcb3,5, попробовал - честно говоря, не впечатляет. Увеличение скорости на 15-20% заметно только по секундомеру и не принципиально, новых Flash и FWH не добавилось, проблема с W49Vxxx тоже осталась на месте. Кроме того изменения в схеме pcb3,5 коснулись только параллельной части программатора и работать с последовательными flash и PIC контроллерами можно и на "старом" железе. Проверял 25ххх и 24ххх - все в норме. Резать печатку своего pcb3,1 можно было не спешить. Более подробно об этом можно найти на русском форуме http://www.ezoflash.com/forum/index.php.

  • v. 0,98D5 - не пробовал, по отзывам работает очень нестабильно.

  • v. 0,996 - DOS версия - работа над ней, видимо прекращена, а жаль - под DOS работать с любым железом проще.

      После всех экспериментов печатная плата моего ATH 3,1s пришла в плачевное состояние, планирую собрать себе новый программатор. За основу взял схему и разводку pcb3b, добавил резисторы, рекомендованные разработчиками ПО и джамперы переключения pcb3b/pcb3,5. преобразователь на МС 34063 выбросил и вернул 7812 (ни к чему усложнять схему ради удовольствия использовать питание от USB).

Подправил печатную плату под сделанные изменения. Никаких сюрпризов от такого варианта ждать не приходится - все узлы не новы и многократно проверены. Что получилось, смотрите в приложениях.

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




Приложение



Использованы материалы с сайтов:
  • http://www.sivava.com/Product_A04.htm
  • http://www.ezoflash.com/forum/index.php
  • http://home.tula.net/ua3prq/pruf/pruf.htm
  • http://www.willem.org/
  • http://se-ed.net/mpu51/eprom/eprom.html#SCHPCB
  • http://www.j-cell.de/forum/viewforum.php?f=31
  • http://www.geocities.com/pop_eco/
  • http://www.elsie.ru/index.html
  • http://www.eximer.net/products/izm/programmer/device/
  • http://www.triton-prog.ru/progr.html
  • http://www.comail.ru:8081/~_/binar/
  • http://rom.by/articles.htm
  • http://www.uniflash.org


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








e-mail рассылки
Радиолюбитель
Подписаться письмом
















Яндекс цитирования Rambler's Top100