www.diagram.com.ua
www.diagram.com.ua
Русский: Русская версия English: English version
Translate it!
Поиск по сайту

+ Поиск по журналам
+ Поиск по статьям сайта
+ Поиск по схемам СССР
+ Поиск по Библиотеке

Бесплатная техническая библиотека:
Все статьи А-Я
Энциклопедия радиоэлектроники и электротехники
Новости науки и техники
Журналы, книги, сборники
Архив статей и поиск
Схемы, сервис-мануалы
Электронные справочники
Инструкции по эксплуатации
Голосования
Ваши истории из жизни
На досуге
Случайные статьи
Отзывы о сайте

Справочник:
Большая энциклопедия для детей и взрослых
Биографии великих ученых
Важнейшие научные открытия
Детская научная лаборатория
Должностные инструкции
Домашняя мастерская
Жизнь замечательных физиков
Заводские технологии на дому
Загадки, ребусы, вопросы с подвохом
Инструменты и механизмы для сельского хозяйства
Искусство аудио
Искусство видео
История техники, технологии, предметов вокруг нас
И тут появился изобретатель (ТРИЗ)
Конспекты лекций, шпаргалки
Крылатые слова, фразеологизмы
Личный транспорт: наземный, водный, воздушный
Любителям путешествовать - советы туристу
Моделирование
Нормативная документация по охране труда
Опыты по физике
Опыты по химии
Основы безопасной жизнедеятельности (ОБЖД)
Основы первой медицинской помощи (ОПМП)
Охрана труда
Радиоэлектроника и электротехника
Строителю, домашнему мастеру
Типовые инструкции по охране труда (ТОИ)
Чудеса природы
Шпионские штучки
Электрик в доме
Эффектные фокусы и их разгадки

Техническая документация:
Схемы и сервис-мануалы
Книги, журналы, сборники
Справочники
Параметры радиодеталей
Прошивки
Инструкции по эксплуатации
Энциклопедия радиоэлектроники и электротехники

Бесплатный архив статей
(150000 статей в Архиве)

Алфавитный указатель статей в книгах и журналах

Бонусы:
Ваши истории
Загадки для взрослых и детей
Знаете ли Вы, что...
Зрительные иллюзии
Веселые задачки
Каталог Вивасан
Палиндромы
Сборка кубика Рубика
Форумы
Карта сайта

ДИАГРАММА
© 2000-2019

Дизайн и поддержка:
Александр Кузнецов

Техническое обеспечение:
Михаил Булах

Программирование:
Данил Мончукин

Маркетинг:
Татьяна Анастасьева

Перевод:
Наталья Кузнецова

Контакты

При использовании материалов сайта обязательна ссылка на http://www.diagram.com.ua

сделано в Украине
сделано в Украине

Диаграмма. Бесплатная техническая библиотека

Бесплатная техническая библиотека Бесплатная техническая библиотека, Энциклопедия радиоэлектроники и электротехники

Программирование современных 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.
Автор: А.Сизов, г.Иваново

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

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

Рекомендуем скачать в нашей Бесплатной технической библиотеке:

раздел сайта Заземление и зануление

журналы ЮТ для умелых рук (годовые архивы)

книга Электромагнитные реле тока и напряжения РТ и РН. Жданов Л.С., Овчинников В.В., 1981

книга Инверсное включение транзистора. Бочаров Л.Н., 1975

статья Какое число у китайцев и японцев играет такую же роль, как и число 13 у европейцев и американцев?

статья Старый режим

справочник Зарубежные микросхемы и транзисторы. Серия 6

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

Имя:


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


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

[lol][;)][roll][oops][cry][up][down][!][?]




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