LilyPad Arduino USB

LilyPad Arduino USB LilyPad Arduino USB (вид сзади)

Общие сведения

LilyPad Arduino USB - это устройство на базе микроконтроллера ATmega32U4 (datasheet). В его состав входит все необходимое для работы с данным микроконтроллером: 9 цифровых входов/выходов (4 из которых могут работать в качестве ШИМ-выходов, 4 - в качестве аналоговых входов), кварцевый резонатор на 8 МГц, разъем микро-USB, разъем JST для литий-полимерного аккумулятора на 3.7В и кнопка сброса. Для начала работы с LilyPad достаточно просто подать питание от аккумулятора либо подключить его к компьютеру посредством USB-кабеля.

Отличие LilyPad Arduino USB от всех предыдущих плат LilyPad заключается в том, что его USB-контроллер встроен непосредственно в микроконтроллер ATmega32U4, что исключает необходимость в дополнительном USB-UART преобразователе. Благодаря этому при подсоединении к компьютеру LilyPad Arduino USB может определяться не только как виртуальный (CDC) COM-порт, но и как обычная мышь или клавиатура. Кроме того, такая архитектура оказывает влияние и на поведение платы; подробнее об этом см. страницу Начало работы.

Характеристики

Микроконтроллер ATmega32u4
Рабочее напряжение 3.3В
Напряжение питания 3.8-5В
Цифровые входы/выходы 9
Каналы ШИМ 4
Аналоговые входы 4
Максимальный ток одного вывода   40 мА
Flash-память 32 КБ (ATmega32u4) из которых 4 КБ используются загрузчиком
SRAM 2.5 КБ (ATmega32u4)
EEPROM 1 КБ (ATmega32u4)
Тактовая частота 8 МГц

Схема и исходный проект

Файлы EAGLE: arduino-lilypad-usb-reference-design.zip

Схема: arduino-lilypad-usb-schematic.pdf

Питание

LilyPad Arduino USB может быть запитан как от 3.7В LiPo аккумулятора (подключается к разъему JST на плате), так и от USB. При использовании других источников питания задействуется встроенный стабилизатор MIC5219, понижающий напряжение питания до необходимых 3.3.В.

Для включения и выключения устройства на плате предусмотрен специальный переключатель: в позиции "ON" на микроконтроллер подается питание и устройство включается, при переключении в позицию "CHG" питание отключается. (Такое поведение устройства справедливо при питании платы от USB или от аккумулятора).

LilyPad Arduino USB также содержит микросхему MCP73831, управляющую процессом заряда LiPo-аккумулятора. Процесс заряда активизируется при подключении устройства с установленным аккумулятором к USB-порту компьютера, о чем будет свидетельствовать светодиод над словом "CHG". Подзарядка аккумулятора осуществляется вне зависимости от положения переключателя питания и автоматически прекращается, когда аккумулятор полностью заряжен.

Ниже перечислены выводы питания на плате:

  • "+". Стабилизированное напряжение 3.3В, используемое для питания микроконтроллера и других компонентов на плате. Поступает от встроенного стабилизатора напряжения, вход которого может быть подключен либо к USB, либо к аккумулятору. Напряжение на этом выводе присутствует только когда переключатель питания находится в положении "ON".
  • "-". Вывод земли.

Память

Объем памяти программ микроконтроллера ATmega32U4 составляет 32 КБ (из них 4 КБ отведены под загрузчик). Помимо этого, он имеет 2.5 КБ оперативной памяти SRAM и 1 КБ EEPROM (для взаимодействия с которой служит библиотека EEPROM).

Входы и выходы

С использованием функций pinMode()digitalWrite() и digitalRead() каждый из 9 цифровых выводов LilyPad Arduino USB может работать в качестве входа или выхода. Уровень напряжения на выводах ограничен 3.3В. Максимальный ток, который может отдавать или потреблять один вывод, составляет 40 мА. Все выводы сопряжены с внутренними подтягивающими резисторами (по умолчанию отключенными) номиналом 20-50 кОм. Помимо этого, некоторые выводы Ардуино могут выполнять дополнительные функции:

  • TWI: выводы 2 (SDA) и 3 (SCL). С использованием библиотеки Wire данные выводы позволяют осуществлять связь по интерфейсу TWI.
  • Внешние прерывания: выводы 2 и 3. Данные выводы могут быть сконфигурированы в качестве источников прерываний, возникающих при различных условиях: при низком уровне сигнала, по фронту, по спаду или при изменении сигнала. Для получения дополнительной информации см. функцию attachInterrupt().
  • ШИМ: выводы 3, 9, 10, 11 и 13. С помощью функции analogWrite() могут выводить 8-битные аналоговые значения в виде ШИМ-сигнала.
  • Светодиод: вывод 13. Встроенный светодиод, подсоединенный к выводу 13. При отправке значения HIGH светодиод включается, при отправке LOW - выключается.
  • Аналоговые входы: выводы A2 - A5. В LilyPad Arduino USB есть 4 аналоговых входа (A2 - A5), каждый из которых может использоваться как обычный цифровой вывод. Каждый из входов может представить аналоговое напряжение в виде 10-битного числа (1024 различных значения). По умолчанию, измерение напряжения осуществляется относительно диапазона от 0 до 3,3 В. Однако, верхнюю границу этого диапазона можно изменить, используя вывод AREF и функцию analogReference().

Смотрите также соответствие выводов Arduino и ATmega32u4

Связь

LilyPad Arduino USB предоставляет ряд возможностей для осуществления связи с компьютером, еще одним Ардуино или другими микроконтроллерами. Микроконтроллер 32U4 поддерживает последовательную (CDC) связь через USB и при подключении к компьютеру может определяться как виртуальный COM-порт. При этом микросхема использует стандартные USB-COM драйвера и может работать в режиме USB 2.0 Full Speed. На платформе Windows необходим только соответствующий .inf-файл. В пакет программного обеспечения Ардуино входит специальная программа, позволяющая считывать и отправлять на Ардуино простые текстовые данные. При передаче данных компьютеру через USB на плате будут мигать светодиоды RX и TX. 

Библиотека SoftwareSerial позволяет реализовать последовательную связь на любых цифровых выводах LilyPad.

В LilyPad Arduino USB также реализована поддержка последовательного интерфейса I2C (TWI). В программное обеспечение Ардуино входит библиотека Wire, позволяющая упростить работу с шиной I2C; для получения более подробной информации см.документацию

LilyPad Arduino USB может определяться как обычная клавиатура или мышь, и с помощью библиотек Keyboard и Mouse может быть запрограммирован на управление этими устройствами ввода.

Программирование

LilyPad Arduino USB программируется с помощью программного обеспечения Ардуино (скачать). Для этого из меню Tools > Board необходимо выбрать "LilyPad Arduino USB" с микроконтроллером, соответствующим вашей плате. Для получения более подробной информации см. справку и примеры.

ATmega32U4 в LilyPad Arduino USB выпускается с прошитым загрузчиком, позволяющим загружать в микроконтроллер новые программы без необходимости использования внешнего программатора. Взаимодействие с ним осуществляется по протоколу AVR109.

Тем не менее, микроконтроллер можно прошить и через контакты для внутрисхемного программирования ICSP (In-Circuit Serial Programming), не обращая внимания на загрузчик. Поскольку отверстия этих контактов слишком малы для подключения разъема, то для прошивки контроллера с помощью программатора можно поступить следующим образом: вставьте в ISP-разъем вашего программатора выводы типа "папа" и прижмите их к контактам ICSP на плате.

Автоматический (программный) сброс и запуск загрузчика

Чтобы каждый раз перед загрузкой программы не требовалось нажимать кнопку сброса, LilyPad Arduino USBспроектирован таким образом, который позволяет осуществлять его сброс программно с подключенного компьютера. Сброс срабатывает после закрытия виртуального COM-порта, который предварительно был открыт на скорости 1200 бод. При срабатывании этого условия, процессор сбросится, разорвав USB соединение с компьютером (при этом виртуальный COM-порт исчезнет). После перезагрузки процессора, запускается загрузчик, оставаясь активным на протяжение приблизительно 8 секунд. Помимо этого, инициировать загрузчик можно двойным нажатием кнопки сброса на плате LilyPad Arduino USB. Однократное нажатие кнопки приведет к сбросу микроконтроллера и выполнению загруженной программы. Обратите внимание, что при первом включении устройства вместо запуска загрузчика, контроллер также перейдет к выполнению пользовательской программы (если таковая есть).

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

Физические характеристики

Печатная плата LilyPad Arduino USB имеет форму круга диаметром около 50мм (2"). Разъем microUSB слегка выступает за пределы этого диаметра. Толщина самой платы составляет 0.8мм (1/32"), а общая высота с учетом всех компонентов (самым высоким из которых является JST-разъем для подключения аккумулятора) - 6.5мм (1/4").