Arduino Leonardo

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

Плата Arduino Leonardo построена на микроконтроллере ATmega32u4. Платформа имеет 20 цифровых вход/выходов (7 из которых могут использоваться как выходы ШИМ  и 12 как аналоговые входы), кварцевый генератор 16 МГц, разъем микро-USB, силовой разъём, разъём ICSP и кнопку перезагрузки. Для работы необходимо подключить платформу к компьютеру с помощью кабеля USB, либо подать питание при помощи адаптера AC/DC или батареи.

В отличие от всех предыдущих плат ATmega32u4 имеет встроенную поддержку для USB соединения, это позволяет задать как Leonardo будет виден при подключение к компьютеру. Это может быть клавиатура, мышь, виртуальный  COM порт.

Даташит на микроконтроллер  ATmega32u .

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

Микроконтроллер
ATmega32u4
Рабочее напряжение
5 В
Входное напряжение (рекомендуемое)
7-12 В
Входное напряжение (предельное)
6-20 В
Цифровые Входы/Выходы
20 (7 из которых могут использоваться как выходы ШИМ)
Аналоговые каналы
12
Постоянный ток через вход/выход
40 мА
Постоянный ток для вывода 3.3 В
50 мА
Флеш-память
32 Кб (ATmega32u4) из которых 4 Кб используются для загрузчика
ОЗУ
2 Кб (ATmega32u4)
EEPROM
1 Кб (ATmega32u4)
Тактовая частота
16 МГц

Питание

Arduino Leonardo может получать питание через подключение USB или от внешнего источника питания. Источник питания выбирается автоматически.

Внешнее питание (не USB) может подаваться через преобразователь напряжения AC/DC (блок питания) или аккумуляторной батареей. Преобразователь напряжения подключается посредством разъема 2.1 мм с центральным положительным полюсом. Провода от батареи подключаются к выводам Gnd и Vin разъема питания.

Платформа может работать при внешнем питании от 6 В до 20 В. При напряжении питания ниже 7 В, вывод 5V может выдавать менее 5 В, при этом платформа может работать нестабильно. При использовании напряжения выше 12 В регулятор напряжения может перегреться и повредить плату. Рекомендуемый диапазон от 7 В до 12 В.

Выводы питания:

  • VIN - вход используется для подачи питания от внешнего источника (в отсутствие 5 В от разъема USB или другого регулируемого источника питания). Подача напряжения питания происходит через данный вывод.
  • 5V - регулируемый источник напряжения, используемый для питания микроконтроллера и компонентов на плате. Питание может подаваться от вывода VIN через регулятор напряжения, или от разъема USB, или другого регулируемого источника напряжения 5 В.
  • 3V3 - напряжение на выводе 3.3 В генерируемое встроенным регулятором на плате. Максимальное потребление тока 50 мА.
  • GND - выводы заземления.
  • IOREF - вывод с рабочим напряжением вход/выходов платы. Для Leonardo это 5 В. Предполагается к использованию платами расширения для правильноего выбора рабочего напряжения.

Память

Микроконтроллер ATmega32u4 имеет 32 кБ флэш памяти, из которых 4 кБ используется для хранения загрузчика, а также 2,5 кБ ОЗУ (SRAM) и 1 Кб EEPROM, которая читается и записывается с помощью библиотеки EEPROM.

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

Каждый из 20 цифровых выводов Leonardo может настроен как вход или выход, используя функции pinMode(), digitalWrite(), и digitalRead(). Выводы работают при напряжении 5 В. Каждый вывод имеет нагрузочный резистор (по умолчанию отключен) 20-50 кОм и может пропускать до 40 мА. Некоторые выводы имеют особые функции:

  • последовательная шин:0 (RX) и 1 (TX)выводы используются для получения (RX) и передачи (TX) данных TTL. Данные выводы подключены к соответствующим выводам микросхемы последовательной шины ATmega32U4 USB-to-TTL
  • TWI: 2 (SDA) и 3 (SCL)- через эти выводы осуществляется связь I2C (TWI) c использованием библиотеки Wire
  • внешнее прерывание: 2 и 3 - выводы могут быть сконфигурированы на вызов прерывания на младшем значении, на переднем или заднем фронте или при изменении значения. Подробная информация находится в описании функции attachInterrupt()
  • ШИМ: 3, 5, 6, 9, 10, 11 и 13 - любой из этих выводов обеспечивает ШИМ с разрешением 8 бит при помощи функции analogWrite()
  • SPI на разъеме ICSP - эти выводы осуществляют связь SPI, для чего используется библиотека SPI. В Arduino Leonardo выводы SPI не разведены на цифровые входы/выходы как это было в предыдущих версиях Arduino контроллеров
  • LED 13 - встроенный светодиод, подключенный к цифровому выводу 13. Если значение на выводе имеет высокий потенциал, то светодиод горит
  • аналоговые входы A0-A5, A6-A11 (на цифровых выводах 4, 6, 8, 9, 10 и 12).  Leonardo имеет 12 аналоговых входов, помеченных от A0 до A11. Все аналоговые входы могут работать в режиме цифровых входов\выходов. Входы с A0 по A5 совпадают с аналоговыми входами UNO. Входы с A6 по A11 на цифровых выводах 4, 6, 8, 9, 10 и 12 соответственно. Разрешение аналоговых входов — 10 бит, т.е. 1024 различных значения. По умолчанию значение на аналоговых входах измеряется от 0 до +5 В, верхний предел диапазона может быть изменен с помощью AREF входа и функции analogReference().

Дополнительная пара выводов платформы:

  • AREF - опорное напряжение для аналоговых входов. Используется с функцией analogReference()
  • Reset - низкий уровень сигнала на выводе перезагружает микроконтроллер. Обычно применяется для подключения кнопки перезагрузки на плате расширения, закрывающей доступ к кнопке на плате Arduino Leonardo.

Диаграмма выводов (pinout) Arduino Leonardo
Диаграмма выводов (pinout) Arduino Leonardo

Связь

Arduino Leonardo может устанавливать связь с компьютером, другими устройствами Arduino или микроконтроллерами несколькими способами. ATmega32U4 поддерживают последовательный интерфейс UART TTL (5 В), осуществляемый выводами 0 (RX) и 1 (TX). ATmega32U4 также позволяет организовать последовательное соединение с программами на стороне компьютера через USB так, чтобы они "общались" с платой через виртуальный COM порт. С помощью стандартных драйверов USB-COM (для Windows потребуется .inf файл), Leonardo может подключаться как USB 2.0 устройство. Мониторинг последовательной шины (Serial Monitor) среды разработки Arduino позволяет посылать и получать текстовые данные при подключении к Leonardo. Светодиоды RX и TX на платформе будут мигать при передаче данных через USB подключение (но не при использовании последовательной передачи через выводы 0 и 1).

Возможно создать последовательную передачу данных через любой из цифровых выводов Leonardo с помощью библиотеки SoftwareSerial.

При подключение к компьютеру Arduino Leonardo может определяться как устройство мышь или клавиатура. Управление этим режимом осуществляется через классы Keyboard и Mouse.

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

Плата программируется посредством ПО Arduino IDE. Из меню Настройки -> Платы выбирается «Arduino Leonardo».  Подробная  информация  находится в справочнике и инструкциях.

Микроконтроллер ATmega32U4 на Leonardo поставляется с записанным загрузчиком, позволяющим записывать новые программы без использования внешних программаторов. Связь осуществляется по протоколу AVR109.

Можно не использовать загрузчик и запрограммировать микроконтроллер ATmega32U4 через выводы ICSP (внутрисхемное программирование). Подробная информация находится в данной инструкции.

Программная перезагрузка и запуск загрузчика

Leonardo разработана таким образом, чтобы перед записью нового кода перезагрузка осуществлялась самой программой Arduino на компьютере, а не нажатием кнопки на платформе. Перезагрузка срабатывает когда виртуальный COM порт открывается со скоростью 1200 бод, а затем закрывается. Когда это происходит, микропроцессор перезагружается, разрывая USB соединение. После перезагрузки стартует загрузчик (bootloader) и остается активным примерно 8 секунд. Загрузчик также можно запустить, нажав кнопку сброса на Leonardo. Обратите внимание, что при подачи питания контроллер сразу переходит к выполнению загруженной пользовательской программы (если она есть) без выполнения загрузчика.

Токовая защита разъема USB

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

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

Размеры печатной платы Arduino Leonardo составляют 68,6 на 53,34 мм. Разъем USB и гнездо питания выходят за пределы данных размеров. Четыре отверстия в плате позволяют закрепить ее на поверхности. Расстояние между цифровыми выводами 7 и 8 равняется 4,06 мм, хотя между другими выводами оно составляет 2,54 мм.