Вставлю "3 копейки", которые
могут иметь отношение к работе с обсуждаемым здесь замечательным программатором (впрочем, и к работе с другими программаторами тоже). Вдруг кому пригодится...
Особенности использования некоторых универсальных программаторов микроконтроллеров.
Первый нюанс относится к использованию (преимущественно 40-выводных) ZIF панелей (далее - ZIF) в программаторах микроконтроллеров (МК).
Использование в программаторах ZIF, безусловно, оправдано. Они позволяют сэкономить место на плате, при этом цена и доступность хороших ZIF вполне сопоставимы с таковыми у набора качественных "цанговых" панелей, которые обычно распаивают на плате претендующего на "универсальность" программатора. При этом механический износ ZIF и программируемых с его помощью МК будет, как представляется, меньше.
Для примера приведу ниже две разводки ZIF, поддерживающие программирование многих МК семейства PIC. Первая - используется в обсуждаемом здесь "USB программаторе PIC микроконтроллеров", вторая - из популярного "Multi PIC Programmer 5 Ver.2".
Что общего у этих двух вариантов?
1) Позиционирование по отношению к 1-му выводу ZIF зависит от типа вставляемого в нее МК.
2) Напряжение "высоковольтного" программирования (Vpp) подается на разные группы выводов ZIF в зависимости от типа программируемого МК. Как осуществляется его коммутация - с помощью механического переключателя или с использованием разных программно управляемых линий питания, в данном случае не важно.
3) Очевидно, что незадействованные выводы МК также могут оказаться соединенными с одной из линий программирования (общая, питание, Vpp, data, clock). Это косвенно следует из п.1) и является платой за "универсальность" разводки ZIF.
Чем же различаются эти варианты? С точки зрения практического использования, только одним - если второй (нижний на рисунке) вариант имеет всего два положения позиционирования МК в ZIF (в зависимости от кол-ва выводов корпуса), то у первого варианта их гораздо больше. Проще пользоваться вторым вариантом. Здесь достаточно запомнить, что 1-й вывод всех 28- и 40- выводных МК вставляется в 1-й вывод ZIF, а у 8-20- выводных МК - 1-й вывод вставляется в 11-й вывод ZIF (эти положения отмечены треугольниками на рисунке). Все неподдерживаемые непосредственно МК - с использованием небольшого кол-ва переходников. А вот для первого варианта, скорее всего, прийдется держать под рукой схему позиционирования:
Это не очень удобно. Даже несмотря на то обстоятельство, что данный вариант позволяет программировать бОльшее кол-во типов МК без использования переходников.
Естественно, обе разводки ZIF можно использовать если не с любым, то со многими программаторами. В том числе и с готовыми, если изготовить по ним дополнительный переходник.
Однако практика использования ZIF в универсальных программаторах обнажает некоторые подводные камни. Так, например, при использовании простого программатора (успешно испытан с WinPIC, IC-Prog, WinPIC800), схему которого можно
найти в справке к популярной программе WinPIC (она же "DL4YHF's PIC Programmer for Windows"), выяснилось, что некоторые типы МК запрограммировать невозможно. Причем, независимо от используемого ПО. Если PIC16F84A прерасно программировался всеми вышеупомянутыми программами на различных компьютерах, включаю ноутбук с использованием USB to COM адаптера, то ни запрограммировать, ни "прочесть" PIC16F628A не удавалось. Потратив четыре дня на проверку монтажа и работоспособности программатора и не обнаружив никаких ошибок, я обнаружил причину. Все дело было в разводке ZIF (я использовал нижнюю разводку с первого рисунка). Изолировав неиспользуемые при программировании выводы PIC16F628A, я успешно программировал его в тех же тестовых конфигурациях, что и PIC16F84A. Злую шутку сыграло обстоятельство, упомянутое выше в п.3).
Безусловно, не факт, что именно с этим МК я бы имел такие проблемы, выполнив разводку ZIF по первой схеме (или еще какой-либо), однако нет гарантии, что я бы не столкнулся с той же проблемой при программировании МК другого типа. Из всего столь долго выше излагавшегося следует простая мораль:
если в Вашем программаторе используется ZIF для различных типов МК, и по необъяснимым причинам Вам не удается программировать некоторые из них, попытайтесь
ИЗОЛИРОВАТЬ НЕИСПОЛЬЗУЕМЫЕ ПРИ ПРОГРАММИРОВАНИИ ВЫВОДЫ!
Второй нюанс при использовании универсального программатора связан с величиной Vpp.
Не могу судить о "промышленных" программаторах, но на доступных для повторения схемах, возможность оперативного выбора Vpp попадается не часто. Если не сказать - отсутствует... В то же время, если верить
источнику, диапазон допустимого напряжения Vpp зависит от типа МК:
В большинстве программаторов Vpp является постоянным и, как правило, принимается равным 13 вольтам. Что совершенно правильно, т.к. именно эта величина является допустимой для
большинства МК PIC. Однако, заметьте - не для всех! Если верить тому же источнику, для PIC 18F2550, например, она должна быть не больше 12,5 В. Отсюда второй вывод:
предусматривайте в Вашем программаторе возможность выбора величины Vpp из двух значений - 12 и 13 вольт.
Спасибо за внимание!