Menu Home

Бесплатная техническая библиотека для любителей и профессионалов Бесплатная техническая библиотека


Программирование современных PIC16, PIC12 на PonyProg. Энциклопедия радиоэлектроники и электротехники

Бесплатная техническая библиотека

Энциклопедия радиоэлектроники и электротехники / Микроконтроллеры

Комментарии к статье Комментарии к статье

Как известно, программатор PonyProg предназначен для программирования ограниченного числа типов микроконтроллеров PICmicro фирмы Microchip (PIC12C50x PIC16F8x, PIC16F87x). Однако с его помощью можно запрограммировать и другие, в том числе и новые микроконтроллеры серий PIC12, PIC16. О том, как это сделать, рассказывается в статье.

Многие радиолюбители строят свои конструкции на базе популярного PIC-контроллера PIC16F84 (PIC16F84A). Однако время не стоит на месте, и номенклатура выпускаемых микроконтроллеров (МК) PICmicro постоянно расширяется. Появились новые, более совершенные МК серий PIC16F и PIC12F (например, PIC12F629, PIC12F675, PIC16F628, PIC16F630, PIC16F676). Они содержат компаратор, способный работать с входным напряжением, близким к нулю, что при однополярном питании весьма заманчиво. Включенный в их состав 10-битный АЦП имеет точность не хуже, чем специализированные микросхемы, что, наряду с большими возможностями по обработке и отображению информации, позволяет создавать уникальные устройства с минимальным числом внешних элементов. Новые МК имеют память большего объема, дополнительные таймеры, универсальный порт связи и другие усовершенствования. При этом их стоимость значительно ниже, чем PIC16F84, a FLASH PIC16F630 дешевле PIC16C505 (оба в 14-выводных корпусах). Организация памяти PIC12Fx такая же, как у PIC16F84 (одна страница), что позволяет легко адаптировать программы, не требующие применения МК в многовыводных корпусах.

Если вы решились использовать в своих конструкциях новые МК, то прежде чем их изучать и писать программы, подумайте, на чем их программировать. Приобретение фирменного программатора при его стоимости, сопоставимой со стоимостью системного блока компьютера, для радиолюбителей почти нереально. Однако многие из них собрали программатор PONYPROG [1]. Разберемся, как можно использовать его для программирования новых МК.

Все МК программируют по трехпроводной шине. Для программирования необходимы сигналы Upp (перевод в режим программирования), CLK (синхронизация) и DAT (данные).

Любители, не имеющие программатора, могут воспользоваться простейшим устройством, собранным по схеме на рис. 1. Его подключают к СОМ порту ПК, для питания МК используют отдельный источник с выходным напряжением 5 В.

Программирование современных PIC16, PIC12 на PonyProg
(нажмите для увеличения)

В "Настройке оборудования" указывают тип программатора - JDM API. Выводы подключают в соответствии с таблицей. Программирование можно произвести непосредственно в готовом устройстве, используя его источник питания (необходимо лишь устранить шунтирование выводов программирования МК элементами изделия). Напряжение питания при программировании должно быть в пределах 4,5...5,5 В (при необходимости подбирают стабилитрон VD1).

Из таблицы видно, что назначение используемых при программировании выводов PIC16F84 и PIC16F628 одинаково, поэтому их можно программировать в одной розетке программатора. Для других микросхем придется установить дополнительные розетки, подключенные к адаптеру в соответствии с таблицей. Более подробную информацию о PIC-контроллерах можно найти на сайте [2].

Дальнейшие пояснения даны на примере PIC16F628, так как он не требует аппаратной доработки программатора PonyProg и более других доступен в магазинах.

Как отмечалось, все МК PICmicro программируются по трем проводам (точнее по двум). Протокол (команды) программирования тоже одинаковый.

Память программ начинается с адреса 0000, а заканчивается в зависимости от ее объема в конкретном типе микросхемы. Это означает, что, выбрав из списка PonyProg подходящий по этому параметру МК, можно записать нужную программу. В нашем случае подходит PIC16F871. Следует учитывать, что в нижней строке окна PonyProg указан объем памяти в байтах, а в технических характеристиках МК обычно приводится число слов (14 бит). Иными словами, программатор показывает больший объем. У PIC16F871 и PIC16F628 объем памяти - 2048 слов. Дополнительно это можно проверить в файле .Ikr соответствующего МК (находится в папке установки MPLAB), прочитав его с помощью стандартной программы "Блокнот". Адрес памяти программ указан так:

CODEPAGE NAME=vectors START=0x0 END=0x4 PROTECTED (переносы условные) CODEPAGE NAME=page START=0x5 END=0x7FF(перенос условный)

Программирование современных PIC16, PIC12 на PonyProg

На данном этапе уже можно попробовать записать информацию в память программ. Для этого подойдет любой НЕХ-файл размером не более 2048 слов. Запустив обслуживающую программу, присоедините устройство к порту компьютера, вставьте МК в соответствующую розетку, затем включите питание программатора. Выберите в меню PIC16F871, загрузите выбранный НЕХ-файл и нажмите кнопку "Записать память программ (FLASH)". Появится сообщение об ошибке, извещающее о проблемах с МК и содержащее три кнопки (рис. 2): "Abort" (прервать), "Retry" (повторить), "Ignore" (игнорировать). Нажмите последнюю ("Ignore"), и начнется процесс программирования. По его завершении должно появиться сообщение об успешной записи. Если программатор выдал "Ошибку записи", проверьте содержимое памяти программ, считав его соответствующей командой. Наличие ошибок свидетельствует о том, что, возможно, программатор работает слишком быстро (такое случается, если на компьютере установлена ОС WINDOWS ХР; с WINDOWS 98 программа работает медленнее и пишет надежнее). Причиной могут быть также помехи (при слишком длинных соединительных проводах), а в редких случаях - и антивирусные и другие фоновые программы. Если же запись отсутствует полностью, то неисправна аппаратная часть программатора или неверно настроена программа (в меню).

Следующий, самый важный этап - запись слова конфигурации. Его адрес также можно посмотреть в файле .Ikr соответствующего МК. Строка в файле выглядит так:

CODEPAGE NAME=.config START=0x2007 END=0x2007 PROTECTED (переносы условные).

Слово конфигурации располагается по адресу 0x2007. В нашем случае PIC16F871 и PIC16F628 имеют адреса 2007, т. е. подходят для подмены (следует отметить, что слово конфигурации у всех PIC16 и PIC12F расположено именно по этому адресу). Устанавливать биты конфигурации непосредственно в программаторе нежелательно, так как их обозначение на панели программатора для PIC16F628 и PIC16F871 разное и возможны ошибки, а некоторые биты затенены и не могут быть установлены напрямую. Записать конфигурацию МК лучше при составлении программы. Для MPLAB эти строки могут выглядеть примерно так:

in lude p16f628.inc> list p=16f628 _config H'0242"

Значение '0242' составляется в соответствии с назначением каждого бита в слове конфигурации и в вашем конкретном случае может быть другим. Подробное описание всех бит можно найти на сайте [2].

Сокращенные обозначения бит конфигурации содержатся в файле .INC соответствующего МК в папке установки MPLAB. Примерный вид:

BODEN ON EQU H'3FFF'

BODEN OFF EQU H'3FBF'

CP ALL EQU H'03FF'

CP 75 EQU H'17FF'

CP 50 EQU H'2BFF'

CP OFF EQU H'3FFF'

DATA CP ON EQU H'3EFF'

DATA CP OFF EQU H'3FFF'

PWRTE OFF EQU H'3FFF'

PWRTE ON EQU H'3FF7'

WDT ON EQU H'3FFF'

WDT OFF EQU H'3FFB'

LVP ON EQU H'3FFF'

LVP OFF EQU H'3F7F'

MCLRE ON EQU H'3FFF'

MCLRE OFF EQU H'3FDF'

ER OSC CLKOUT EQU H'3FFF'

ER OSC NOCLKOUT EQU H'3FFE'

INTRC OSC CLKOUT EQU H'3FFD'

INTRC OSC NOCLKOUT EQU H'3FFC

EXTCLK OSC EQU H'3FEF'

LP OSC EQU H'3FEC

XT OSC EQU H'3FED'

HS OSC EQU H'3FEE'

С использованием этих обозначений строка записи может выглядеть так:

__config CP_ALL & WDT OFF & BODEN ON & _PWRTE_ON & _HSJ3SC &_LVP OFF ; (переносы условные).

Таким образом вы сможете написать слово конфигурации для любого МК, используя его файл .INC. Это удобно при адаптации готовой программы, например, в случае замены PIC16F627 более дешевым PIC16F627A. При включении конфигурации в текст программы она войдет в НЕХ-файл, установятся и затененные биты. После того как вы ввели в программатор слово конфигурации, считав НЕХ-файл содержащей его программы, запись выполняется обычным образом, вводом соответствующей команды. Аналогично его можно и считать из МК. Убедиться, что конфигурация записана, можно либо очистив после записи панель программирования конфигурации программатора, а затем считав конфигурацию из МК, либо считав память программ из защищенной от считывания микросхемы: до записи конфигурации она читается, а после записи - нет (если установлена защита), при этом конфигурация читается и в защищенной микросхеме.

Устанавливать биты защиты без особой необходимости не рекомендуется. Дело в том, что некоторые МК имеют отличающиеся команды стирания, и вы не сможете их перепрограммировать, так как на PonyProg биты защиты не сотрутся. Однако при записи в незащищенную микросхему поверх имеющейся в ней "прошивки" записываемый код сотрет предыдущую информацию и необходимости в стирании не возникнет. Впрочем, это не относится к PIC16F627, PIC16F628, информацию в них можно защищать без опасений.

Запись данных в EEPROM производится обычным способом, так как данные в МК PIC16F и PIC12F размещаются с адреса 2100п. Посмотреть это можно также в файле .Ikr. Примерный вид строки:

CODEPAGE NAME=eedata START=0x2100 END=0x217F PROTECTED (переносы условные).

Разное у PIC-контроллеров - лишь окончание области данных (из-за разного объема): у PIC16F628 - 128, у PIC16F871 - 64 байт, но если необходимый вам для работы объем не превышает объема EEPROM выбранной микросхемы подмены (у PIC16F871 - 64 байт), то можно программировать, не переключая типа МК в меню: избыточная память PIC16F628 просто не будет использована. Если необходимо записать больший объем, то следует в меню программатора заменить тип МК имеющим аналогичный с PIC16F628 объем памяти (в нашем случае - это PIC16F874 с EEPROM 128 байт) и произвести запись обычным способом. Заменять тип МК в меню можно на любом этапе программирования.

Следует отметить, что хотя PIC16F874 имеет память программ в два раза больший, чем PIC16F628, записать информацию в нее можно, установив в меню PIC16F874 и даже PIC16F877 (16К), однако при проверке записи программатор выдаст сообщение об ошибке. Дело в том, что при считывании нереализованной в PIC16F628 части памяти МК выдаст информацию, записанную в нижних адресах (старшие биты адреса игнорируются), т. е. память программ будет считана дважды (в PIC16F877 - четыре раза). Иными словами, это не ошибка в программе, а повторное считывание памяти, программа записывается нормально.

Литература

  1. Долгий А. Разработка и отладка устройств на МК. - Радио, 2001, № 6, с. 24-26: № 7, с. 19-21.

Автор: А.Сизов, г.Иваново

Смотрите другие статьи раздела Микроконтроллеры.

Читайте и пишите полезные комментарии к этой статье.

<< Назад

Последние новости науки и техники, новинки электроники:

Чувства кота, ожидаюшего возвращения хозяина 16.07.2026

Многие владельцы кошек уверены, что их питомцы совершенно равнодушны к уходу человека из дома. Считается, что кошки - независимые существа, которые спокойно переносят одиночество и даже радуются, оставаясь одни. Однако испанские специалисты по поведению животных считают, что реальность гораздо сложнее. Реакция кошки на отсутствие хозяина зависит от ее индивидуального характера, степени привязанности к человеку и привычного распорядка дня. Кошки хорошо запоминают ежедневные ритуалы своих владельцев. Они способны связывать определенные звуки - звон ключей, шаги у двери или звук закрывающегося замка - с предстоящим уходом человека. Для одних животных эти сигналы означают возможность спокойно лечь спать, а для других становятся причиной беспокойства и длительного ожидания возвращения хозяина. Таким образом, кошка не просто "не замечает" уход, а активно реагирует на связанные с ним изменения в окружающей обстановке. Исследования поведения кошек показывают, что некоторые из них действи ...>>

Целесообразность приема пробиотиков после курса антибиотиков 16.07.2026

Антибиотики остаются одним из самых мощных инструментов современной медицины в борьбе с бактериальными инфекциями. Однако их действие не ограничивается уничтожением только вредных микроорганизмов. Эти препараты способны существенно влиять на состав кишечной микрофлоры, что часто вызывает вопросы у пациентов: насколько серьезны эти изменения, как долго они сохраняются и нужно ли после курса антибиотиков принимать пробиотики для восстановления. На эти вопросы попытались ответить исследователи, проанализировав имеющиеся научные данные. Во время приема антибиотиков многие люди сталкиваются с неприятными симптомами со стороны пищеварительной системы: тошнотой, болями или спазмами в животе, а также диареей. Такие реакции возникают потому, что препараты воздействуют не только на возбудителей инфекции, но и на полезные бактерии, которые населяют кишечник и участвуют в пищеварении, синтезе витаминов и поддержании иммунитета. Некоторые антибиотики, например азитромицин, могут напрямую влия ...>>

Резкое похудение и возврат веса могут навредить сердцу 15.07.2026

Многие люди, желая быстро избавиться от лишних килограммов, прибегают к строгим диетам с резким ограничением калорий. Достигнув желаемого результата, они часто постепенно или быстро возвращаются к прежнему рациону и прежнему весу. На первый взгляд это кажется лишь вопросом внешнего вида, однако ученые предупреждают: постоянные колебания массы тела могут оказывать негативное влияние на сердечно-сосудистую систему и обмен веществ. Так называемый эффект йо-йо, когда периоды активного похудения сменяются повторным набором веса, становится все более распространенным явлением. Новые исследования указывают на возможную связь между такими циклами и ухудшением работы сердца. Организм способен адаптироваться к изменениям питания, но постоянное повторение резких переходов между ограничением калорий и перееданием создает дополнительную нагрузку на различные системы. В одном из экспериментов на лабораторных животных исследователи моделировали эффект йо-йо, периодически снижая калорийность рац ...>>

Случайная новость из Архива

Микросхема TCPP01-M12 для защиты линий USB type-C 01.12.2019

Компания STMicroelectronics представила новую микросхему - TCPP01-M12. Она имеет защиту от перенапряжения по линии питания VBUS до 22 В с использованием внешнего N-канального MOSFET, защиту по линиям конфигурации канала (CC), а так же ESD-защиту четвертого уровня в соответствии со стандартом IEC61000-4-2. В TCPP01-M12 организована защита от перенапряжения при коротком замыкании между VBUS и линиями CC, которое может возникнуть при подключении или извлечении кабеля.

Также в TCPP01-M12 встроена логика управления питанием устройства с разряженным аккумулятором, в соответствии со спецификацией USB PD. В случае, когда микросхема устанавливается на Sink-устройстве (приемнике), ее питание может осуществляться от выводов GPIO 3.3 В микроконтроллера. В этом случае, в режиме "отключенного кабеля", микросхема отключается. Данный режим позволяет продлить жизнь аккумулятора.

TCCP01-M12 также может изменять режимы питания в соответствии со спецификацией USB Power Delivery.

Ключевые особенности:

поддержка до 22 В по линии VBUS с защитой от перенапряжения;
защита линий конфигурации канала (СС) от короткого замыкания с VBUS;
ESD-защита;
встроенный индикатор разряженной батареи в соответствии с протоколом USB PD.
корпус QFN12 3х3 мм.

Другие интересные новости:

▪ Накопитель GALAX Gamer 240-M.2 PCI-E 2280

▪ Суфлер излечивает заикание

▪ Искусственные органические нейроны

▪ Экосистема 802.11ac анонсирована

▪ Датчик давления Infineon DPS422

Лента новостей науки и техники, новинок электроники

 

Интересные материалы Бесплатной технической библиотеки:

▪ раздел сайта Альтернативные источники энергии. Подборка статей

▪ статья Смертный грех. Крылатое выражение

▪ статья Какой немой фильм чешские зрители озвучивали сами во время просмотра? Подробный ответ

▪ статья Требования к системе управления охраной труда

▪ статья Цифровой синтезатор звуковых эффектов сирены. Энциклопедия радиоэлектроники и электротехники

▪ статья Чтение мыслей. Секрет фокуса

Оставьте свой комментарий к этой статье:

Имя:


E-mail (не обязательно):


Комментарий:





Главная страница | Библиотека | Статьи | Карта сайта | Отзывы о сайте

www.diagram.com.ua

www.diagram.com.ua
2000-2026