Разработка платы для микроконтроллера

Основу любой платы на базе микроконтроллера составляют собой как минимум три основных составляющих:

  1. Схема питания микроконтроллера
  2. Схема тактирования микроконтроллера
  3. Схема программирования/отладки микроконтроллера

Схема питания микроконтроллера

Для питания микроконтроллера требуется блок питания. Для этих целей можно использовать универсальный AC-DC адаптер, а то и вовсе блок питания зарядного устройства от сотового телефона - главное, чтобы напряжения питания на выходе составляло не меньше 6.5 вольт, если для стабилизации напряжения используется линейный регулятор, а для тактирования микроконтроллера используется кварцевый резонатор или генератор с частотой больше 8 МГц.

Дело в том, что микроконтроллеры ATmega стабильно работают с напряжением питания 3.3 В на частоте 8 МГц, а если хочется 12, 16 или 20 МГц (купленный мною микроконтроллер был ATmega168-20AU), то требуется обеспечить напряжение питания не меньше 4.5 В.

Саму схему питания можно найти в даташите линейного регулятора (я обычно использую регуляторы 7805), а также в даташите микроконтроллера. Следует учитывать, что емкость конденсаторов в этих схемах указана минимальная, так что если не стоит задача миниатюризации будущего устройства, то фильтрующие конденсаторы можно использовать большей емкости, чем суммарная емкость конденсаторов из обеих схем.

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

Между блоком питания и линейным регулятором следует включить силовой диод для защиты от напряжения неправильной полярности. Дело в том, что на практике без этого диода в микроконтроллере при включении питания не всегда срабатывает цепь Power-On Reset, и требуется послать дополнительный импульс по сигналу nRESET.

Также между блоком питания и линейным регулятором следует добавить выключатель, чтобы отключать питание схемы, не выдёргивая блок питания каждый раз из розетки, например в случае если плата будет запитываться от блока питания смежной платы, например от USB или от Arduino.

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

Схема тактирования микроконтроллера

Схема тактирования микроконтроллера включает в себя схему подключения кварцевого резонатора, генератора или RC-цепочки -- в зависимости от выбранного варианта. Если у Вас нет в арсенале кварцевого резонатора на 32 кГц, то его следует приобрести, поскольку соответствующая установка Fuse-битов превратит микроконтроллер в так называемый кирпичик, и потребуется срочно ехать в магазин покупать этот Low Speed кварцевый резонатор, чтобы иметь возможность перепрограммировать Fuse-биты обратно.

Так же в схему следует добавить цепь сигнала сброса nRESET. Не обязательно это должна быть кнопка, но каждый раз при разработке программы коротить контакты пинцетом или отвёрткой что называется достанет очень быстро, так что лучше просто с самого начала добавить кнопку сброса.

Схема программирования/отладки микроконтроллера

Тут два варианта -- это либо JTAG, либо ICSP-разъём. Если пины ICSP будут использоваться для подключения емкостной нагрузки, имеет смысл добавить в схему коммутатор сигналов на микросхеме CD4066BE, как это сделано у меня в LCD модуле WG12232E с TWI интерфейсом. Начав писать программу, я тут же столкнулся с проблемой необходимости отключать ЖК-дисплей каждый раз при программировании микроконтроллера. Так что пары дней подобной разработки мне хватило, чтобы найти в сети соответствующую микросхему, которая выполняет эту функцию, и тут же отправиться за ней в магазин.

Также для отладки нелишним будет добавить в плату светодиод, мигание которого позволяет определить, находится ли микроконтроллер в выполнении основного цикла или где-то "завис".

Автор: Андрей Шаройко <vanyamboe@gmail.com>