Эта статья предназначена, в первую очередь, для специалистов и радиолюбителей, в арсенале которых имеется одна из версий весьма распространенного программатора PonyProg 2000. Автор дает описание простого дополнительного адаптера для этого программатора, позволяющего расширить его возможности при минимальных материальных затратах. Кроме того, в статье приведены методики установки и настройки бесплатного программного обеспечения (ПО) программаторов IC-Prog и WinPic800 для работы с программатором PonyProg.
Программатор PonyProg2000 разных модификаций - это один из самых распространенных программаторов, используемых радиолюбителями и профессионалами. Он является программатором устройств с последовательным доступом (Serial Device Programmer) типа JDM. Интересно, что аббревиатура JDM - это сокращение имени и фамилии изобретателя одного из первых удачных подобных программаторов, датчанина Jens Dyekjar Madsen (см. [1]).
Программатор PonyProg2000 ([2]) разработан итальянцем Клаудио Ланконелли (Claudio Lanconelli). Он состоит из аппаратной и программной частей. Описание PonyProg2000 было опубликовано в нашем журнале ранее (см. [3, 4]).
С помощью этого программатора можно считывать и программировать как различные микросхемы памяти, так и микроконтроллеры AVR и PIC, но, по мнению автора, PonyProg2000 "заточен" больше под микроконтроллеры AVR,чем под PIC. Некоторые производители разрабатывают и изготавливают варианты программатора PonyProg с более широкими возможностями, чем заложены в аппаратный контроллер от Claudio Lanconelli. Например, программатор PonyProg2000 от [5] имеет адаптеры с более разнообразными панельками (см. рис. 3 в [4]). Автор имеет именно такой PonyProg, но и этот программатор не работает с 14-выводными микроконтроллерами PIC. Таких микроконтроллеров несколько: PIC16F630, PIC16F676, PIC16F684 и PIC16F688.
Совсем недавно у автора возникла необходимость запрограммировать ("прошить") PIC16F676. Приобретать дорогостоящий новый программатор для разовой работы не хотелось. Поэтому было решено расширить возможности имеющегося в наличии PonyProg, дополнив его адаптером с 14-выводной DIP-панелькой.
Из технического описания микроконтроллера PIC16F676 (см. [6]) следует, что при работе с программатором используются всего пять выводов этой микросхемы: 1 - напряжение питания 5 В; 14 - корпус; 12 - вход тактовых импульсов; 13 - вход/выход данных; 4 - вход напряжения программирования +13 В. Наиболее распространенный МК типа PIC16F84 в корпусе DIP-18 имеет аналогичные выводы: 14 - напряжение питания 5 В; 5 - корпус; 12 - вход тактовых импульсов; 13 - вход/выход данных; 4 - вход напряжения программирования + 13 В. Схема адаптера, позволяющего работать с PIC16F84, показана в [4] на рис. 16.
В принципе, для разового программирования микроконтроллера PIC16F676 можно было подпаять панельку DIP-14 проводами на этот "штатный" PIC-адаптер, соединив пять выводов этой панельки с соответствующими выводами 18-выводной панельки U9 адаптера. Автор решил сделать отдельный адаптер для программирования 14-выводных PIC-контроллеров, используя информацию, изложенную выше. Схема такого адаптера приведена на рис. 1.
Рис. 1. Принципиальная схема адаптера микроконтроллеров PIC16F630/676/684/688 для PonyProg 2000
Следует отметить, что разъемы подключения адаптеров к базовым платам для разных версий программаторов PonyProg имеют отличия. На схеме рис. 1 обозначены номера выводов как классического разъема PonyProg от Claudio Lanconelli, так и разъема программатора от [5], которым пользуется автор статьи. Адаптер микроконтроллеров PIC16F630/676/684/688 для такого программатора собран на односторонней печатной плате размером 43x38 мм. Внешний вид этого адаптера показан на рис. 2, а комплект, состоящий из базовой платы PonyProg от FLYCONT, ИБП и самодельного адаптера микроконтроллеров PIC16F630/676/684/688 - на рис. 3.
Рис. 2. Адаптер микроконтроллеров PIC16F630/676/684/688 для PonyProg от FLYCONT
Рис. 3. Базовая плата PonyProg от FLYCONT, ИБП и адаптер микроконтроллеров PIC16F630/676/684/688 для PonyProg 2000
Для читателей, желающих самостоятельно изготовить адаптер для PIC16F630/676/684/688, чертежи его печатных плат в формате программы-редактора Sprint Layout 5 можно скачать с [7].
Адаптер для микроконтроллеров PIC16F630/676/684/688 можно упростить, если напряжение, поступающее на вывод 7 (7, 17) адаптера от БП через базовую плату, превышает 13 В. В этом случае нет необходимости в подключении батарейки 9 В (типа "Крона"), а значит можно не ставить разъем J2 и разъем переключаемой перемычки JP1 и запаять проволочную перемычку вместо JP1 для подачи напряжения программирования VPP на эмиттер ключа Q1 (см. схему рис. 1).
Изготовление адаптера PIC16F630/676/684/688 - это только часть работы. Дело в том, что программное обеспечение PonyProg не позволяет работать ни с одним из 14-выводных МК. Зато бесплатное ПО IC-Prog 1.6B и некоторые более ранние версии этой программы прекрасно работают с различными программаторами JDM, включая аппаратный контроллер PonyProg, и могут читать и программировать микроконтроллеры PIC16F630 и PIC16F676. Существует еще одно бесплатное ПО - WinPic800, его последняя версия V3.64 позволяет читать и программировать память всех четырех микроконтроллеров PIC16F630/676/684/688.
Скачать программу IC-Prog 1.6B можно с сайта разработчика [8] по ссылке [9]. Там же можно найти несколько более ранних версий этой программы. Если на вашем ПК используется операционная система (ОС) Windows NT/2000/XP, то нужно скачать и специальный драйвер по ссылке [10]. Для ОС Windows 95/98/SE/ME необходимости в установке драйвера нет.
Желательно также скачать русскоязычный файл помощи по ссылке [11].
Установить программу IC-Prog 1.6B достаточно просто. Для этого в любом удобном месте на жестком диске ПК необходимо создать папку с любым названием, в которую нужно распаковать архив icprog106B.zip. В этом архиве всего один файл icprog.exe. В эту же папку надо поместить файл помощи icprog.chm из архива icprogh_rus.zip. Если ПК работает под управлением Windows NT/2000/XP, то в эту же папку устанавливают драйвер icprog.sys. Для удобства запуска программы IC-Prog можно создать ярлык для icprog.exe и поместить его на рабочем столе. Программа установлена, осталось только ее настроить. Рассмотрим порядок настройки IC-Prog для Windows XP:
1. Правой кнопкой мыши щелкают по значку файла icprog.exe. В открывшемся окне выбирают пункт "Свойства", а затем выбирают вкладку "Совместимость" и устанавливают галочку в начале строки "Запустить программу в режиме совместимости с:". В активировавшемся окне выбирают "Windows 2000".
2. Запускают файл icprog.exe и в открывшемся англоязычном окне программы выбирают меню "Settings", затем - строку "Options" и в открывшемся окне - вкладку "Language", где устанавливают язык ("Russian") и щелкают кнопку "Ok". После чего программа выдаст запрос на перезагрузку ("You need to restart IC-Prog now"), с которым необходимо согласиться, нажав "Ok". Программа пере-загрузится и вновь открывшееся окно будет уже русскоязычным.
3. Открывают меню "Настройки", в котором выбирают строку "Опции", а затем вкладку "Программирование" (см. рис. 4), устанавливают галочку в строке "Проверка при программировании" и нажимают "Ok".
Рис. 4. Вкладка "Программирование" программы IC-Prog
4. Открывают меню "Настройки", в котором выбирают строку "Программатор". Откроется окно "Настройки Программатора" (рис. 5), в котором выбирают "JDM Programmer", порт, к которому подключен программатор, "Прямой доступ к портам", а в поле "Параметры сигналов" ставят галочку в строке "Инверсия Данных Вывода". Остальные строки не должны быть активированы (см. рис. 5).
Рис. 5. Окно "Настройки Программатора" программы IC-Prog
5. Для активации драйвера необходимо в меню "Настройки" выбрать строку "Опции", а затем вкладку "Общие", установить "галочку" на пункте "Вкл. NT/2000/XP драйвер" и нажать "Ok". Если драйвер ранее не был активирован, то откроется окно "Confirm", в котором следует нажать "Ok". После этого программа перезапустится, и драйвер будет активирован.
При использовании более ранних версий операционной системы Windows пункт 1 из приведенного перечня выполнять нет необходимости, а при использовании Windows 95/98/SE/ME не нужно выполнять и пункт 5.
Программа IC-Prog установлена, настроена и готова к работе.
Последняя и несколько предыдущих версий ПО программатора WinPic800 представлены на сайте [12], но, к сожалению, скачать ПО с этого сайта не всегда удается. В этом случае программу WinPic800 v 3.64 можно разыскать через какую-либо поисковую машину (например, Google) или скачать с сайта нашего журнала (см. ниже).
Скачанный архив WinPic800.zip содержит дистрибутив WinPic800_v3_64.exe, который можно запустить прямо из архива.
Запускают дистрибутив, в открывшемся окне установщика появится окно инсталляции с одним пунктом "Выбор языка установки" ("Choose a setup language"), в котором выбирают русский язык ("Russian") и щелкают мышкой по кнопке "Далее" ("Next"). Далее надо установить программу, следуя подсказкам установщика. По умолчанию программа устанавливается в папку C:Program FilesWinPic800. После установки следует запустить файл WinPic800.exe из этой папки. При этом, как правило, открывается русскоязычное окно программатора WinPic800 v3.64. Если же откроется англоязычное окно WinPic800 v3.64, то любой другой язык можно выбрать через меню "Language". При выборе русского языка может возникнуть проблема. Дело в том, что в большинстве случаев (но не всегда) ряд надписей кириллицей в этой программе будет отображаться нечитаемыми символами (см. рис. 6 и рис. 7).
Рис. 6. Нечитаемые символы в главном окне программы WinPic800
Рис. 7. Нечитаемые символы в окне "Чтение" программы WinPic800
Причиной этого является неудачный выбор кириллических шрифтов и кодовых страниц. Самый простой способ решения этой проблемы - использовать англоязычную версию программы. Автор русификации и украинизации этой программы Сергей Рюмик в статье [13] рекомендует бороться с этой проблемой изменением кодовых страниц. Выполняют это следующим образом:
1. Запускают редактор реестра: C:Windows egedit.exe.
2. Открывают в реестре папку HKEY_LOCAL_MACHINESYSTEM CurrentControlSetControlNls CodePage.
3. Перезаписывают значения трех кодовых страниц 1250, 1251, 1252 как "c_1251.nls" в соответствии с рис. 8.
4. Перезагружают компьютер, запускают WinPic800 и в меню "Language" выбирают русский язык ("Russian"). Программа должна воспроизводить кириллицу без проблем.
Рис. 8. Окно редактора реестра regedit.exe с открытой папкой кодовых страниц (CodePage)
Этот метод универсальный и подходит для всех версий программы WinPic800. Правда, автор статьи [13] утверждает, что он срабатывает в полной мере не на всех ОС и компьютерах. Если проблемы с отображением кириллицы не устранились, или вы опасаетесь по какой-либо причине переписывать реестр, то нужно использовать программы-русификаторы (специальные патчи, заплаты). Такую заплату для WinPic800 версии 3.61 от Сергея Рюмика можно скачать по ссылке [14]. Этот русификатор нежелательно использовать для более поздних версий этой программы. По просьбе постоянных участников форума [15] Владимир Ачи-лов (aka shaman) в конце 2009 г создал программу-русификатор для WinPic800 v3.64. Архив русификатора содержит файл WinPic800.exe и папку Languages, в которой находится всего один файл Russian.ini. Этими файлами надо заменить соответствующие файлы ранее установленной программы WinPic800 версии 3.64. С разрешения В. Ачилова мы разместили архив с разработанной им версией русификатора на сайте нашего журнала [16]. В этот же архив, для удобства наших читателей, мы вложили дистрибутив WinPic800_v3_64.exe.
Теперь мы готовы на 100% "прошить" микроконтроллер PIC16F676. Для этого в панельку изготовленного нами адаптера надо вставить PIC16F676 и подключить адаптер к базовой плате, а базовую плату - к ПК. Затем следует подать на программатор напряжение питания и запустить одну из рассмотренных выше программ. Для примера, запустим IC-Prog 1.6B. При этом откроется главное окно программы (рис. 9).
Рис. 9. Главное окно программы IC-Prog 1.6B
В окошке справа вверху этого окна следует выбрать тип программируемого контроллера (PIC16F676), а затем через меню "Файл" открыть HEX-файл программы, которую надо "записать" в контроллер. И наконец, в меню "Комманды" (именно так, с двумя "м", названо это меню) выбрать строку "Программировать Все" или нажать кнопку F5 клавиатуры. Программатор запросит согласие на запись, которое следует подтвердить. Далее программатор проверяет память МК, считывает биты калибровки и выводит окно "OSCAL". В этом окне сообщается значение битов калибровки генератора (в моем случае OSCAL = 3428h). В этом же окне программатор запрашивает: "Вы настаиваете на использовании Установок из файла (3FFFh)?". Если в устройстве будет использоваться внутренний генератор микроконтроллера, необходимо обязательно ответить "Нет", иначе биты калибровки вместе с командой их установки будут затерты, и записанная программа не будет запускаться. После программирования микроконтроллера произойдет верификация(сверка памяти МК с буфером программатора) и выйдет информационное окно с сообщением: "Успешно проверено!".
Подобным образом работает и программа WinPic800, в чем читатель может убедиться самостоятельно.
В заключение необходимо отметить, что программы IC-Prog 1.6B и WinPic800 v3.64 поддерживают не только МК PIC16F630/676/684/688, но и множество других микроконтроллеров, что значительно расширяет возможности аппаратного контроллера программатора PonyProg2000.
Литература и интернет-источники
1. http://www.jdm.homepage.dk/ - сайт разработчика программатора JDM (Jens Dyekjar Madsen).
2. http://www.lancos.com/ - сайт разработчика программатора PonyProg2000 Клаудио Ланконелли (Claudio Lanconelli).
3. Безверхний И. Программатор устройств с последовательным доступом PonyProg2000: описание программного обеспечения. "Ремонт & Сервис". 2005, № 9, с. 5458.
4. Безверхний И. Программатор устройств с последовательным доступом PonyProg2000. Аппаратный контроллер SI-Prog. "Ремонт & Сервис". 2005, № 10, с. 48-56.
5. http://www.flycont.com/ - html/pp2k.html.
6. Microchip. PIC16F630/676. Data Sheet. 14-Pin FLASH-Based 8-Bit CMOS Microcontrollers.
7. http://www.remserv.ru/cgi/down-load/Pony_16F676.rar
8. http://www.ic-prog.com/ - сайт программатора IC-Prog.
9. http://www.ic-prog.com/icprog106B.zip - адрес для скачивания ПО IC-Prog 1.6B.
10. http://www.ic-prog.com/icprog_driver.zip - адрес для скачивания драйвера IC-Prog для WINDOWS NT/2000/XP.
11. http://www.ic-prog.com/icprogh_rus.zip - адрес для скачивания русскоязычного файла помощи IC-Prog.
12. http://www.winpic800.com/ - сайт программатора WinPic800.
13. Рюмик С.М. С Интернета по нитке. Радиомир. 2007, № 7, с. 39.
14. http://www.ra-publish.com.ua/programs/Ra-04-2007-usb3.zip - адрес для скачивания русификатора WinPic800 v3.61.
15. http://www.pic.borda.ru/ - форум по микроконтроллерам PIC.
16. htto://www.remserv.ru/cgi/down-load/WinPic800_V3_64.rar.
Автор: Игорь Безверхний (Украина, г. Киев)
Источник: Ремонт и сервис