В основу конструкции легли разработки и руководства по применению отладочных плат фирмы Mikroelektronika. Выпускаемые этой фирмой платы EasyAVR (да и не только) привлекают начинающих осваивать микроконтроллерную технику качеством изготовления и разнообразием установленных на них компонентов. На самом деле половина из них становится ненужной после проверки в действии пяти-шести учебных программ Посудите сами, на плате имеются множество светодиодов и кнопок, подключенных к каждой линии каждого порта. Но они необходимы экспериментатору лишь до тех пор, пока он не научится управлять уровнями сигналов и мигать индикаторами, а это происходит весьма быстро. На моей плате всего четыре светодиода и переключатель, для начала вполне достаточно...
Разработанной плате я дал название FastAVR. Имея размеры 98x127 мм и односторонний печатный монтаж, она вполне пригодна для изготовления в домашних условиях. Применены микросхемы только в корпусах DIP, установленных в панели, что позволяет легко заменять их в процессе экспериментов. Микроконтроллер может тактироваться как от кварцевого резонатора, так и от установленного на плате тактового генератора с делителем частоты Предусмотрен разъем для подключения стандартного программатора STK-200 с селективной подачей на него питания и с возможностью подключения адаптера JTAG При необходимости можно запрограммировать и микроконтроллер, предназначенный для работы в другом устройстве.
На плате имеются самые необходимые для макетирования отлаживаемых конструкций периферийные устройства: двухразрядный семиэлементный светодиодный индикатор, символьный ЖКИ, интерфейсы RS-232, SPI, PS/2 (для подключения стандартной компьютерной клавиатуры или "мыши"), микросхема EEPROM, звуковой сигнализатор. Предусмотрена возможность подключения большинства этих устройств к любым выводам любых портов микроконтроллера в произвольных сочетаниях Все порты доступны и для подключения устройств, расположенных вне платы. Имеющиеся на плате устройства, в том числе кварцевый генератор и светодиодные индикаторы, можно подключить и к устройствам вне ее Все эти подключения не требуют пайки и выполняются установкой перемычек между имеющимися на плате штыревыми контактами или между ними и внешними устройствами.
Первоначально была задумана отладочная плата с дешевым микроконтроллером АТmega8, обладающим практически всеми присущими его семейству (AVR) возможностями Однако я решил не экономить и применить микроконтроллер этого же семейства в корпусе DIP с максимально возможным числом выводов (40) — ATmega16 или ATmega32. Расположение выводов у них одинаково, и на описываемую плату может быть установлен любой. Большое число выводов позволяет подключить больше различных периферийных устройств, которые могут потребоваться при отладке программы. Поскольку микроконтроллеры семейства AVR программно совместимы, отлаженную на более мощном из них программу несложно, как правило, перенести на менее мощный Учитывая, конечно, их различия.
На одном и том же экземпляре установленного на отладочной плате микроконтроллера можно отладить немало различных программ. Программная (FLASH) память современных микроконтроллеров допускает настолько много циклов перепрограммирования, что при внесении многочисленных изменений в программу в процессе ее отладки можно не задумываться о возможном исчерпании ресурса Даже при появлении первых признаков этого (некоторые ячейки памяти не программируются с первого раза) микроконтроллер, отработавший свое на отладочной плате, не стоит выбрасывать. Его можно, запрограммировав в последний раз, отправить "на постоянную работу" в одну из ранее отлаженных конструкций.
Схема основного узла платы FastAVR изображена на рис. 1. Все подключение периферии к портам микроконтроллера DD2 производится через двухрядные 16-контактные штыревые колодки ХР1—ХР4. Четные штыри каждой из них подключены к выводам портов микроконтроллера, а нечетные — к имеющимся на плате периферийным устройствам. При сборке макета для отладки соседние штыри удобно соединять обычными джамперами, а находящиеся на удалении, в другой колодке или даже на другой плате, — перемычками из отрезков гибкого изолированного провода, снабженными на обоих концах гнездами от разъемов (рис. 2). На гнезда надеты термоусаживаемые трубки.
В процессе отладки к тем же штырям удобно подключать контрольно-измерительные приборы: осциллограф, частотомер, генератор испытательных сигналов. Расположение штырей в ряд в порядке возрастания номера разряда порта облегчает поиск нужного и значительно снижает риск их перепутать. Такое решение, по моему мнению, гораздо удобнее, чем использование в большинстве промышленных отладочных плат для внешних подключений десятиконтактных двухрядных разъемов IDC-10. Единственное их достоинство — наличие ключа, обеспечивающего правильную стыковку с ответной частью разъема. А при подключении единичного провода или щупа измерительного прибора приходится всякий раз считать контакты, вспоминая порядок их соответствия выводам микроконтроллера.
Если перемычки S2—S4 сняты, a S5 и S6 установлены, к внутреннему тактовому генератору микроконтроллера подключен кварцевый резонатор ZQ1, частота которого может быть выбрана любой, необходимой для решаемой задачи. На плате имеется также интегральный кварцевый генератор G1 на 16 МГц. Триггеры микросхемы DD1 делят его частоту на два и на четыре. Сняв перемычки S5, S6 и установив одну из перемычек S2—S4, можно подать на тактовый вход микроконтроллера (вывод 13) импульсы частотой 4, 8 или 16 МГц. Это обеспечит работу микроконтроллера при любой конфигурации, в которой внутренний тактовый RC-генератор выключен.
Тактирование от внешнего генератора может быть полезным и для восстановления работоспособности микроконтроллера, конфигурация которого запрограммирована ошибочно. Об этом можно прочитать в [1].
Хотя микроконтроллер содержит собственную энергонезависимую память данных, зачастую ее объем оказывается недостаточным для решаемой задачи. Проблему можно решить подключением к микроконтроллеру внешней микросхемы памяти нужного объема. На плате FastAVR это сделано по схеме, изображенной на рис. 3 Микросхема DS1 серии 24С или 24LC — перепрограммируемая энергонезависимая память с интерфейсом I2C. Входы АО—А2 подключены таким образом, что младший разряд ее адреса ведомого на интерфейсной шине равен 1, а два следующих за ним — нулевые.
На рис. 4 показана схема имеющихся на плате FastAVR узлов управления и индикации. Счетверенный DIP-выключатель SA1 с помощью перемычек подключают к выводам портов микроконтроллера. Резисторы R4—R7 предохранят эти выводы, если они случайно запрограммированы как выходы от перегрузки при замкнутых выключателях. Резисторы сборки DR1 поддерживают высокий логический уровень на входах микроконтроллера, когда выключатели SA1.1—SA1.4 разомкнуты. Пятый "лишний" резистор сборки также может быть использован для подачи такого уровня в какую-либо цепь
Четыре сигнальных светодиода HL1 —HL4 светятся при высоких логических уровнях на выходах, к которым они подключены, и не светятся при низких. Резисторы R8—R11 ограничивают ток.
Коммутаторы общих электродов двухразрядного семиэлементного светодиодного индикатора HG1, собранные на транзисторах VT1—VT4. могут управлять индикаторами как с общими анодами (например, DA56-11), так и с общими катодами элементов (например, DC56-11) Нужно лишь обеспечить нужную полярность программно формируемых управляющих импульсов, подаваемых на резисторы R12—R21. Подобные индикаторы несложно найти в отслуживших свой срок кассовых аппаратах и системных блоках компьютеров. Сняв перемычку S7, можно отключить элемент Н (десятичную точку) младшего разряда индикатора HG1.
Разъем ХР5 служит для подключения к плате FastAVR распространенных символьных ЖКИ с встроенными контроллерами. Фактически это двухрядный 34-контактный разъем IDC-34MS, но используются только 14 из 17 контактов одного ряда. Их номера, показанные на схеме, не соответствуют стандартным для этого разъема, но совпадают с номерами выводов наиболее распространенных ЖКИ. Наличие такого разъема позволяет воспользоваться для связи с индикатором стандартным компьютерным 34-про-водным плоским кабелем, предназначенным для соединения привода гибких дисков с материнской платой. В отверстия интерфейсных контактных площадок ЖКИ вставлена и припаяна к ним 14-контактная штыревая колодка. На нее надевают один разъем плоского кабеля, а второй вставляют в разъем ХР5. Контакты ЖИЖИ 1 соединяют с выводами портов микроконтроллера в соответствии со схемой включения ЖКИ в отлаживаемом устройстве. Плата с подключенным индикатором показана на рис. 5.
Описанная методика подключения ЖКИ сравнительно сложна, но удобна тем, что индикаторы разных типов, имеющие одинаковую цоколевку, можно быстро менять, не рискуя перепутать порядок соединения их выводов с портами микроконтроллера. Подстроечный резистор R23 служит регулятором контрастности.
Звуковой сигнализатор НА1 — электромагнитный излучатель сопротивлением 80 Ом, найденный на материнской плате компьютера. Диод VD1 подавляет выбросы напряжения самоиндукции, возникающие на обмотке сигнализатора при ее питании импульсным напряжением. Уменьшать сопротивление резистора R22, чтобы повысить громкость звука, не следует. Это приведет к перегрузке выхода микроконтроллера.
Небольшой совет. Не забывайте в конце программной процедуры генерации звукового сигнала подать команду, устанавливающую низкий уровень на выходе PD7 микроконтроллера. Если уровень здесь оставить высоким, ток через излучатель НА1 продолжит течь и в паузах между сигналами, что приведет и к общему повышению потребления энергии микроконтроллером.
Схема внешних интерфейсов отладочной платы изображена на рис. 6. К разъему XS1 можно подключить компьютерную клавиатуру или "мышь", а разъем XS2 соединить с СОМ-портом компьютера. Микросхема DA1, включенная по типовой схеме, согласует уровни сигналов RS-232 и микроконтроллера. Перемычки S8—S10 представляют собой ограниченные контактными площадками тонкие участки печатных проводников, которые можно перерезать, если возникнет необходимость использовать в отлаживаемом устройстве не только информационные, но и управляющие сигналы интерфейса RS-232.
Дроссели L1—L5 подавляют высокочастотные помехи. Это — надетые на провода небольшие ферритовые трубки. Такие легко найти на компьютерных платах.
Чтобы загрузить в установленный на плате FastAVR микроконтроллер коды программы, разъем ХР6 соединяют с программатором. На время работы с ним перемычку S1 (см. рис. 1) рекомендуется снять, отключив этим имеющуюся на плате цепь начальной установки микроконтроллера. Если программатор имеет собственный источник питания, необходимо снять перемычку S11. Когда она установлена, программатор питается от отладочной платы.
Я использовал программатор, аналогичный STK-200. Его схему и чертеж печатной платы можно найти на рис. 8 и 9 в [2]. В этом программаторе всего одна микросхема КР1564АП5 (74HC244AN), подключают его к порту LPT компьютера. Устанавливать в программаторе кварцевый резонатор нет необходимости, он имеется на отладочной плате. При работе с этим программатором и программой PonyProg на компьютере с процессором Core2Duo+, чипсетом 1965 и операционной системой Windows XP SP3 никаких проблем не возникло.
Схема узла питания отладочной платы показана на рис. 7. На контакт 3 разъема ХР7 от внешнего источника можно подать стабилизированное напряжение +5 В. Перемычки S12, S13 обязательно должны быть сняты. Если имеется источник постоянного напряжения 9... 16 В, его плюсовой вывод соединяют с контактом 2 того же разъема и устанавливают перемычки S12, S13. В этом случае внешнее стабилизированное напряжение +5 В не требуется, его получают с помощью интегрального стабилизатора DA2.
Когда светодиодный индикатор HG1 не используется и к плате не подключены какие-либо потребляющие большой ток внешние устройства, температура корпуса стабилизатора DA2 невелика. Если же, несмотря на наличие теплоотвода, стабилизатор сильно нагревается, рекомендуется перейти на питание от внешнего достаточно мощного источника напряжения 5 В. О наличии напряжения питания сигнализирует светодиод HL5.
Диоды VD2 и VD3 защищают от неправильной полярности подключения источника питания. Дроссели (ферритовые трубки) L6 и L7 подавляют высокочастотные помехи. Установленные в различных местах платы контакты ХТ12—Х17 (+5 В) и ХТ18—ХТ22 (общий) позволяют питать напряжением 5 В различные внешние устройства. Кроме того, к контактам ХТ18—ХТ22 удобно подключать общий провод измерительных приборов.
Чертеж печатной платы изображен на рис. 8. Она односторонняя из фольгированного стеклотекстолита толщиной 1,5 мм. Обратите внимание, что две изображенные штриховыми линиями перемычки из изолированного провода устанавливают со стороны печатных проводников. Остальные делают из провода без изоляции и располагают со стороны деталей. Для микросхем DA1, DD1, DD2, DS1 и светодиодного индикатора HG1 на плате установлены панели, что позволяет при необходимости быстро заменять эти элементы. При отсутствии ферритовых трубок вместо дросселей L1—L7 можно установить перемычки.
Рядом с разъемом XS1 имеется посадочное место для еще одного такого же разъема, обозначенного XSV. Хотя его выводы никуда не подключены, это позволяет без проблем установить здесь снятую с компьютерной материнской платы сдвоенную розетку MDN-6F. Разъем XS2 — розетка DB-9F.
Штыревые колодки ХР1 —ХР4, штыри ХТ1 —ХТ22 и предназначенные для установки перемычек S1 — S7, S11—S13 изготовлены из двухрядных разъемов серии PLD или однорядных серии PLS. Чтобы получилось нужное число контактов, от них отделены отрезки соответствующей длины или добавлены отрезки с недостающими контактами.
Обратите внимание, что рядом с контактными площадками для штырей ХТ4— ХТ11 имеются свободные контактные площадки. Это позволяет установить здесь двухрядную штыревую колодку, не подверженную "расшатыванию" при частых перекоммутациях. О разъеме ХР5 (IDC-34MS) было сказано ранее. Разъем ХР6 (для программатора) — десятиконтактный той же серии (IDC-10MS). Трехконтактный разъем питания ХР7 снят с материнской платы, где он использовался для подключения вентилятора. Это сняло проблему поиска ответной части разъема, нужной для подключения к плате источника питания.
В нижней (по чертежу) части платы имеется заполненное контактными площадками прямоугольное поле — резерв для размещения всевозможных дополнительных элементов, которые могут потребоваться в процессе отладки. На изготовленной мною плате здесь был установлен, например, переменный резистор номиналом 22 кОм. На него было подано напряжение +5 В, а снимаемое с движка регулируемое использовалось для проверки АЦП микроконтроллера.
Интерфейс RS-232 очень удобно использовать при отладке, дополнив отлаживаемую программу модулем, посылающим необходимую информацию через USART микроконтроллера. Запустив на компьютере, с СОМ-портом которого соединен разъем XS2 отладочной платы, терминальную программу, можно наблюдать на экране принимаемые сообщения.
Я использовал программу Terminal v1.9b, которую можно найти в Интернете с помощью любой поисковой системы. Окно этой программы с примерами сообщений, принятых от отлаживаемого устройства и переданных ему, показано на рис. 9. Для нормального отображения русского текста необходимо, нажав на экранную кнопку "Set font", выбрать в открывшемся окне шрифт — Arial, начертание — обычный размер — 8, набор символов — кириллический.
Файл печатной платы в формате Sprint Layout 5.0 и примеры программ, демонстрирующих работу имеющихся на плате узлов: fastavr.zip
ЛИТЕРАТУРА
1 Баранов В. Восстановление конфигурации микроконтроллеров AVR. — Радио. 2009, № 11, с. 26—29.
С. БОРИСОВ, г. Узловая Тульской обл.
"Радио" №№8-9 2010г.