Простой программатор PIC16x84 и PIC16F62x В сети встречается много схем простых программаторов, работающих от COM порта и не требующих дополнительного источника питания. Попробовав несколько вариантов, ни один из них назвать рабочим на сто процентов я не могу. Причин неудовлетворительной работы таких программатора несколько.
Во первых сигналы интерфейса RS232 плохо совместимы с TTL уровнями. Логическая "1" - это +12 вольт относительно GND интерфейса, а логический "0" это -12 вольт. Таким образом, TTL уровень нуля - сигнал меньше +2 вольт может интерпретироваться интерфейсом RS232 все равно как единица. Во вторых мощности COM порта может быть не достаточно для питания микроконтроллера.
Например программатор работает от COM порта мультикарты, а порт материнской платы его уже не тянет. В третьих во время программирования нет требуемой синхронизации ( видимо это связано с наличием у COM порта буферного регистра ). В результате после программирования исполняемый код может разместится в памяти програм микроконтроллера начиная не с нулевого адреса, а с любого другого. В итоге команды GOTO и CALL не работают.
Для некоторых программаторов (например для PIX) чтобы избежать этой ситуации предлогается замедлить работу компьютера, программно отключив на время кеш второго уровня. Но это не помогает.
Программаторы, использующие параллельный порт компьютера перечисленных недостатков лишены.
Конечно хотелось бы иметь программатор, который умеет делать все. Т.е. не только записывать данные в память программ, но и читать, редактировать и записывать память данных, дизассемблировать ... В тот момент, когда я начинал заниматься PICами найти такой программатор в сети не удалось ( наверное плохо искал ). Попробовал написать сам, вот, что из этого получилось
PIC программатор имеет удобный, настраеваемый интерфейс, работает под Windows 95 , Windows 98, Windows ME, Windows NT и Windows 2000, может программировать PIC16C84, PIC16F84, PIC16F84A, PIC16F627, PIC16F628, PIC12F629 и PIC12F675.
Предлогаемая программа позволяет делать следующее:
-читать и записывать данные в память программ микроконтроллера;
-читать, редактировать и записывать данные в память данных микроконтроллера;
-читать, редактировать и записывать данные в идентификатор микроконтроллера;
-читать, редактировать и записывать данные в слово конфигурации микроконтроллера;
-снимать защиту с микроконтроллера ( но не взламывать ).
-переводить в ассемблер данные, прочитанные из памяти программ микроконтроллера или ‘.hex’ файла.
Схему программатора представлена на рисунке выше.
Печатная плата со стороны проводников.
Печатная плата со стороны элементов.
Собранная конструкция будет выглядеть так: