Распродажа

Электронные компоненты со склада по низким ценам, подробнее >>>

Журнал Радио

2004: 
1, 2, 3, 4, 5, 6, 7, 8
2003: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
2002: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
2000: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
1999: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
1998: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
1971: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
1947: 
1, 2, 3, 4, 5
1946: 
1, 2, 3, 4-5, 6-7, 8-9

Новости электроники

В 14 раз выросло количество россиян на MediaTek Labs ? проекте по созданию устройств "интернета вещей" и "носимых гаджетов"

Сравнив статистику посещения сайта за два месяца (ноябрь и декабрь 2014 года), в MediaTek выяснили, что число посетителей ресурса из России увеличилось в 10 раз, а из Украины ? в 12. Таким образом, доля русскоговорящих разработчиков с аккаунтами на labs.mediatek.com превысила одну десятую от общего количества зарегистрированных на MediaTek Labs пользователей.

Новое поколение Джобсов или как MediaTek создал свой маленький "Кикстартер"

Амбициозная цель компании MediaTek - сформировать сообщество разработчиков гаджетов из специалистов по всему миру и помочь им реализовать свои идеи в готовые прототипы. Уже сейчас для этого есть все возможности, от мини-сообществ, в которых можно посмотреть чужие проекты до прямых контактов с настоящими производителями электроники. Начать проектировать гаджеты может любой талантливый разработчик - порог входа очень низкий.

Семинар и тренинг "ФеST-TIваль инноваций: MAXIMум решений!" (14-15.10.2013, Новосибирск)

Компания Компэл, приглашает вас принять участие в семинаре и тренинге ?ФеST-TIваль инноваций: MAXIMум решений!?, который пройдет 14 и 15 октября в Новосибирске.

Мне нравится

Комментарии

дима пишет в теме Параметры биполярных транзисторов серии КТ827:

люди куплю транзистар кт 827А 0688759652

тамара плохова пишет в теме Журнал Радио 9 номер 1971 год. :

как молоды мы были и как быстро пробежали годы кулотино самое счастливое мое время

Ивашка пишет в теме Параметры отечественных излучающих диодов ИК диапазона:

Светодиод - это диод который излучает свет. А если диод имеет ИК излучение, то это ИК диод, а не "ИК светодиод" и "Светодиод инфракрасный", как указано на сайте.

Владимир пишет в теме 2Т963А-2 (RUS) со склада в Москве. Транзистор биполярный отечественный:

Подскажите 2т963а-2 гарантийный срок

Владимир II пишет... пишет в теме Параметры биполярных транзисторов серии КТ372:

Спасибо!

Журнал Радио 2 номер 2004 год.

МИКРОПРОЦЕССОРНАЯ ТЕХНИКА

Программирование современных 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 В.

В "Настройке оборудования" указывают тип программатора — 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(перенос условный)

На данном этапе уже можно попробовать записать информацию в память программ. Для этого подойдет любой НЕХ-файл размером не более 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.
  2. <www.microchip.ru>

Редактор — В. Фролов,
графика — В. Фролов 

Вернуться к содержанию журнала "Радио" 2 номер 2004 год







Ваш комментарий к статье
Журнал Радио 2 номер 2004 год. :
Ваше имя:
Отзыв: Разрешено использование тэгов:
<b>жирный текст</b>
<i>курсив</i>
<a href="http://site.ru"> ссылка</a>