Проекты : Программаторы и отладочные платы


Тимофей Носов     

Низковольтное программирование LVP из PicKit2

Цель данной статьи – показать, как внутрисхемно прошивать микроконтроллер (далее МК) в режиме низковольтного программирования с использованием PicKit2. Показаны схемы включения и особенности работы в программе PICkit 2 Programmer v2.61 .

 

Традиционно для прошивания к микроконтроллеру подключают 5 линий:

 

 

Vpp – напряжения программирования (обычно на уровне +13 вольт);

Vdd – напряжение питания +5 вольт;

Vss – общая линия (минус питания);

PGD – "программинг дата" или данные;

PGC – " программинг клок" или тактирование.

Аналогичные линии наблюдаем и на микроконтроллере.

 

 

Всё бы хорошо, если бы в один прекрасный момент не потребовалась сделать устройство с микроконтроллером в корпусе SOIC (или вовсе по идеологии микроконтроллер припаян к плате в любом корпусе).

 

Первое, при разводке платы для любых случаев надо организовать работу вывода MCLR (мастер-клир или сброс). Это важный момент, т.к. именно на этой линии присутствует функция Vpp – т.е. подачи высокого напряжения, которое переводит МК в режим программирования (прошивания). Смотрим схемы:

 

Случай, когда организация MCLR не требуется. Банально отключается в битах конфигурации и линия вовсе может использоваться на вход. Строго говоря, MCLR всё равно присутствует в неявном виде в МК. Присутствует в PIC16F627, PIC16F628, PIC16F627А, PIC16F628А, PIC16F648А. В данном случае всё просто, легко организовать высоковольтное программирование при условии, что по линии Vdd схема потребляет не больше, чем может дать программатор и USB . Либо Vdd отключаем от схемы в момент программирования.

Случай организации MCLR путем объединения с плюсовой линией питания. И никак иначе. Для работы МК требуется сформировать высокий уровень после подачи питания. Для программирования однозначно требуется перемычка, чтобы Vpp отключить от Vdd на время высоковольтного программирования. Требования к питанию по Vdd как и предыдущем случае.

PIC16F77, PIC16F873, PIC16F874, PIC16F876, PIC16F877 (и они же с индексом А).

В данном случае Vpp отделяем от Vdd диодом. Одновременно на MCLR в рабочем режиме обеспечивается потенциал высокого уровня. В отдельных случаях решение может быть оправданным. Лично мне не нравится распиновка для такого решения, где 1 вывод MCLR/Vpp , а 20 вывод Vdd (очень неудобно разводить в одном слое). Нам же документация навяливает еще более неудобное включение см. включение из документации к PicKit2.

 

И, наконец, случай, когда используется низковольтное LVP программирование (линия Vpp вовсе не нужна). Для режима LVP задействуется вывод PGM (настраивается на выход и в режиме LVP не может использоваться как цифровая линия). Не будет секретом, что МК с завода выпускаются с включенным режимом LVP, который может быть переключен в HVP только при высоковольтном программировании (т.е. случайно это сделать не получится). Для перевода МК в режим программирования на PGM нужно установить высокий уровень (для рабочего режима и подтягиваем PGM к минусу). Далее рассмотрим подключение МК к PicKit2 и недокументированную греблю граблями.

 

Будем считать, что к этому моменту у вас сделаны следующие подключения микроконтроллера к PicKit2:

 общая линия Vss (до сих пор не знаю, нужно ли все Vss на МК к земле подключать или достаточно одну из Vss; кто может сослаться на официальный источник – дайте знать);

– линия PGC;

 линия PGD;

– линию PGM подключить к Auxiliary (как посоветовал Help-ReadMe).

– линию Vdd не будем подключать к программатору, будем использовать питание в самом устройстве.
Таким образом, нам достаточно четыре провода для прошивания.

 

Теперь рассмотрим работу в оболочке PICkit 2 Programmer v2.61 (из MPLAB не получилось в режиме LVP соединиться с МК).
К этому моменту устройство соединено 4мя проводами, питание на устройство подано, запускаем PICkit 2
Programmer v2.61.
И тишина – в автомате PICkit2 не видит МК; одно радует, что не ругается.

 

Ставим ручной выборменю Programmer – Manual Device Select (ставим галочку).

 

 

Для моего микроконтроллера (PIC16F876A) не лишним будет клацнуть Device FamilyMidrangeStandard.

 

 

В выпадающем списке выбираем наш МК

 

 

Выбрали. Так и хочется нажать кнопку Read и проверить жизнеспособность. Нажимаем.
Наблюдаем грустную надпись "
No device detected".

 

 

И только после этого в меню Tools становится активным пункт Use LVP Program Entry на которым мы ставим галочку. Ок. Поставили.

 

 

После этого в главном окне мы наблюдаем несколько бодрых сообщений.

 

 

Всё, теперь можно читать и шить, в том числе шить с защитой (CP/CPD).

 

 

Полезные ссылки:
Попробуй сделать печатную плату на кухне
Узнай как прошить микроконтроллер прошивкой
Научись программировать и делать прошивки
Задай вопрос или найди ответ в форуме


Назад

Просмотров: 57786

 








 
 
 

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