Arduino Mega ADK Rev3
Примечание
Данная страница описывает продукт, снятый с производства.
Arduino Mega ADK имеет те же возможности, что и плата Arduino Mega, но специально разработан для работы с Android.
Arduino MEGA ADK — плата микроконтроллера на базе ATmega2560. Она имеет интерфейс USB-хост для подключения к телефонам на базе Android на основе микросхемы MAX3421e. Плата имеет 54 цифровых входа/выхода (из которых 15 могут использоваться как выходы ШИМ), 16 аналоговых входов, 4 UART (аппаратных последовательных порта), кварцевый генератор 16 МГц, USB-подключение, разъём питания, разъём ICSP и кнопку сброса.
MEGA ADK основан на Mega 2560.
Аналогично Mega 2560 и Uno, он оснащён ATmega8U2, запрограммированным как преобразователь USB-в-последовательный порт.
Ревизия 2 платы Mega ADK имеет резистор, подтягивающий линию HWB 8U2 к земле, что облегчает перевод в режим DFU.
Ревизия 3 платы имеет следующие новые функции:
Распиновка 1.0: добавлены выводы SDA и SCL рядом с выводом AREF и два других новых вывода рядом с выводом RESET — IOREF, позволяющий шилдам адаптироваться к напряжению, предоставляемому платой. В будущем шилды будут совместимы как с платами на AVR, работающими при 5 В, так и с Arduino Due, работающим при 3,3 В. Второй — неподключённый вывод, зарезервированный для будущих целей.
Более надёжная схема RESET.
Начало работы
В разделе Начало работы вы можете найти всю информацию, необходимую для настройки платы, использования Arduino Software (IDE) и начала работы с кодом и электроникой.
Документация
OSH: Схемы
Arduino Mega ADK — оборудование с открытым исходным кодом! Вы можете собрать свою собственную плату, используя следующие файлы:
Питание
Arduino MEGA ADK может питаться через USB-подключение или от внешнего источника питания. Источник питания выбирается автоматически.
Внешнее (не USB) питание может поступать от адаптера переменного тока в постоянный (сетевой адаптер) или от батареи. Адаптер подключается через штекер 2,1 мм с положительным центром в разъём питания платы. Провода от батареи могут быть вставлены в контакты Gnd и Vin разъёма POWER.
Примечание
Поскольку MEGA ADK является USB-хостом, телефон будет пытаться потреблять от него питание, когда ему необходима зарядка. При питании ADK через USB доступно 500 мА на телефон и плату. Внешний регулятор питания может обеспечить до 1500 мА. 750 мА доступно для телефона и платы MEGA ADK. Дополнительные 750 мА выделены для исполнительных устройств и датчиков, подключённых к плате. Блок питания должен обеспечивать 1,5 А для использования такого тока.
Плата может работать от внешнего источника питания от 5,5 до 16 вольт. Если напряжение питания менее 7 В, вывод 5V может выдавать менее пяти вольт, и плата может работать нестабильно. При использовании более 12 В регулятор напряжения может перегреться и повредить плату. Рекомендуемый диапазон — от 7 до 12 вольт.
Выводы питания:
VIN. Входное напряжение платы Arduino при использовании внешнего источника питания (в отличие от 5 вольт от USB-подключения или другого регулируемого источника питания). Вы можете подавать напряжение через этот вывод или, если напряжение подаётся через разъём питания, получать к нему доступ через этот вывод.
5V. Этот вывод выдаёт стабилизированные 5 В от регулятора на плате. Плата может питаться от разъёма питания постоянного тока (7–12 В), USB-разъёма (5 В) или вывода VIN платы (7–12 В). Подача напряжения через выводы 5V или 3.3V обходит регулятор и может повредить плату. Мы не рекомендуем этого делать.
3V3. Источник питания 3,3 вольта, генерируемый встроенным регулятором. Максимальный потребляемый ток — 50 мА.
GND. Выводы заземления.
IOREF. Этот вывод на плате Arduino предоставляет опорное напряжение, при котором работает микроконтроллер. Правильно сконфигурированный шилд может считать напряжение с вывода IOREF и выбрать соответствующий источник питания или включить преобразователи уровня на выходах для работы с 5 В или 3,3 В.
Память
MEGA ADK имеет 256 КБ флеш-памяти для хранения кода (из которых 8 КБ используются загрузчиком), 8 КБ SRAM и 4 КБ EEPROM (которую можно читать и записывать с помощью библиотеки EEPROM).
Входы и выходы
Каждый из 50 цифровых выводов MEGA ADK может использоваться как вход или выход с помощью функций pinMode(), digitalWrite() и digitalRead(). Они работают при напряжении 5 вольт. Каждый вывод может обеспечить или принять максимум 40 мА и имеет внутренний подтягивающий резистор (отключённый по умолчанию) 20–50 кОм. Кроме того, некоторые выводы имеют специализированные функции:
Serial: 0 (RX) и 1 (TX); Serial 1: 19 (RX) и 18 (TX); Serial 2: 17 (RX) и 16 (TX); Serial 3: 15 (RX) и 14 (TX). Используются для приёма (RX) и передачи (TX) последовательных данных TTL. Выводы 0 и 1 также подключены к соответствующим выводам микросхемы ATmega8U2 USB-to-TTL Serial.
Внешние прерывания: 2 (прерывание 0), 3 (прерывание 1), 18 (прерывание 5), 19 (прерывание 4), 20 (прерывание 3) и 21 (прерывание 2). Эти выводы могут быть сконфигурированы для срабатывания прерывания по низкому уровню, по нарастающему или спадающему фронту, или по изменению значения. Подробнее см. функцию attachInterrupt().
ШИМ: 2–13 и 44–46. Обеспечивают 8-битный выход ШИМ с помощью функции analogWrite().
SPI: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS). Эти выводы поддерживают связь SPI с помощью библиотеки SPI. Выводы SPI также выведены на разъём ICSP, который физически совместим с Uno, Duemilanove и Diecimila.
USB-хост: MAX3421E.
MAX3421E взаимодействует с Arduino по шине SPI. Поэтому он использует следующие выводы:
Цифровые: 7 (RST), 50 (MISO), 51 (MOSI), 52 (SCK).
Предупреждение
Пожалуйста, не используйте цифровой вывод 7 как вход или выход, поскольку он используется для связи с MAX3421E.
Не выведенные на разъёмы: PJ3 (GP_MAX), PJ6 (INT_MAX), PH7 (SS).
LED: 13. Встроенный светодиод подключён к цифровому выводу 13. Когда вывод имеет значение HIGH, светодиод горит, когда вывод имеет значение LOW — он выключен.
TWI: 20 (SDA) и 21 (SCL). Поддерживают связь TWI с помощью библиотеки Wire. Обратите внимание, что эти выводы расположены не в том же месте, что выводы TWI на Duemilanove или Diecimila.
MEGA ADK имеет 16 аналоговых входов, каждый из которых обеспечивает 10 бит разрешения (т.е. 1024 различных значения). По умолчанию они измеряют от земли до 5 вольт, хотя можно изменить верхний предел их диапазона с помощью вывода AREF и функции analogReference().
Также на плате есть несколько других выводов:
AREF. Опорное напряжение для аналоговых входов. Используется с analogReference().
Reset. Подайте LOW на эту линию для сброса микроконтроллера. Обычно используется для добавления кнопки сброса на шилды, которые блокируют кнопку на плате.
Связь
Arduino MEGA ADK имеет ряд средств для связи с компьютером, другой Arduino или другими микроконтроллерами. ATmega2560 предоставляет четыре аппаратных UART для последовательной связи TTL (5 В). ATmega8U2 на плате направляет один из них через USB и предоставляет виртуальный COM-порт для программного обеспечения на компьютере (машинам Windows потребуется .inf файл, но машины OSX и Linux распознают плату как COM-порт автоматически). Программное обеспечение Arduino включает монитор последовательного порта, который позволяет отправлять и получать простые текстовые данные с платы. Светодиоды RX и TX на плате будут мигать при передаче данных через микросхему ATmega8U2/16U2 и USB-подключение к компьютеру (но не при последовательной связи через выводы 0 и 1).
Библиотека SoftwareSerial позволяет осуществлять последовательную связь на любом из цифровых выводов MEGA ADK.
ATmega2560 также поддерживает связь TWI и SPI. Программное обеспечение Arduino включает библиотеку Wire для упрощения использования шины TWI; подробнее см. библиотеку Wire. Для связи SPI используйте библиотеку SPI.
Интерфейс USB-хост, предоставляемый микросхемой MAX3421E, позволяет Arduino MEGA ADK подключаться и взаимодействовать с любым типом устройств, имеющих USB-порт. Например, он позволяет взаимодействовать со многими типами телефонов, управлять камерами Canon, работать с клавиатурой, мышью и игровыми контроллерами, такими как Wiimote и PS3.
Программирование
Arduino MEGA ADK можно программировать с помощью программного обеспечения Arduino (скачать). Подробнее см. справочник и руководства.
ATmega2560 на Arduino MEGA ADK поставляется с предустановленным загрузчиком (таким же, как на Mega 2560), который позволяет загружать новый код без использования внешнего программатора. Он обменивается данными с использованием оригинального протокола STK500v2 (справочник, заголовочные файлы C).
Вы также можете обойти загрузчик и программировать микроконтроллер через разъём ICSP (внутрисхемное последовательное программирование) с помощью Arduino ISP или аналогичного; подробнее см. эти инструкции.
Исходный код прошивки ATmega8U2 доступен в репозитории Arduino. ATmega8U2 загружен с загрузчиком DFU, который можно активировать:
На платах Rev1: замкнув паяльную перемычку на задней стороне платы (рядом с картой Италии), а затем сбросив 8U2.
На платах Rev2 и более поздних: имеется резистор, подтягивающий линию HWB 8U2/16U2 к земле, что облегчает перевод в режим DFU. Затем вы можете использовать программу Atmel FLIP (Windows) или DFU programmer (Mac OS X и Linux) для загрузки новой прошивки. Или вы можете использовать разъём ISP с внешним программатором (перезаписав загрузчик DFU).
Автоматический (программный) сброс
Вместо физического нажатия кнопки сброса перед загрузкой, Arduino MEGA ADK спроектирован таким образом, что позволяет выполнять сброс программно с компьютера. Одна из линий управления потоком (DTR) ATmega8U2 подключена к линии сброса ATmega2560 через конденсатор 100 нанофарад. Когда эта линия активируется (устанавливается в LOW), линия сброса падает на достаточное время для сброса микросхемы. Программное обеспечение Arduino использует эту возможность для загрузки кода простым нажатием кнопки загрузки в среде Arduino. Это означает, что загрузчик может иметь более короткий тайм-аут, поскольку понижение DTR может быть хорошо скоординировано с началом загрузки.
Эта настройка имеет и другие последствия. Когда MEGA ADK подключён к компьютеру с Mac OS X или Linux, он сбрасывается каждый раз при установлении соединения с ним из программного обеспечения (через USB). В течение следующей половины секунды или около того загрузчик работает на MEGA ADK. Хотя он запрограммирован игнорировать некорректные данные (т.е. всё, кроме загрузки нового кода), он перехватит первые несколько байтов данных, отправленных на плату после открытия соединения. Если скетч, работающий на плате, получает одноразовую конфигурацию или другие данные при первом запуске, убедитесь, что программное обеспечение, с которым он взаимодействует, ждёт секунду после открытия соединения и перед отправкой этих данных.
MEGA ADK содержит дорожку, которую можно перерезать для отключения автосброса. Контактные площадки по обе стороны дорожки можно спаять вместе для повторного включения. Она обозначена «RESET-EN». Вы также можете отключить автосброс, подключив резистор 110 Ом от 5V к линии сброса.
Защита от перегрузки по USB
Arduino MEGA ADK имеет самовосстанавливающийся предохранитель, который защищает USB-порты вашего компьютера от коротких замыканий и перегрузок по току. Хотя большинство компьютеров обеспечивают собственную внутреннюю защиту, предохранитель обеспечивает дополнительный уровень защиты. Если на USB-порт подаётся более 500 мА, предохранитель автоматически разорвёт соединение до устранения короткого замыкания или перегрузки.
Физические характеристики и совместимость с шилдами
Максимальная длина и ширина печатной платы MEGA ADK составляют 4 и 2,1 дюйма соответственно, при этом USB-разъём и разъём питания выступают за пределы первого размера. Три отверстия для винтов позволяют прикрепить плату к поверхности или корпусу. Обратите внимание, что расстояние между цифровыми выводами 7 и 8 составляет 160 мил (0,16»), что не является чётным кратным шага 100 мил остальных выводов.
MEGA ADK разработан для совместимости с большинством шилдов, предназначенных для Uno, Diecimila или Duemilanove. Цифровые выводы с 0 по 13 (и смежные выводы AREF и GND), аналоговые входы с 0 по 5, разъём питания и разъём ICSP расположены в эквивалентных местах. Кроме того, основной UART (последовательный порт) расположен на тех же выводах (0 и 1), как и внешние прерывания 0 и 1 (выводы 2 и 3 соответственно). SPI доступен через разъём ICSP как на MEGA ADK, так и на Duemilanove / Diecimila.
Примечание
Обратите внимание, что I2C расположен не на тех же выводах на MEGA ADK (20 и 21), что на Duemilanove / Diecimila (аналоговые входы 4 и 5).
Технические характеристики
Микроконтроллер |
ATmega2560 |
Рабочее напряжение |
5 В |
Входное напряжение (рекомендуемое) |
7–12 В |
Входное напряжение (предельное) |
6–20 В |
Цифровые выводы ввода/вывода |
54 (из которых 15 обеспечивают выход ШИМ) |
Аналоговые входы |
16 |
Постоянный ток на вывод |
40 мА |
Постоянный ток на вывод 3,3 В |
50 мА |
Флеш-память |
256 КБ, из которых 8 КБ используются загрузчиком |
SRAM |
8 КБ |
EEPROM |
4 КБ |
Тактовая частота |
16 МГц |
Микросхема USB-хост |
MAX3421E |
Длина |
101,52 мм |
Ширина |
53,3 мм |
Вес |
36 г |