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.

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

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

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

<< Назад

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

Лабораторная модель прогнозирования землетрясений 30.11.2025

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

Музыка как естественный анальгетик 30.11.2025

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

Алкоголь может привести к слобоумию 29.11.2025

Проблема влияния алкоголя на стареющий мозг давно вызывает интерес как у врачей, так и у исследователей когнитивного старения. В последние годы стало очевидно, что границы "безопасного" употребления спиртного размываются, и новое крупное исследование, проведенное международной группой ученых, вновь указывает на это. Работы Оксфордского университета, выполненные совместно с исследователями из Йельского и Кембриджского университетов, показывают: даже небольшие дозы алкоголя способны ускорять когнитивный спад. Команда проанализировала данные более чем 500 тысяч участников из британского биобанка и американской Программы миллионов ветеранов. Дополнительно был выполнен метаанализ сорока пяти исследований, в общей сложности включавших сведения о 2,4 миллиона человек. Такой масштаб позволил оценить не только прямую связь между употреблением спиртного и развитием деменции, но и влияние генетической предрасположенности. Один из наиболее тревожных результатов касается людей с повышенным ге ...>>

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

Тягач Nikola One с электрическим приводом 01.12.2016

Американский стартап Nikola Motor вслед за прототипом электрического багги Nikola Zero продемонстрировал "тягач будущего" Nikola One, который может появиться на дорогах в 2020 году.

Грузовик будет оснащен полностью электрическим приводом с формулой 6 х 6. Это позволит реализовать систему гибкого управления тягой на каждом колесе для максимально эффективного движения в любых условиях.

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

Утверждается, что запас хода Nikola One составит почти 2000 км. С января 2018 года Nikola Motor планирует начать формирование в Соединенных Штатах сети водородных заправочных станций. Бортовая навигационная система грузовика сможет прокладывать маршрут с учетом пунктов дозаправки.

Ожидается, что мощность силовой установки грузовика превысит 1000 лошадиных сил. Крутящий момент заявлен на уровне 2700 Нм.

Водителю будет доступен большой сенсорный дисплей в стиле Tesla, отвечающий за все основные функции управления. Nikola Motor также планирует выпустить грузовик Nikola Two с укороченной кабиной и повышенной маневренностью.

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

▪ Пропитка против огня

▪ Игровой монитор ASUS VG278HV

▪ Дождь и телефоны

▪ Божьи коровки - прототипы для спасательных роботов

▪ Технология Transcend SuperMLC

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

 

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

▪ раздел сайта Основы первой медицинской помощи (ОПМП). Подборка статей

▪ статья Мы с тобой два берега у одной реки. Крылатое выражение

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

▪ статья Барвинок. Легенды, выращивание, способы применения

▪ статья Эхолот. Энциклопедия радиоэлектроники и электротехники

▪ статья Микроконтроллеры 8-битные с интерфейсом USB для LCD- и CRT-мониторов ST72774/ST72754/ST72734. Энциклопедия радиоэлектроники и электротехники

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

Имя:


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


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





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

www.diagram.com.ua

www.diagram.com.ua
2000-2025