Сборка Arduino на макетной плате

Это руководство покажет вам, как собрать Arduino-совместимую схему на макетной плате с микроконтроллером Atmel Atmega8/168/328 AVR и платой-переходником FTDI FT232 от SparkFun.

Обзор

Это руководство покажет вам, как собрать Arduino-совместимую схему на макетной плате с микроконтроллером Atmel Atmega8/168/328 AVR и платой-переходником FTDI FT232 от SparkFun. Вы также можете использовать Arduino USB Mini.

Примечание

Оригинально создано David A. Mellis. Обновлено на основе версии ITP автором Carlyn Maw. Обновлено 23 октября 2008 года автором Rory Nugent.

Детали

Для этого вам понадобится:

Необходимые компоненты

Необходимые компоненты.

Основные детали для сборки Arduino

  • Макетная плата

  • Провод 22 AWG

  • Стабилизатор напряжения 7805

  • 2 светодиода

  • 2 резистора 220 Ом

  • 1 резистор 10 кОм

  • 2 электролитических конденсатора 10 мкФ

  • Кварцевый резонатор 16 МГц

  • 2 керамических конденсатора 22 пФ

  • Маленькая тактовая кнопка с нормально разомкнутыми контактами, например Omron типа B3F

Плата USB-Serial связи

Вам понадобится плата-переходник FT232 USB от SparkFun. Доступны два варианта:

  • Плата FT232RL USB to Serial Breakout Board, SKU BOB-0071

  • Плата Arduino Serial USB Board, SKU DEV-08165

Если вы планируете использовать первый вариант и еще не припаяли штыревые контакты к плате-переходнику, сейчас самое время это сделать.

Прошивка загрузчика на чипы Atmega

Существует несколько вариантов прошивки загрузчика на чипы Atmega, некоторые из которых рассмотрены в этом руководстве. Если вы хотите прошить загрузчик на чипы Atmega с помощью макетной платы, дополнительная деталь значительно облегчит вам жизнь, но не является обязательной. Адаптер программирования AVR от Sparkfun, SKU BOB-08508.

Подключение схемы питания

Если вы уже работали с микроконтроллерами, вероятно, у вас уже есть предпочтительный способ подключения питания к плате, так что действуйте привычным способом. На случай, если вам нужны подсказки, вот несколько фотографий одного из способов. (Эта версия использует стабилизированный источник питания 5 В.)

Верхние линии питания

Верхние линии питания.

Добавьте провода питания и земли туда, где будет расположен ваш стабилизатор напряжения.

Нижние линии питания

Нижние линии питания.

Добавьте провода питания и земли в нижней части платы, соединяя каждую шину.

Добавление 7805 и развязывающих конденсаторов

Добавление 7805 и развязывающих конденсаторов.

Добавьте стабилизатор напряжения 7805 и линии для питания платы. Стабилизатор в корпусе TO-220: вход от внешнего источника питания слева, земля посередине, а выход 5 В справа (если смотреть на переднюю часть стабилизатора). Добавьте провода выхода питания и земли, подключающиеся к правой и левой шинам макетной платы.

Также добавьте конденсатор 10 мкФ между входом стабилизатора и землей, а также конденсатор 10 мкФ на правой шине между питанием и землей. Серебряная полоска на конденсаторе обозначает ножку, подключаемую к земле.

Светодиод

Светодиод.

Добавьте светодиод и резистор 220 Ом на левой стороне платы напротив стабилизатора напряжения. Светодиод, подключенный к питанию таким образом, является отличным приемом для отладки. Вы всегда будете знать, когда плата получает питание, а также быстро определите, если на плате произошло короткое замыкание.

Вход источника питания

Вход источника питания.

Красный и черный провода слева от стабилизатора напряжения — это место подключения источника питания. Красный провод — для ПИТАНИЯ, а черный — для ЗЕМЛИ. Убедитесь, что подключаете источник питания напряжением от 7 до 16 В. Ниже этого значения стабилизатор не выдаст 5 В на выходе. Выше — стабилизатор может быть поврежден. Подойдет батарея 9 В, блок питания 9 В постоянного тока или блок питания 12 В постоянного тока.

Чистая макетная плата

Чистая макетная плата.

Теперь, когда основы питания выполнены, вы готовы установить чип!

Основы ATMEGA8/168/328

Карта выводов Arduino

Карта выводов Arduino.

Прежде чем продолжить, обратите внимание на это изображение. Это отличный справочный ресурс для изучения того, что делает каждый вывод вашего чипа Atmega по отношению к функциям Arduino. Это прояснит многие вопросы о том, почему определенные выводы подключаются именно так, а не иначе. Для получения еще более подробной информации загляните в даташит для Atmega 168 (краткая версия) (полная версия). А вот даташит для ATmega328 (краткая версия) (полная версия).

Добавление вспомогательной обвязки

Добавление вспомогательной обвязки.

Начните с подключения подтягивающего резистора 10 кОм к +5 В от вывода RESET, чтобы предотвратить самопроизвольный сброс чипа во время нормальной работы. Вывод RESET перезагружает чип при подтягивании к земле. В следующих шагах мы покажем, как добавить кнопку сброса, использующую эту функцию.

  • Вывод 7 — Vcc — напряжение питания цифровой части

  • Вывод 8 — GND

  • Вывод 22 — GND

  • Вывод 21 — AREF — аналоговый опорный вывод для АЦП

  • Вывод 20 — AVcc — напряжение питания для АЦП. Необходимо подключить к питанию, если АЦП не используется, и к питанию через фильтр нижних частот, если используется (фильтр нижних частот — это схема, которая уменьшает шум от источника питания. В данном примере он не используется)

Добавление кварца и конденсаторов

Добавление кварца и конденсаторов.

Добавьте внешний кварцевый резонатор 16 МГц между выводами 9 и 10, и добавьте два конденсатора 22 пФ, подключенных к земле от каждого из этих выводов.

Добавление кнопки сброса

Добавление кнопки сброса.

Добавьте маленькую тактовую кнопку, чтобы можно было сбрасывать Arduino в любое время и подготавливать чип к загрузке новой программы. Быстрое кратковременное нажатие этой кнопки сбросит чип при необходимости. Установите кнопку прямо над верхней частью чипа Atmega, пересекая щель в макетной плате. Затем подключите провод от нижней левой ножки кнопки к выводу RESET чипа Atmega и провод от верхней левой ножки кнопки к земле.

Выводы светодиода на Arduino пине 13

Выводы светодиода на Arduino пине 13.

Чип, используемый на этой плате, на самом деле уже запрограммирован программой blink_led, которая поставляется с программным обеспечением Arduino. Если у вас уже есть работающая печатная плата Arduino, рекомендуется проверить версию на макетной плате, которую вы собираете, с чипом, который точно работает. Извлеките чип из вашей работающей Arduino и попробуйте его на этой плате. Программа blink_led мигает выводом 13. Вывод 13 Arduino — это НЕ вывод 13 микросхемы AVR ATMEGA8-16PU/ATMEGA168-16PU. На самом деле это вывод 19 чипа Atmega.

Обратитесь к карте выводов выше, чтобы убедиться, что вы подключаете всё правильно.

Светодиод на Arduino пине 13

Светодиод на Arduino пине 13.

Наконец, добавьте светодиод. Длинная ножка или анод подключается к красному проводу, а короткая ножка или катод подключается к резистору 220 Ом, идущему к земле.

Arduino готова!

Arduino готова!

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

Arduino готова

Добавление платы FT232 USB-Serial

Добавление платы FT232 USB-Serial.

Теперь мы добавим плату-переходник USB-Serial к нашей схеме Arduino на макетной плате. Если вы еще не припаяли штыревые контакты к плате-переходнику, вам нужно сделать это сейчас.

Подключите VCCIO платы-переходника к питанию, а GND — к земле.

Распиновка платы Sparkfun FT232

Распиновка платы Sparkfun FT232.

Интересно, какие выводы на плате-переходнике SparkFun FT232? Просто переверните её! В данном случае мы будем использовать VCC (для подачи 5 В от USB-порта на вашу плату), GND, TXD и RXD.

Подключение TX и RX

Подключение TX и RX.

Теперь пришло время наладить связь между платой USB-Serial и вашей новой схемой Arduino. Подключите RX (вывод 2) вашего чипа Atmega к TX платы USB-Serial, а TX (вывод 3) вашего чипа Atmega к RX платы USB-Serial.

Вот и всё… готово к подключению, включению и программированию!

Но подождите, есть ещё один шаг, верно? Если вы извлекли чип Atmega из вашей Arduino, он, скорее всего, был запрограммирован вами несколько раз, и поэтому на нем точно прошит загрузчик, так что вам не нужно продвигаться дальше в этом руководстве.

Однако, если вы приобрели дополнительные чипы Atmega328 или Atmega168 в интернет-магазине, на них НЕ будет прошит загрузчик Arduino (за исключением чипов от Adafruit Industries). Что это значит? Вы не сможете программировать свои чипы с помощью платы-переходника USB-Serial и программного обеспечения Arduino. Поэтому, чтобы сделать ваши новые чипы пригодными для Arduino, вы ДОЛЖНЫ прошить на них загрузчик и ДОЛЖНЫ перейти к шагу 4.

Другие варианты макетной платы

Установка uDuino от Tymn Twillman

Эта конфигурация похожа на описанную выше, но хитрость заключается в том, что чип Atmega прошит загрузчиком Arduino Lilypad. Lilypad работает на внутреннем тактовом генераторе вместо внешнего, что устраняет необходимость в большей части вспомогательной обвязки.

Boarduino от Ladyada

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

Прошивка загрузчика на чипы (ОПЦИОНАЛЬНО)

Варианты прошивки загрузчика

Существует два варианта прошивки загрузчика на ваши чипы. Первый довольно простой, а второй немного сложнее. Мы рассмотрим оба.

  • Прошивка загрузчика на чип Atmega с помощью платы Arduino и программатора AVR

  • Прошивка загрузчика на чип Atmega на вашей только что подготовленной макетной плате с помощью программатора AVR

Существует также множество различных видов программаторов AVR, но два из них наиболее распространены:

AVRISP mkII

AVRISP mkII.

USBtinyISP

USBtinyISP.

ArduinoISP

ArduinoISP.

AVRISP mkII можно приобрести в Digikey (номер детали ATAVRISP2-ND), а USBtinyISP необходимо собрать, и его можно найти в Adafruit Industries. Документацию и ссылки на магазин Arduino и список дистрибьюторов можно найти на странице продукта ArduinoISP.

Использование платы Arduino

Прошивка загрузчика на плате Arduino

Прошивка загрузчика на плате Arduino.

Установите чип Atmega в плату Arduino выемкой наружу. Установите перемычку на внешний источник питания и подключите блок питания 12 В (ваша плата должна быть запитана от внешнего источника при использовании AVR ISP mkII, но это не требуется для AVRtinyISP). Затем подключите 6-контактный разъем вашего программатора AVR к 6-контактному штыревому разъему ICSP, пластиковым выступом кабеля внутрь.

Примечание

AVR ISP mkII загорается зеленым светодиодом, когда подключен правильно и готов к программированию. Светодиод загорается красным, если подключение выполнено неправильно.

Использование макетной платы

Адаптер программирования AVR

Адаптер программирования AVR.

При прошивке загрузчика на чип Atmega на макетной плате, адаптер программирования AVR (SKU BOB-08508) от Sparkfun невероятно удобен. Этот адаптер выводит 6 контактов от программатора в 6 линейных контактов для удобного подключения к макетной плате. Все контакты также подписаны, что делает подключение очень простым.

6-контактный кабель программатора AVR

6-контактный кабель программатора AVR.

Не волнуйтесь, если у вас нет адаптера программирования AVR — вы все равно можете прошить загрузчик без него. Однако настройка будет несколько сложнее. Два изображения слева — отличные справочные материалы при подключении программатора к чипу Atmega без адаптерной платы. Изображения покажут вам, что представляет собой каждое отверстие в 6-контактном разъеме AVR, и вам просто нужно будет вставить провода в конец и подвести их к чипу Atmega.

Головка 6-контактного кабеля программатора AVR

Головка 6-контактного кабеля программатора AVR.

Это изображение — вид снизу с обозначением каждого отверстия. Обратите внимание на квадрат, чтобы определить ориентацию кабеля.

Приступаем!

Добавление питания и земли

Добавление питания и земли.

На подготовленной выше макетной плате добавьте два провода для питания и земли вашего программатора AVR.

Подключение адаптера AVR

Подключение адаптера AVR.

Теперь подключите адаптер программирования AVR к макетной плате так, чтобы вывод GND совпадал с проводом земли, который вы только что проложили, а вывод 5 В совпадал с проводом питания.

Добавление проводов MISO, SCK, RESET и MOSI

Добавление проводов MISO, SCK, RESET и MOSI.

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

  • Вывод MISO вашего адаптера подключается к выводу 18 или цифровому выводу Arduino 12 вашего чипа Atmega.

  • Вывод SCK вашего адаптера подключается к выводу 19 или цифровому выводу Arduino 13 вашего чипа Atmega.

  • Вывод RESET вашего адаптера подключается к выводу 1 вашего чипа Atmega.

  • Вывод MOSI вашего адаптера подключается к выводу 17 или цифровому выводу Arduino 11 вашего чипа Atmega.

Подключение USB-кабеля и кабеля программатора AVR

Подключение USB-кабеля и кабеля программатора AVR.

Почти готово! Просто подключите USB-кабель к плате-переходнику USB и подключите 6-контактный разъем программатора AVR к адаптеру программирования AVR. Черный выступ 6-контактной головки должен быть направлен вверх, к чипу Atmega. В следующем шаге мы покажем, как использовать программное обеспечение Arduino для прошивки загрузчика!

Время прошивать!

Выбор типа платы

Выбор типа платы.

Запустите Arduino, затем перейдите в меню «Tools» (Инструменты) и «Board» (Плата). Выбор типа платы повлияет на то, какой загрузчик будет записан на ваш чип. Чаще всего вы будете использовать Diecimilia или самую последнюю версию Arduino для Atmega PDIP, однако если вы хотите прошить загрузчик для Arduino Lilypad, Arduino Mini, Arduino Nano или любой из более старых версий Arduino, выберите соответствующую плату.

Выбор программатора. Прошивка!

Выбор программатора. Прошивка!

Затем перейдите в «Tools» (Инструменты) и «Burn Bootloader» (Записать загрузчик) и выберите программатор, который вы будете использовать.

Процесс прошивки

Процесс прошивки.

После выбора программатора программатор AVR начнет прошивку загрузчика на чип Atmega, и в строке состояния появится сообщение «Burning bootloader to I/O Board (this may take a minute)…» (Запись загрузчика на плату ввода-вывода (это может занять минуту)…). Индикаторы на программаторе начнут мигать.

Прошивка завершена!

Прошивка завершена!

По завершении прошивки в строке состояния появится сообщение «Done burning bootloader.» (Запись загрузчика завершена.) Ваш чип теперь готов к программированию с помощью программного обеспечения Arduino! Поздравляем! Перезапустите Arduino, и ваш новый чип Atmega начнет выполнять простую программу мигания светодиодом на выводе 13 (если это не так, попробуйте запрограммировать его этой программой). Если это работает, прошивка определенно прошла успешно.

Предупреждение

Иногда процесс прошивки загрузчика на чип Atmega с помощью AVR ISP mkII занимает необычно длительное время. Обычно это должно занимать всего пару минут, и, по сути, AVRtinyISP завершает процесс гораздо быстрее. Однако бывают случаи, когда через 5-10 минут процесс все еще продолжается. Я обнаружил, что это странная особенность (возможно, происходит тройная проверка потока данных), и после предоставления достаточного времени, около 10 минут, я обычно отключал программатор и обнаруживал, что процесс прошивки давно успешно завершился. Я ни в коем случае не рекомендую этот метод, и вы несете полную ответственность за всё, что может случиться с вашим чипом, но по моему опыту это было довольно безвредно, хотя следует действовать с осторожностью. Вполне возможно, что вы можете повредить чип в процессе.