Чем я шил и шью ПИК-и

При проектировании и создании устройств на ПИК-контроллерах одной из задач является запись управляющей программы в память процессора. В данном случае подразумеваются ПИК-контроллеры с т.н. флэш-памятью программ, в маркировке которых присутствует буква "F" (например, PIC16F877A). Заложенный в этих микросхемах механизм предполагает упрощенный режим прошивки микрокода. Для этого нужны две вещи - адаптер (программатор), подключаемый к компьютеру, и управляющая программа (софт), выполняющая непосредственно саму процедуру прошивки. Конечно, более профессиональным решением было бы приобретение программатора промышленного изготовления, поддерживаемого непосредственно из среды программирования и обладающего такой полезной функцией, как режим отладки (debugger). Но, в любительских целях ТАКИЕ затраты вряд ли можно считать оправданными. Хотя, последнее - это чисто мое мнение, не претендующее на истину в последней инстанции...

На этой странице в хронологическом порядке описаны те програматоры (и управляющие ими программы) которые я использовал при создании своих конструкций. Указанные как схемы, так и программы были найдены в интернете, причем в открытых источниках (ссылки приводятся) и являются бесплатными.

1.TLVP

2. SCHAER+

3. EXTRA PIC

Программатор TLVP

Первым процессором, с которым мне довелось иметь дело, был PIC16F877A. Как показала практика, начинать поиск нужно не со схемы програматора, а с управляющей программы. И уже потом смотреть, какие типы програматоров она поддерживает. Поиск самых простейших вариантов програмирования прошивки в этот процессор дал комбинацию программы FPP (Flash Pic Programing) [2] и програматора TLVP (Trivial Low Voltage Programator) [1]. Схема програматора приведена ниже (на рис. 1).

Рис. 1 — Схема програматора TLVP

Как видно из приведенной схемы, она действительно весьма тривиальна. А с учетом того, что, когда я впервые увидел схему на сайте Байрона Джэфа, в ней было еще на две детали меньше (не было "антизвоновой цепи" из резистора на 270 Ом и конденсатора на 1 мкФ), то "железяка" была и того проще. Возник вопрос - чем менять регистр 74xx573. Порылся в справочниках, нашел 1533ИР22, являющуюся аналогом 74хх373, и написал письмо Байрону Джэфу с вопросом "А можно ли заменить 573 на 373 ?". Через время пришел его ответ - что все должно работать. Правда, терпения у меня не хватило, и еще до того, как пришел ответ, я на практике уже проверил работоспособность. Все работало отлично.

Один нюанс, и немаловажный. В названии програматора присутствует абревиатура LVP (Low Voltage Programator - т.е. "низковольтное програмирование"). Это означает, что используется именно низковольтное програмирование процессора, и, как следствие:

Сама программа FPP (Flash Pic Programing) также предельно проста. Скачайте архив (программа бесплатная), выложенный на странице автора [2], распакуйте в любую (или новую) папку на диске и запускайте. Внешний вид программы показан на рис. 2 (ниже).

Рис. 2 — Интерфейс программы FPP (Flash Pic Programing)

Первым делом нужно нажать кнопку "Setup", и Вы попадёте в меню настройки, показанное на рис. 3 (ниже). В нем в поле "Hardware" из выпадающего списка выбрать програматор - "TLVP"; в пункте "on port" выбрать номер порта, к которому подключен програматор (обычно LPT1); а в поле "Device" из выпадающего списка выбрать процессор (в моем случае это был PIC16F877). После этого нажимаем кнопку "ОК" и возвращаемся в саму программу.

Рис. 3 — Меню настройки программы FPP

При желании Вы можете использовать данную программу с другим програматором. Но при этом Вам придется ее настроить. Для этого существует меню расширенной настройки. Чтобы попасть в него, нужно в меню настройки (вызываемом кнопкой "Setup") нажать кнопку "Define/Test". Вы попадете в меню, показанное на рис. 4 (ниже). В моем случае (програматор TLVP) этого не потребовалось...

Рис. 4 — Меню расширенной настройки программы FPP

Вкратце сама процедура записи прошивки в процессор (в основном окне программы - см. рис. 2):



Програматор SCHAER+

Переход на 18-е ПИК-и заставил искать новую программу для записи. А c другой стороны, я решил отказаться от низковольтного (LVP) програмирования (все-таки было мне жалко одну ногу процессора не использовать в конечных конструкциях). Итогом поисков (естественно, "комплексных") стала программа "PP18 : Programmer for PIC18" ([3]). На этом же сайте была взята мной и схема программатора "SCHAER+: PIC18 programmer" - [4]. Вот она:

Рис. 5 — Схема програматора SCHAER+

На странице [4] приведена не только схема, но и разводка печатной платы программатора SCHAER+. Лично для себя я развел эту плату по новой (см. рис. 6 ниже), но принципиальных различий НЕТ. Всё это выложено у меня на сайте в документе [5] - там в одном PDF-е "живёт" всё сразу: схема, плата, расположение деталей и зеркальное изображение дорожек для "лазерного утюга"...

Рис. 6 — Моя разводка платы програматора SCHAER+

В итоге, "мой" програматор SCHAER+ выглядит так, как показано на рис. 7 (ниже).

Рис. 7 — Внешний вид моей платы програматора SCHAER+

Теперь о самой программе "PP18: Programmer for PIC18". Главный нюанс её в том, что она - модульная. То есть, есть сама програма - оболочка, "не знающая" никаких процессоров, и есть модули (dll-файлы), каждый для своего процессора. Соответственно, Вам для работы со страницы автора [3] необходимо скачать как минимум два архива - самой программы PP18.EXE и модуля под выбранный процессор (например, PIC18F458 DLL). Распакуйте оба архива в ОДНУ любую (или новую) папку на диске и запускайте. Внешний вид программы показан на рис. 8 (ниже).

Рис. 8 — Настройка программы "PP18 : Programmer for PIC18" - выбор dll-библиотеки

При первом запуске программы "PP18: Programmer for PIC18" её нужно настроить на работу с требуемой dll-библиотекой (читай - выбранным процессором). Для этого правой кнопкой мыши нужно щелкнуть на изображении ZIF-socket-а в правой стороне интерфейса программы и выбрать пункт "Select Plug-in" (см. рис. 8 выше). После этого нужно указать путь к выбранному dll-файлу.

Более подробно о работе с самой программой можно прочесть на посвященной ей странице в интернете - [3] (правда, на английском языке).

Кроме того, доводилось мне совместно с програматором SCHAER+ использовать и другую программу: "IC-Prog" (версия 1.05D) [6]. При этом, чтобы программатор работал нормально, нужно зайти в пункт "Настройки Программатора" программы "IC-Prog" и:

Рис. 9 — Конфигурация программы "IC-Prog" (версия 1.05D) для работы с програматором "SCHAER+"




"Goodbye Yellow Brick Road" (С) Elton John

От описанных выше програматоров мне пришлось отказаться. Они работали без проблем, пока были подключены к старенькому ноутбуку (Pentium-150), у которого на выходе LPT-порта уровень "единицы" равнялся 5-и Вольтам. Но, после того как я "махнул не глядя" ноутбук на более "свежий", у которого уровень "единицы" на выходе LPT-порта (наверное, в целях энергосбережения) снизили до 3-х Вольт, с програматорами начались "приколы". Кроме того, на старом ноутбуке был установлен "старый" Windows-98, при котором описанные выше программы легко получали прямой доступ у LPT-порту (а это им необходимо для нормальной работы). А вот Windows-2000, установленный на "более свежем" ноутбуке, такого уже не позволяет, что прибавило дополнительного "геморроя" с установкой и настройкой дополнительных драйверов для прямого доступа к порту (типа AllowIo, Porttalk, и т.п.)...



Програматор EXTRA PIC

Решил я тут повозиться с процессором PIC18F4550. И вдобавок к "чудесам", описанным абзацем выше, добавилась необходимость шить ПИК "в два присеста".

Это было последней каплей, вынудившей начинать новый этап поисков. Как показал анализ, очень много программ для записи ПИК-ов поддерживают програматор JDM. Но, "в чистом виде" у этого предельно простого програматора также могли быть проблемы с совместимостью (уровнями сигналов COM-порта). И вот, на русском форуме, посвященному процессорам от Микрочипа, я нашел ссылку на програматор EXTRA PIC [7]. Схему его я привожу ниже (рис. 10).

Рис. 10 — Принципиальная схема програматора EXTRA PIC

Как видно из схемы, волновавшая меня проблема совместимости, решена использованием специализированной микросхемы - МАХ232. После того, как развел плату (рис. 11) и спаял програматор, я убедился, что вопросов по поводу его работы не возникает абсолютно. Писать еще что-либо о програматоре смысла не вижу, так как на странице [7] все это уже сделано на должном уровне.

Рис. 11 — Моя разводка платы програматора EXTRA PIC

"Свою" версию печатной платы я не выкладываю ибо, как видно на странице [7] - это коммерческая разработка ее авторов. Там Вы сможете приобрести либо готовый програматор, либо полный набор деталей для его самостоятельного изготовления, либо одну лишь печатную плату...

Рис. 12 — Внешний вид моей платы програматора EXTRA PIC

С данным програматором я проверял работу следующих программ:

Во всех этих программах при настройке нужно указать, что Вы используете програматор JDM.

О том, как под управлением Windows-2000 программе "IC-Prog" предоставить прямой доступ к порту, описано на ее сайте [6]. А вот при запуске программ "WinPic" и "WinPic 800" подобного вопроса у меня не возникло вообще - они "решили проблему" самостоятельно. Кстати, у всех трех указанных программ возможен выбор русского языка интерфейса.

Рис. 13 — Интерфейс программы "WinPic 800"

Ну вот, на этом история "моих" програматоров пока что заканчивается. Хотя, есть еще вот это...



СПИСОК ЛИТЕРАТУРЫ

  1. Страница Байрона Джэфа (Byron Jeff), посвященная програматору TVLP
  2. Страница Дэвида Тэйта (David Tait), с которой можно загрузить программу FPP (Flash Pic Programing)
  3. Страница программы PP18 (версия для Windows)
  4. Страница с описанием програматора SCHAER+
  5. Мой PDF по програматору SCHAER+ (665 кБ) - схема, плата, расположение деталей, зеркальное изображение платы для "утюга"
  6. Сайт программы "IC-Prog"
  7. Страница "EXTRAPIC - Программатор PIC-контроллеров и I2C (IIC) EEPROM" на сайте 5v
  8. Сайт программы "WinPic"
  9. Сайт программы "WinPic 800"


Обобщения и разлагольствования — ©Дмитрий Харций



ВВЕРХ СТРАНИЦЫ