Когда я только начинал
заниматься разработкой
устройств на микроконтроллерах фирмы Microchip, мне часто приходилось
собирать их стандартную обвязку: цепь сброса микроконтроллера MCLR,
цепь питания, цепь подключения внешнего кварцевого резонатора или RC –
цепочки. Иногда нужно было связать микроконтроллер с компьютером
– приходилось
делать преобразователь уровней RS-232 – TTL. И
все это приходилось собирать при разработке каждого нового устройства
заново.
Перед тем как начать писать основную программу, приходится писать
тестовую,
предназначенную для проверки работоспособности микроконтроллера на
собранной
макетной плате, чтобы быть уверенным в том, что микроконтроллер
исправен и
правильно работает только что собранная основная часть схемы.
Для отладки
микроконтроллеров наиболее часто
используются следующие типы макетных плат:
·
Универсальная
макетная плата сделанная на основе фольгированого гетинакса или
стеклотекстолита – она предназначена для отладки любых
радиоэлектронных
устройств. Довольно универсальная плата, но вместе с тем она обладает
рядом
существенных недостатков: цена – самая дешевая стоит не
меньше 100 руб. –
возможно кого-то эта цена устраивает, но я считаю что эти деньги можно
использовать более продуктивно, хотя это мое личное мнение; очень часто
при
длительном использовании отваливаются проводники – в
следствии перегрева паяльником
или от времени; разводка проводников не всегда оптимальна и часто
вносит
дополнительные помехи в работу устройства; для соединения между собой
элементов
используется пайка. Я считаю что оптимальное ее использование
– сборка
отлаженных устройств, которые настроены, но нет времени или желания
разрабатывать печатную плату.
·
Наиболее
распространенные макетные платы фирмы WISHER – позволяют
производить
быстрый монтаж довольно сложных устройств используя проволочные
перемычки
(джамперы). Комплект поставки включает в себя клемники для подачи
питания на
плату и проволочные перемычки. Довольно хорошее решение, но и ему
присущи
недостатки: цена – например самая простая макетная плата WB-102+J стоит
190 руб., более оптимальная для макетирования несложных устройств WB-104-3+J стоит
380 руб. по прайсу фирмы «Платан»;
низкая надежность контактов – особенно это проявляется после
того как пытаешься
получить контакт в гнезде в котором до этого побывал относительно
толстый
проводник (например от сопротивления МЛТ-2); присутствует паразитная
емкость
между параллельными рядами контактов.
·
Разработки
радиолюбителей – [1]
– интересная разработка для PIC16F877, но она предназначена
скорее для изучения этого микроконтроллера, чем для разработки своих
конструкций, т.к. выводы микроконтроллера жестко распределены для
выполнения
определенных функций: индикация, ввод/вывод данных, звуковая индикация
и т.п..
Вторая конструкция [2]
– предназначена для изучения PIC16F84, обладает тем
же
недостатком, что и первая конструкция, но для первоначального освоения
этих
микроконтроллеров они очень хорошо подходят.
·
Интересные
макетные платы представлены на сайте
«Мега-Электроника» [3]
– PIC-IO, PIC-MT, PIC-PG4D-628.
Дополнительной информации по их устройству автору не удалось получить.
Могу только
сказать, что цена их высока – начинается от 702 руб. за PIC-PG4D-628 и
заканчивая 1091 руб. за PIC-MT.
·
Простые
макетные платы представлены на сайте [4]
для микроконтроллеров PIC16F84, PIC16F873, PIC16F874.
Цена от 16$ до 20$. Содержат стабилизатор на 5 В, кварцевый резонатор,
разъемы
для подключения к портам, цепи сброса. Основной минус, а может быть и
плюс –
это их простота.
·
Робототехнический
сайт «Железный Феликс» [5] -
представлена интересная система SimmStick
– макетная плата состоит из кросс платы от старых разъемов
для установки
модулей памяти типа SIMM. На них подано питание,
сигналы от периферийных
разъемов. Схема собирается
на отдельной
макетной плате в виде SIMM модуля и
вставляется в
разъем SIMM. Основные недостатки
– маленькая плата для макетирования,
необходимость применять паяльник для сборки.
После анализа элементов,
необходимых для работы
микропроцессора, макетная плата должна обладать следующими элементами:
·
схема
формирования напряжения питания + 5 В;
·
цепь
сброса MCLR и обязательно кнопка сброса;
·
цепь
подключения резонатора;
·
схема
связи с компьютером при помощи RS-232;
·
цепь
подтягивания портов к + 5 В или земле;
·
внутрисхемное
программирование на плате (т.е. без извлечения микропроцессора из
платы, что
значительно повышает ресурс панельки для установки микросхемы);
·
наличие
разъемов и одиночных разъемных соединителей для подключения к портам;
·
простота
реализации и настройки.
Проанализируем расположение выводов распространенных микропроцессоров серии PIC16F62x и PIC16F84, как наиболее часто применяемых в радиолюбительской практике, и представим их в виде таблицы 1.
№ вывода
DIP |
PIC16F62x |
PIC16F84 |
Описание
вывода |
1 |
RA2/AN2/Vref1 |
RA2 |
Двунаправленная
линия ввода/вывода (в PIC16F62x аналоговый вход
компаратора, выход источника опорного напряжения) |
2 |
RA3/AN3/CPM1 |
RA3 |
Двунаправленная
линия ввода/вывода (в PIC16F62x аналоговый вход
компаратора, выход компаратора) |
3 |
RA4/TOCKI/CPM2 |
RA4/RTCC |
Двунаправленная
линия ввода/вывода (в PIC16F62x может использоваться как TOCKI, выход компаратора) |
4 |
RA5/-MCLR/THV |
-MCLR |
Сигнал сброса
микроконтроллера (в PIC16F62x вход напряжения
программирования, вход цифрового сигнала) |
5 |
GND |
GND |
Общий провод |
6 |
RB0/INT |
RB0 |
Двунаправленная линия порта
ввода/вывода, вход внешнего прерывания |
7 |
RB1/RX/DT |
RB1 |
Двунаправленная линия порта
ввода/вывода, (в PIC16F62x вход
приемника USART, линия данных в синхронном
режиме) |
8 |
RB2/TX/CK |
RB2 |
Двунаправленная линия порта
ввода/вывода, (в PIC16F62x выход
передатчика USART, линия тактового сигнала в
синхронном режиме) |
9 |
RB3/CCP1 |
RB3 |
Двунаправленная линия порта
ввода/вывода, (в PIC16F62x вывод модуля ССР) |
10 |
RB4/PGM |
RB4 |
Двунаправленная линия порта
ввода/вывода, (в PIC16F62x вход для низковольтного
программирования) |
11 |
RB5 |
RB5 |
Двунаправленная линия порта
ввода/вывода |
12 |
RB6/T1OSO/T1CKI |
RB6 |
Двунаправленная линия порта
ввода/вывода (в PIC16F62x выход генератора таймера 1,
вход синхронизации при программировании) |
13 |
RB7/T1OSI |
RB7 |
Двунаправленная линия порта
ввода/вывода (в PIC16F62x вход генератора таймера 1,
вход/выход данных при программировании) |
14 |
VDD |
VDD |
Питание микроконтроллера |
15 |
RA6/OSC2/CLKOUT |
OSC2/CLKOUT |
Выход генератора для
подключения кварцевого резонатора (в PIC16F62x двунаправленная линия
ввода/вывода) |
16 |
RA7/OSC1/CLKIN |
OSC1/CLKIN |
Вход генератора для
подключения кварцевого резонатора (в PIC16F62x двунаправленная линия
ввода/вывода) |
17 |
RA0/AN0 |
RA0 |
Двунаправленная линия порта
ввода/вывода (в PIC16F62x аналоговый вход компаратора) |
18 |
RA1/AN1 |
RA1 |
Двунаправленная линия порта
ввода/вывода (в PIC16F62x аналоговый вход компаратора) |
Раскладка выводов у этих
двух типов микропроцессоров
одинакова, отличие заключается только в том, что PIC16F62x более насыщен
функциональными возможностями: наличие USART, несколько типов тактовых
генераторов, модуль аналоговых компараторов, 3 таймера, модуль
захват/сравнение/ШИМ. Таким образом при разработке макетной платы нужно
ориентироваться на микропроцессоры семейства PIC16F62x.
Определимся с имеющимися
портами:
·
RA0 – RA4 -
сделаем возможность подключения вывода порта к + 5 В или к
общему проводу.
·
RA5 – RA7 – просто отводы,
они будет
использоваться при специальном конфигурировании микропроцессора, у PIC16F84 эти
выводы используются по прямому назначению, т.е. они не могут быть
портами
ввода/вывода.
·
RB0 – RB7 - сделаем
возможность подключения вывода
порта к + 5 В или к общему проводу, кроме этого выводы RB1 и RB2 через джампер
подключим к
преобразователю уровней RS-232 – TTL.
Принципиальная электрическая
схема представлена на
рис. 1.
Питание на макетную плату
можно подавать двумя способами: если
имеется
стабилизированный источник + 5 В, то питание подается на вторую сверху
клемму
(джампер J1 не должен быть подключен,
это исключает
возможность повреждения схемы от неправильной подачи питания), в этом
случае не
используется стабилизатор на + 5 В; второй способ – если
имеется
нестабилизированный источник постоянного тока от 10 до 20 В, в этом
случае +
источника подается на первую сверху клемму, далее он стабилизируется
микросхемой
D2 типа 7805 или аналогичной,
если есть необходимость подавать + 5 В на
внешнюю схему, то необходимо установить джампер J1. Обвязка микроконтроллера D3
стандартная, согласно документации фирмы Microchip DS40300b,
сопротивление R7 должно быть меньше 40 кОм,
емкость конденсатора С9
0,1 мкф. Джампер J4 включает схему сброса,
когда вывод 4 MCLR
сконфигурирован как цепь сброса, если этот джампер не установлен, то
этот вывод
можно использовать как цифровой порт ввода/вывода. При внутрисхемном
программировании (ICSP) этот джампер не должен
быть установлен, чтобы не
влиять на работу программатора. Кнопка SA1 «Reset»
сбрасывает
микроконтроллер.
Для подключения резонатора
используются джамперы J5, J6.
Резонатор ZQ1 выбирается с параллельным
резонансом, т.к. при использовании
резонатора с последовательным резонансом можно получить частоту не
соответствующую той, что указано на нем. Частота и тип кварцевого
резонатора
выбирается в зависимости от создаваемого устройства и подразделяется на
несколько типов:
·
LP – низкочастотный
резонатор,
·
ХТ
– обычный резонатор,
·
HS – высокочастотный
резонатор.
От типа резонатора зависит емкость конденсаторов С10 и С11, она определяется согласно таблице 2.
Режим |
Частота |
С10, С11 |
Примечание |
Керамический резонатор ZQ1 |
|||
ХТ |
455 кГц |
22 – 100 пф |
Большая емкость увеличивает стабильность генератора, но также увеличивается и время запуска. Значения емкости являются оценочными и подбираются опытным путем. |
2 МГц |
15 – 68 пф |
||
4 МГц |
15 – 68 пф |
||
HS |
8 МГц |
10 – 68 пф |
|
16 МГц |
10 – 22 пф |
||
Кварцевый резонатор ZQ1 |
|||
LP |
32 кГц |
68 – 150 пф |
Большая емкость увеличивает стабильность генератора, но также увеличивается и время запуска. Значения емкости являются оценочными и подбираются опытным путем. |
200 кГц |
15 – 30 пф |
||
XT |
100 кГц |
68 – 150 пф |
|
2 МГц |
15 – 30 пф |
||
4 МГц |
15 – 30 пф |
||
HS |
8 МГц |
15- 30 пф |
|
10 МГц |
15- 30 пф |
||
20 МГц |
15- 30 пф |
Если будет использоваться
встроенный генератор
микроконтроллера, то можно использовать выводы RA6, RA7 как цифровые
для
ввода/вывода, кроме указания необходимой конфигурации в
микроконтроллере
необходимо также убрать джамперы J5, J6 для отключения резонатора
(при использовании микроконтроллеров серии PIC16F62x).
Подключение любого вывода
порта к + 5 В
осуществляется при помощи джампера J + 5 В, к общему проводу
– J gnd.
Подключиться к вывод любого
порта можно либо при
помощи специального разъема Х1 «PORTA» или Х3
«PORTB»,
либо к специальному лепестку от разъема типа РПММ1 – 66Г3
– В.
Для внутрисхемного
программирования используется
разъем Х2 «ICSP». Ножки 1
и
2 подают питание от программатора, ножка 3 – напряжение от
12,5 до 14 В для
перевода микроконтроллера в режим программирования, ножка 4 –
тактовые
импульсы, ножка 5 – данные.
Для связи с компьютером
используется разъем XS1 «RS-232»,
он подключается к микросхеме преобразователя уровней RS-232 – TTL D1 типа Max232 или
аналогичной. Емкость
конденсаторов С1 – С4, С6 определяется по документации той
микросхемы, которую
вы собираетесь использовать, для Max232 емкость этих
конденсаторов составляет 1 мкф. Для наиболее распространенных микросхем
преобразователей уровня
RS-232 –
TTL и
значений емкости
конденсаторов С1 – С4, С6 привожу таблицу 3.
Тип
микросхемы |
Емкость
С1
– С4, С6, мкф |
Max232 |
1,0 |
Max232A |
0,1 |
Max220 |
0,1 |
Max243 |
0,1 |
Это далеко не
полный список
возможных замен, при необходимости можно использовать функциональный
аналог Max232
других фирм – производителей, например Analog Device.
Для использования RS-232 нужно замкнуть джамперы
J2 и J3, тем самым
микросхема D1 подключается к USART
микроконтроллера D3. Выводы RB1 и RB2 будут
использоваться как
порты универсального синхронно – асинхронного
приемопередатчика. Напоминаю, что
USART есть только у
микроконтроллеров семейства PIC16F62x, у PIC16F84 его нет,
поэтому если
необходима связь по RS-232, придется реализовать USART программно.
Микропроцессор D3 устанавливается в
панельку. В качестве D3 можно использовать: PIC16F84,
PIC16F627, PIC16F628 и другие,
имеющих 18 ног
и такую же раскладку по питанию и портам ввода/вывода.
Настройку устройства
необходимо начать с подачи постоянного
напряжения питания примерно 10 – 25 В. При исправных
элементах на выходе
микросхемы D2 будет + 5 В, это
напряжение проверяется на 14 ноге
микроконтроллера D3. При включенном джампере J4 на выводе 4 будет около 5
В, при нажатии кнопки SA1 «Reset» - ноль. Далее
поочередно
подключаем джамперы J + 5 В к каждому выводу PORTА и PORTВ и проверяем
наличие + 5 В
на специальном лепестке, разъемах Х1, Х2, Х3 и соответствующих ногах
микроконтроллера. То же самое проделываем и с джампером J gnd.
При первом включении
макетной платы с загруженной
программой в микроконтроллер, на выходе RB0 будут прямоугольные
импульсы, сигнализирующие о том, что микроконтроллер исправен и
работает.
Проверку работы
преобразователя можно провести,
подключив макетную плату к СОМ – порту компьютера при помощи
простого кабеля, у
которого одноименные выводы подключены между собой.
Проверка осуществляется при
помощи специальной
тестовой программы Test, написанной на Delphi. Для начала настраиваем
нужный COM – порт
компьютера, нажав на кнопку «Настройка COM порта». Выбираем
нужный
порт, скорость «Baud rate», «Data bits» и
«Stop bits» оставляем по
умолчанию,
т.к. они связаны со скоростью работы микроконтроллера и частотой его
резонатора
(в данном случае частота резонатора равна 4 МГц). Далее нажимаем на
кнопку
«Открыть порт» - тем самым программа открыла
указанный в программе COM –
порт, хочу заметить, что работать с указанным портом программа будет
единолично, т.е. другая программа не получит доступ к этому порту до
тех пор,
пока эта программа не освободит его. Кстати, все программы,
использующие
внешние COM – порты
захватывают их в единоличное использование.
Поэтому, если при открытии порта возникла ошибка, то первым делом
определите
чтобы другие программы не использовали выбранный порт.
Далее настраиваем нужный
порт либо на прием, либо на
передачу, выбрав в пункте «Настройка порта» -
«Передача данных» для настройки
соответствующего порта на выход,
т.е. в него можно будет отправить данные и они будут на соответствующих
ногах
микроконтроллера, стоит сказать что на RB1, RB2 установка и
прием данных
невозможны – они используются для связи с компьютером. Для
приема данных с
порта надо выбрать пункт «Прием данных». Если ноги
порта не будут подключены к
+ 5 В или земле, то на выходе результат будет неизвестен.
Для записи данных надо
указать число и нажать на
кнопку «Записать в порт А» или «Записать
в порт В». Для того чтобы прочитать из
порта надо выбрать «Прием данных» и нажать кнопку
«Принять данные из порта А»
или «Принять данные из порта В».
Индикатор «Tx» показывает, что
сейчас
идет передача данных в микроконтроллер, а индикатор «Rx» - о приеме.
LEX_X
1. Программа на Delphi для проверки работоспособности платы и микроконтроллера
2. Программа для микроконтроллера
3. Печатная плата в формате SprintLayout
4.
Принципиальная электрическая плата в формате Splan
Литература:
1.
А.
Киселев, Ю. Мартышевский, Макетная плата для освоения PIC микроконтроллеров фирмы Microchip,
журнал «Схемотехника» 2003г., №12 стр. 35.
2.
В.
Федоров, Стенд для изучения основ работы с микроконтроллерами Microchip,
журнал «Схемотехника», 2004г., №9, стр. 37.
3.
Сайт
фирмы «Мега – Электроника» - www.megachip.ru - представлено много
интересных макетных и отладочных плат для разных типов
микроконтроллеров.
4.
Сайт
Brian's
PIC resource page
- http://www3.mistral.co.uk/brian.clewer/index.htm - представлены промышленные
отладочные платы для PIC16F84, PIC16F873, PIC16F874.
5.
Робототехнический
сайт «Железный Феликс» - http://www.ironfelix.ru/
- много информации по разработке роботов, есть информация по макетным
платам.