Arduino Micro
Arduino Micro - вид спереди | Arduino Micro - вид сзади |
Общие сведения
Arduino Micro - это устройство на основе микроконтроллера ATmega32u4 (datasheet), разработанное совместно с Adafruit. В его состав входит все необходимое для удобной работы с микроконтроллером: 20 цифровых входов/выходов (из них 7 могут использоваться в качестве ШИМ-выходов, 12 - в качестве аналоговых входов), кварцевый резонатор на 16 МГц, разъем micro-USB, разъем ICSP для внутрисхемного программирования и кнопка сброса. Для начала работы с устройством достаточно просто подключить его к компьютеру посредством USB-кабеля. Устройство разработано таким образом, чтобы его можно было удобно размещать на макетной плате.
Как и в Leonardo, в Arduino Micro используется микропроцессор ATmega32u4 со встроенным контроллером USB. Такое решение исключает необходимость использования дополнительного контроллера, и при подключении к компьютеру позволяет Ардуино Micro определяться в системе как обычная мышь, клавиатура или виртуальный COM-порт. Помимо этого, использование данного микроконтроллера оказывает влияние на поведение платы, о чем подробнее описано на странице "Начало работы".
Характеристики
Микроконтроллер | ATmega32u4 |
Рабочее напряжение | 5В |
Напряжение питания (рекомендуемое) | 7-12В |
Напряжение питания (предельное) | 6-20В |
Цифровые входы/выходы | 20 |
Каналы ШИМ | 7 |
Аналоговые входы | 12 |
Максимальный ток одного вывода | 40 мА |
Максимальный выходной ток вывода 3.3V | 50 мА |
Flash-память | 32 КБ (ATmega32u4) из которых 4 КБ используются загрузчиком |
SRAM | 2.5 КБ (ATmega32u4) |
EEPROM | 1 КБ (ATmega32u4) |
Тактовая частота | 16 МГц |
Схема и исходный проект
Файлы EAGLE: arduino-micro-reference-design.zip
Схема: arduino-micro-schematic-rev3b.pdf
Питание
Arduino Micro может быть запитан через USB или от внешнего источника питания - тип источника выбирается автоматически.
В качестве внешнего источника питания (не USB) может использоваться любой источник питания постоянного тока (DC) или обычный аккумулятор/батарея. Для этого выводы аккумулятора или DC-источника питания необходимо подсоединить к выводам Gnd и Vin.
Напряжение внешнего источника питания может быть в пределах от 6 до 20 В. Однако, уменьшение напряжения питания ниже 7В приводит к уменьшению напряжения на выводе 5V, что может стать причиной нестабильной работы устройства. Использование напряжения больше 12В может приводить к перегреву стабилизатора напряжения и выходу платы из строя. С учетом этого, рекомендуется использовать источник питания с напряжением в диапазоне от 7 до 12В.
Основные выводы питания перечислены ниже:
- VIn. Напряжение, поступающее в Arduino непосредственно от внешнего источника питания (не связано с 5В от USB или другим стабилизированным напряжением). Через этот вывод можно подавать внешнее питание.
- 5V. Стабилизированный источник напряжения, используемый для питания микроконтроллера и других компонентов устройства. Это напряжение может поступать как от встроенного стабилизатора напряжения Vin, так и от USB или другого стабилизированного источника питания на 5В.
- 3V. Питание 3.3В, формируемое встроенным стабилизатором напряжения. Максимальный выходной ток этого вывода составляет 50 мА.
- Gnd Выводы земли.
Память
Объем памяти программ микроконтроллера ATmega32U4 составляет 32 КБ (из них 4 КБ отведены под загрузчик). Помимо этого, он имеет 2.5 КБ оперативной памяти SRAM и 1 КБ EEPROM (для взаимодействия с которой служит библиотека EEPROM).
Входы и выходы
С использованием функций pinMode(), digitalWrite() и digitalRead() каждый из 20 цифровых выводов может работать в качестве входа или выхода. Рабочее напряжение выводов составляет 5В. Максимальный ток, который может отдавать или потреблять один вывод, равен 40 мА. Все выводы сопряжены с внутренними подтягивающими резисторами (по умолчанию отключенными) номиналом 20-50 кОм. Помимо основных, некоторые выводы Ардуино могут выполнять дополнительные функции:
- Последовательный интерфейс: выводы 0 (RX) и 1 (TX). Используются для получения (RX) и передачи (TX) данных по последовательному интерфейсу посредством аппаратного приемопередатчика, встроенного в ATmega32U4. Обратите внимание, что в Arduino Micro класс Serial отвечает за передачу данных через USB (CDC)-соединение; для передачи данных через выводы 0 и 1 необходимо использовать класс Serial1.
- TWI: выводы 2 (SDA) и 3 (SCL). С использованием библиотеки Wire данные выводы позволяют осуществлять связь по интерфейсу TWI.
- Внешние прерывания: выводы 0 (RX), 1 (TX), 2 и 3. Данные выводы могут быть сконфигурированы в качестве источников прерываний, возникающих при различных условиях: при низком уровне сигнала, по фронту, по спаду или при изменении сигнала. Для получения дополнительной информации см. функцию attachInterrupt().
- ШИМ: выводы 3, 5, 6, 9, 10, 11 и 13. С помощью функции analogWrite() могут выводить 8-битные аналоговые значения в виде ШИМ-сигнала.
- Интерфейс SPI: выводы разъема ICSP. C использованием библиотеки SPI данные выводы позволяют осуществлять связь по интерфейсу SPI. Обратите внимание, что в Arduino Micro линии SPI выведены только на разъем ICSP и на отдельные выводы MISO, MOSI и SCK, расположенные рядом с ним. При этом они не соединены с цифровыми выводами платы, как на Arduino Uno.
- RX_LED/SS. Это дополнительный вывод, которого не было в Arduino Leonardo. Он соединен со светодиодом RX_LED, индицирующим процесс передачи данных через USB. Однако вместе с тем, он может также использоваться в качестве вывода SS при работе с SPI-интерфейсом.
- Светодиод: вывод 13. Встроенный светодиод, подсоединенный к выводу 13. При отправке значения HIGH светодиод включается, при отправке LOW - выключается.
- Аналоговые входы: выводы A0 - A5, A6 - A11 (на цифровых выводах 4, 6, 8, 9, 10 и 12). В Arduino Micro всего есть 12 аналоговых входов: A0 - A5 (отмечены непосредственно на плате) и A6 - A11 (расположены на цифровых выводах 4, 6, 8, 9, 10 и 12 соответственно). Для обращения к этим выводам в программе можно использовать константы A0 - A11. Каждый из входов может представить аналоговое напряжение в виде 10-битного числа (1024 различных значения). По умолчанию, измерение напряжения осуществляется относительно диапазона от 0 до 5 В. Однако, верхнюю границу этого диапазона можно изменить, используя вывод AREF и функцию analogReference().
Помимо перечисленных на плате существует еще несколько выводов:
- AREF. Опорное напряжение для аналоговых входов. Может задействоваться функцией analogReference().
- Reset. Формирование низкого уровня (LOW) на этом выводе приведет к перезагрузке микроконтроллера. Обычно этот вывод служит для функционирования кнопки сброса на платах расширения.
Расположение выводов
Распиновка иллюстрирует функциональные возможности всех выводов Arduino Micro, что также позволяет использовать его как Arduino Leonardo.
Смотрите также соответствие выводов Arduino и ATmega32U4.
Связь
Arduino Micro предоставляет ряд возможностей для осуществления связи с компьютером, еще одним Ардуино или другими микроконтроллерами. В ATmega32U4 имеется приемопередатчик UART, позволяющий осуществлять связь по последовательным интерфейсам посредством цифровых выводов 0 (RX) и 1 (TX). Микроконтроллер 32U4 поддерживает последовательную (CDC) связь через USB и при подключении к компьютеру может определяться как виртуальный COM-порт. При этом микросхема использует стандартные USB-COM драйвера и может работать в режиме USB 2.0 Full Speed. На платформе Windows необходим только соответствующий .inf-файл. В пакет программного обеспечения Ардуино входит специальная программа, позволяющая считывать и отправлять на Ардуино простые текстовые данные. При передаче данных компьютеру через USB на плате будут мигать светодиоды RX и TX. (При последовательной передаче данных посредством выводов 0 и 1 данные светодиоды не задействуются).
Библиотека SoftwareSerial позволяет реализовать последовательную связь на любых цифровых выводах Micro.
В микроконтроллере ATmega32U4 также реализована поддержка последовательных интерфейсов I2C (TWI) и SPI. В программное обеспечение Ардуино входит библиотека Wire, позволяющая упростить работу с шиной I2C; для получения более подробной информации см.соотетствующую документацию. Для работы с интерфейсом SPI используйте библиотеку SPI.
Micro может определяться как обычная клавиатура или мышь, и с помощью библиотек Keyboard и Mouse может быть запрограммирован на управление этими устройствами ввода.
Программирование
Arduino Micro программируется с помощью программного обеспечения Ардуино (скачать). Для этого из меню Tools > Board необходимо выбрать "Arduino Micro". Для получения более подробной информации см. справку и примеры.
ATmega32U4 в Arduino Leonardo выпускается с прошитым загрузчиком, позволяющим загружать в микроконтроллер новые программы без необходимости использования внешнего программатора. Взаимодействие с ним осуществляется по протоколу AVR109.
Тем не менее, микроконтроллер можно прошить и через разъем для внутрисхемного программирования ICSP (In-Circuit Serial Programming), не обращая внимания на загрузчик; более подробно об этом см. соответствующие инструкции.
Автоматический (программный) сброс и запуск загрузчика
Чтобы каждый раз перед загрузкой программы не требовалось нажимать кнопку сброса, Micro спроектирован таким образом, который позволяет осуществлять его сброс программно с подключенного компьютера. Сброс срабатывает после закрытия виртуального COM-порта, который предварительно был открыт на скорости 1200 бод. При срабатывании этого условия, процессор сбросится, разорвав USB соединение с компьютером (при этом виртуальный COM-порт исчезнет). После перезагрузки процессора, запускается загрузчик, оставаясь активным на протяжение приблизительно 8 секунд. Помимо этого, инициировать загрузчик можно, нажав кнопку сброса на плате Micro. Обратите внимание, что при первом включении устройства вместо запуска загрузчика, контроллер сразу перейдет к выполнению пользовательской программы (если таковая есть).
Из-за особенностей механизма сброса Micro, рекомендуется предоставлять программному обеспечению Ардуино возможность осуществить сброс перед загрузкой программы, особенно, если вы привыкли нажимать кнопку сброса при прошивке других плат. Если же программное обеспечение не сможет сбросить устройство, вы всегда сможете запустить загрузчик, нажав кнопку сброса вручную.
Защита USB от перегрузок
В Arduino Micro есть восстанавливаемые предохранители, защищающие USB-порт компьютера от коротких замыканий и перегрузок. Несмотря на то, что большинство компьютеров имеют собственную защиту, такие предохранители обеспечивают дополнительный уровень защиты. Если от USB-порта потребляется ток более 500 мА, предохранитель автоматически разорвет соединение до устранения причин короткого замыкания или перегрузки.
Физические характеристики
Максимальная длина и ширина печатной платы Micro составляет 4.8 см и 1.77 см соответственно, с учетом разъема USB, выступающего за пределы платы. Печатная плата устройства спроектирована таким образом, чтобы его можно было удобно размещать на беспаечной макетной плате.