Мои поделки: Универсальная макетная плата для Микроконтроллера (в DIP-корпусе) [ноябрь 2013]

Универсальная макетная плата для Микроконтроллера в DIP-корпусеТелефонный звонок:
— Алло, здравствуйте, скажите пожалуйста, есть ли в наличии микросхема XXYY-ZZ ?
— Минуточку… Есть, но к сожалению, они сейчас только в DIP-корпусе…
— Да? Спасибо… а как пройти в дип-корпус ?

Содержание:

Предисловие

Есть у меня отладочная плата «Atmel STK500». Но, до чего же неудобная штука! В ней невозможно даже Кварц подключить непосредственно к микроконтроллеру. Зато есть куча ненужных фич. И разводка контактов, между разъёмами, сделана по какой-то собственной логике разработчиков — вот им может и удобно. А мне как быть (ведь, я же пользователь)? И всякий раз, чтобы подключить любой микроконтроллер, в одном из ограниченных и строго документированных режимов — приходится курить кучу мануалов типа: «Возьмите первый красненький проводок и Соедините пин X разъёма XX с пином Y разъёма YY…» Зря я, в своё время, выкинул на неё over 1000 грн.

Программатор и отладчик «AVR Dragon» — гораздо более удобный инструмент! В нём есть все необходимые функции (ISP/JTAG/debugWire/ParallelProgramming/HighVoltageProgramming) и все они, прозрачно, выведены на один из трёх разъёмов (ISP/JTAG/HV_PROG)просто, значит удобно!
Вот, всё хорошо у Дракона, да одного недостаёт: полноценной макетной платы нет, чтобы весь зоопарк микроконтроллеров запускать. Замечу, что там можно припаять ZIF-панельку на «макетном поле», как рекомендует мануал Дракона — но это не то, это только для программирования микроконтроллеров предназначено. А для работы — микроконтроллерам нужна стартовая обвязка… Например, «STK500» замахивается на полноценный инструмент: не только запрограммировать, но и отладить позволяет (хотя, с такими ограничениями и неудобствами — это лишь игрушка).

«Хочу, чтобы всё было, и оно было удобно! Чтобы свобода и гибкость была…» — подумал я. И тут пришла идея: какая именно макетная плата, для микроконтроллера, мне нужна и была бы удобна + вдобавок, к подключаемому внешнему отладчику («AVR Dragon») + да ещё, чтоб любую внешнюю периферию можно было собирать на «контактной макетке» (breadboard) и подключать к работающему микроконтроллеру-сердцу…
Инспирированный идеями DI HALTа с его PinBoard, я пошёл по несколько иному пути: не стал ограничиваться одним микроконтроллером (ATmega16), а спроектировал универсальную макетную плату, позволяющую запускать ЛЮБОЙ микроконтроллер в DIP-корпусе, с количеством ног до DIP40 (потому что уже пробовал проектировал устройства на ATtiny13, ATtiny2313, ATmega8, ATmega16… и этим же дело не ограничится! а в будущем, вероятно, будут ещё и PIC, STM, и др…)

Назначение

Хочется, чтобы на макетке можно было запустить любой реальный микроконтроллер — тот, который потом будет использоваться в реальном устройстве (без миграции на другой «камень», сопряжённой с дополнительными мутными шагами, и чреватой глюками). Я ведь ещё новичок в микроэлектронике: у меня ещё мало опыта проектирования, чтобы учитывать все нюансы и легко представлять переносимую программу (а сейчас, я программирую на ассемблере — это ужесточает условия разработки, и очень усложняет миграцию прошивки на другой МК!) — поэтому нужно, чтобы всё работало и отлаживалось сразу «конкретно и прозрачно».

В мировой практике, часто рекомендуют: разводить микроконтроллер со всей обвязкой — прямо на контактной макетной плате (breadboard) — тут и любую периферию удобно подключать… спрашивается, что ещё нужно? А вот, это первый метод, с которого я вообще начал эксперименты с микроконтроллерами — но из-за плохих контактов, у меня совсем не заработала, ни одна схема! Или работала только первые полтора запуска. Программатор жутко глючил: микроконтроллеры не прошивались вовсе, или прошивались с глюками, верификация фейлилась — так я быстро запорол все свои камни (у них, при n-ой неудачной прошивке, почему-то сбивались «fuses», хотя я их даже не трогал, и микроконтроллер больше не запускался). «Камни» удалось оживить «высоковольтным программированием» (здесь, мне очень помогли: запасной программатор в «STK500», и курение мануалов). Но камни «умирали» на макетке повторно, очень скоро…

DI HALT также писал, что не использует «контактные макетки» для прототипиирования, по сходным причинам «плохих контактов», а использует только «макетные платы, которые паяются». Это, пожалуй, единственно верное решение, в данном случае: поскольку на больших частотах (порядка мегагерцов), на которых работают микроконтроллеры и передаёт сигналы программатор, — совершенно необходимы чёткий низкоомный контакт, а также линии связи с низкой ёмкостью!

Итак, по крайней мере, самую критичную часть платы (микроконтроллер с обвязкой и подключением программатора) необходимо сделать на паянных контактах — чтобы программирование и отладка работали без глюков, чтобы «сердце схемы» работало. А периферию уже можно развести-растыкать и на временной «макетке с дырочками», и подключать проводами к основной паянной макетке с микроконтроллером — это решение достаточной надёжности и хорошей гибкости…

Макетка со схемой (обзор)

Конструкция

Пайка

Данная конструкция собрана на: универсальной односторонней макетной плате под пайку «Maket 4 (75 x 100)». Соединения узлов исполнены: «перемычками» из провода МГТФ; и «шинами» из зачищенного монтажного провода, впаянного между контактными площадками.

Макетка без схемы (вид сверху)

Макетка без схемы (вид снизу, пайка)

Пайка некоторых узлов далась с трудом (здесь видно, что легче было бы использовать свою печатную плату, разведённую специально под задачу):

аспект пайки: Сложнее всего было разводить разъёмы JTAG-ISP     аспект пайки: Разводка и обвязка Кнопочек и Светодиодов - также потребовала терпения     Плата в изопроекции (вид снизу, пайка)     Плата в изопроекции (вид снизу, пайка)

Наконец, чтобы защитить макетную плату в эксплуатации от коротких замыканий, плата была покрыта снизу прозрачным пластиком (это позволяет свободно обозревать коммутации и напоминать пользователю разводку макетной платы):

Защита контактов (пайка снизу закрыта прозрачным пластиком)

Схема

Макетная плата состоит из нескольких, не соединённых между собой, функциональных блоков. Связи между ними устанавливает сам пользователь, с помощью монтажных проводов — таким образом, достигается гибкость и прозрачность разводки макета. Для подключения проводов, на плате используются цанговые гнёзда, обеспечивающие надёжный контакт. Макетная плата предоставляет всю необходимую стартовую обвязку для работы микроконтроллера.

Функциональные блоки и Схема принципиальная макетки

Для подключения всех возможных микроконтроллеров (всей линейки AVR и других) в DIP-корпусах — используется «Универсальная ZIF-панель DIP40». Здесь, «универсальная» означает, что она подходит как для «широких» (ATmega16), так и для «узких» (ATmega8) микросхем. (на Украине: нашёл и купил здесь, за 26грн.)
DIP 40pin Universal ZIF IC Socket

Все кнопки на плате, в том числе и блок DIP-переключателей, реализованы по классической схеме. Причём, две «пользовательские» кнопки и «reset» реализованы одинаково — что позволяет, например, при дефиците кнопок для макета, задействовать и «reset» в качестве «пользовательской».
Простая кнопка

Для индикации используется «Шкальный светодиодный индикатор» (здесь, использован Десятисегментный LED-дисплей «GNA-R1025101ZY»). Токоограничивающие резисторы для всех светодиодов (150 Ом) подобраны так, чтобы они светили ярко и заметно — в диапазоне напряжений питания 2.7-5.5V, и удовлетворительно — в диапазоне 1.8-3V.
Шкальный светодиодный индикатор

Применение

Макетка с работающей схемой (вид сверху)

Программатор-отладчик

Представленная макетная плата используется в связке с любым (удобным и имеющимся в наличии) внешним программатором. Причём, для разных семейств и производителей Микроконтроллеров — могут использоваться разные совместимые с ними программаторы. (Например, для «AVR» — я предпочитаю использовать «AVR Dragon».)

Подключать программатор можно через: 6-пиновый или 10-пиновый штырьковый разъём (как наиболее распространённые стандарты), а затем разводить перемычками, с цанговой панели к гнезду микроконтроллера — при этом, распиновка разъёма программатора не имеет никакого значения! Так что, можно использовать любой программатор, для любого семейства микроконтроллеров…

Или, если так удобнее, то можно подключать программатор сразу, непосредственно к гнезду микроконтроллера, разводя пучком одиночных проводов. Здесь, можно использовать любые оконечники: «папа» или «мама» — т.к. гнездо микроконтроллера оборудовано как цанговыми гнёздами (основными средствами внутрисхемной коммутации на этой макетке), так и штырьковыми «межплатными соединителями».

Внутрисхемная коммутация

Ещё, для полноценного рабочего комплекта, нам понадобятся «наборы перемычек», чтобы подключать узлы системы (это ключевое принципиальное отличие моей макетной платы от других: в том что нет фиксированных соединений между узлами, распаянных дорожками на ПП — всё нужно коммутировать перемычками, как на breadboard).

Самый необходимый — это «Набор перемычек для макетных плат (папа-папа)» (используются для внутриплатных соединений и подключений с внешней breadboard):
Набор перемычек для макетных плат (папа-папа)

Многие программаторы и отладочные платы оборудованы штырьковыми PLS/PLD-разъёмами — для их подключения нужен «Набор перемычек для макетных плат (мама-мама)»:
Набор перемычек для макетных плат (мама-мама)

В некоторых редких случаях, ещё может пригодиться «Набор перемычек для макетных плат (папа-мама)»:
Набор перемычек для макетных плат (папа-мама)

Питание схемы

Питание моделируемого устройства заводится на макетную плату через отдельный централизованный «блок управления питанием» (он исключает возможность «переполюсовки» и обеспечивает удобное управление «вкл/выкл»):

Блок управления питанием и кнопка Reset

Источниками питания могут служить:

Поэтому, для подключения внешнего питания, предусмотрены разнообразные разъёмы:

Все три входа питания — равнозначны, запараллелены. Далее, питание проходит через выпрямительный мост (DB207) — это позволяет не беспокоиться о распайке разъёмов питания, и не следить за полярностью питания вообще. (Иначе, это мог бы быть очень опасный момент, и для схемы, и для программатора-отладчика, если полярность перепутать!) Затем, питание подводится к «кнопке питания» (кнопка с фиксацией, и с двумя контактными группами: «PSM1-1-0» или её аналог) — которая отключает обе шины: «питание» и «землю». После кнопки питания, шины «VCC» и «GND» разводятся по всей плате: причём, для естественного восприятия, «VCC» — расположена сверху, а «GND» — в самом низу…

Замечание! Важно: все другие периферийные узлы отлаживаемой схемы, в том числе и расположенные на других подключаемых платах — следует запитывать только от этих внутренних шин «VCC» и «GND»! (Поэтому количество предоставляемых цанговых гнёзд на этих шинах питания — гораздо больше, чем нужно для подключения самого микроконтроллера, дано с запасом.)

Красный светодиодик включён после кнопки питания — индицирует «режим работы» макета. Разделительный электролит подключён до кнопки, к источнику питания непосредственно.

Подключение Кварца

Разводка и подключение Кварца к микроконтроллеру

Что здесь можно улучшить?

1) Очень досадно, что на выпрямительном диодном мосте «DB207» — падает аж до 1.1V напряжения питания! Если питать устройство от регулируемого «лабораторного блока питания», то это свойство можно легко скомпенсировать (дав повышенное напряжение на вход). Но если питать устройство от батареек или, например, непосредственно от программатора «AVR Dragon» — то это очень удручает и не удобно! Напряжения 5V-1.1V=3.9V хоть и хватает для безглючной прошивки любого микроконтроллера… но это мешает полноценному моделированию схемы, рассчитанной на стандартное напряжение питания (+5V). А от двух батареек (2xAA) — схему уже и вовсе не запустить (3V-1.1V=1.9V)…
Поэтому, хочется заменить стандартный выпрямительный мост на биполярных диодах (DB207) — сборкой на четырёх полевых ключах: по типу, как сделана «схема защиты от переполюсовки». (Если у вас есть лучшее предложение — пожалуйста, посоветуйте, как это правильнее решить схемотехнически?)
В итоге, эта проблема была разрешена — см. ниже, рецепт…

2) Для серийности: вместо сборки устройства на универсальной макетной плате — следует развести свою печатную плату (см. ЛУТ), рационализировав компоновку узлов, и используя некоторые элементы в SMD-исполнении.

3) Вдобавок к стандартной периферии, я бы ещё, возможно, добавил на эту макетную плату: один Звукоизлучатель (Бузер с генератором) с напряжением питания 2..5V (например: «KPX1203B», «HYE1206-03» или другой аналог).

4) В «блок управления питанием» можно установить:

Блок управления питанием

Решение: Выпрямительный мост на МОП-транзисторах (мизерное падение напряжения)

Основной схемотехнический недостаток рассмотренного устройства, значительно ухудшающий его эксплуатационные качества — это падение напряжения на «диодном мосте». Нужно это побороть!

Из-за пониженного напряжения питания — нарушается работа многих элементов схемы. Поэтому, после диодного моста, приходится использовать стабилизаторы напряжения (в т.ч. повышающие импульсные DC-DC преобразователи, со сложной обвязкой), требовать повышенного напряжения от источника питания, и многие другие сложности возникают… Но истинная причина проблемы — в «диодном мосте»! А поскольку мы не можем улучшить функциональные характеристики полупроводниковых диодов (их физическая природа такова, что на p-n-переходе падает более 0.6V, и всё тут). То попробуем разрешить ситуацию схемотехнически…

Взяв за основу идею «схемы защиты от переполюсовки на МОП-транзисторах», обеспечивающей крайне малое паразитное падение напряжения. Заметил: а ведь МОП-ключи, здесь, выполняют роли «однополупериодного выпрямительного четвертьмоста»! Далее, если подумать: то взяв четыре четвертьмоста — можно получить целый мост… ;) Таким образом, была образована следующая схема:

Выпрямительный мост на МОП-транзисторах (эксперимент-модель)

Для сравнения, промоделируем аналогичную схему, на классическом диодном мосте:

Выпрямительный мост на диодах Шоттки (классический) (эксперимент-модель)

Симуляция в Proteus показывает: в то время как на «классическом диодном мосте» падает аж 1.5V — то на «выпрямительном мосте на МОП-транзисторах» падает лишь 0.01-0.1V ! Реальный профит!

Данная схема была проверена, также, и на физическом макете (представленный на фото в статье макет, при потреблении ~100мА, имеет падение напряжения на выпрямителе ~0.01V) — эксперимент полностью подтвердил результаты симуляции! Я исправил существующую конструкцию: выкусил диодный мост, оставив его ножки; загнул ножки, сформировав контактные площадки для «поверхностного монтажа», с верхней стороны платы; МОП-транзисторы спаял в сборки, объединив попарно объёмным монтажом: два P-канальных транзистора соединил Истоками к «+» выходу моста (шине «VCC»), два N-канальных соединил Истоками к «-» выходу (шине «GND»)…

Синхронный мостовой выпрямитель на МОП-транзисторах, спаян объёмным монтажом

Замечание! «Выпрямительный мост на МОП-транзисторах» — это полноценный универсальный выпрямительный мост! Его прин­цип действия не тривиален, но в некоторых случаях, по своим параметрам он может превосходить мост с диодами Шоттки! Данная схема называется «синхронный мостовой выпрямитель» — он обладает следующим свойством:

Предположим, что с помощью некоторой схемы ослабления сигнал, поступающий к затворам этим четырех МОП-транзисторов, постепенно уменьшается. Что при этом произойдет? Удивительно, но мостовая схе­ма продолжит работать как выпрямитель! Действительно, схема «выро­дилась бы» в обыкновенную диодную мостовую схему… Откуда появились диоды? Это встроенные диоды мощных МОП-транзисторов, которые теперь стали активными, потому что падение напряжения меж­ду стоком и истоком МОП-транзисторов при малом сигнале на затворе теперь превышает 0,7 В. Таким образом, при недостаточном сигнале на затворах — вы­прямление сохраняется, но с более низким к.п.д. (как у обычного диодного моста), особенно на высо­ких частотах.

Замечание! Примечание: при всех наблюдаемых преимуществах схемы «Выпрямительного моста на МОП-транзисторах» — она не может полностью заменить «классический диодный мост», во всех его традиционных применениях.
При использовании, в выпрямителе, миниатюрных «SMD logic level MOSFET» IRLML6344 и IRLML6401 — МОП-транзисторы, обязательно, должны работать в ключевом режиме! Поэтому такой «Выпрямительный мост на МОП-транзисторах» не может использоваться, непосредственно, для выпрямления переменного напряжения (AC), а может быть использован только подобным образом: как продвинутая схема для защиты/согласования/исправления переполюсовки постоянного напряжения (DC).
А для непосредственного выпрямления AC-напряжения — требуется использовать либо мощные МОП-транзисторы (и смириться со снижением к.п.д. схемы, за счет частичной работы в режиме «вырожденной до диодного моста»), либо усложнить схему дополнительными драйверами МОП-транзисторов

 

Комментарии закрыты.