Arduino Due. Описание, характеристики, распиновка, схема
Arduino Due представляет собой микроконтроллерную плату на основе процессора Atmel SAM3X8E ARM Cortex-M3.
Это первая плата Arduino, основанная на 32-битном ядре ARM-микроконтроллера.
У нее 54 цифровых входа/выхода (из которых 12 могут использоваться как выходы ШИМ), 12 аналоговых входов, 4 UART (аппаратных последовательных портов), тактовая частота 84 МГц, USB OTG, 2 ЦАП (цифро-аналоговых преобразователя), 2 TWI, разъем питания, SPI, JTAG, кнопка сброса и кнопка стирания.
Предупреждение: В отличие от большинства плат Arduino, плата Arduino Due работает на напряжении 3,3 В. Максимальное напряжение, которое могут выдержать входы/выходы (I/O) — 3,3 В.
Подача напряжения выше 3,3 В на любой вход/выход может повредить плату.
На плате содержится все необходимое для поддержки микроконтроллера, просто подключите ее к компьютеру с помощью микро-USB-кабеля или питайте ее от адаптера постоянного тока или аккумулятора, чтобы начать работу.
Due совместим с любыми шилдами Arduino, которые работают на 3,3 В и соответствуют 1.0 распиновке Arduino.
TWI: SDA и SCL, расположенные рядом с выводом AREF.
IOREF: позволяет подключенному шилду с правильной конфигурацией адаптироваться к напряжению, предоставленному платой. Это обеспечивает совместимость шилда с 3,3-вольтовой платой, такой как Due, и платами на основе AVR, работающими на 5 В.
Технические характеристики
| Параметр | Характеристика |
|---|---|
| Микроконтроллер | AT91SAM3X8E |
| Рабочее напряжение | 3,3 В |
| Рекомендуемое входное напряжение | 7-12 В |
| Пределы входного напряжения | 6-16 В |
| Цифровые входы/выходы | 54 (из них 12 поддерживают ШИМ) |
| Аналоговые входы | 12 |
| Аналоговые выходы | 2 (ЦАП) |
| Общий ток по всем цифровым выходам | 130 мА |
| Ток для пина 3,3 В | 800 мА |
| Ток для пина 5 В | 800 мА |
| Flash-память | 512 КБ (вся доступна для пользовательских приложений) |
| Оперативная память (SRAM) | 96 КБ (две банки: 64 КБ и 32 КБ) |
| Тактовая частота | 84 МГц |
| Длина | 101,52 мм |
| Ширина | 53,3 мм |
| Вес | 36 г |
Часто Задаваемые Вопросы (FAQs)
Питание
Arduino Due можно питать через USB-разъем или внешний источник питания, источник питания выбирается автоматически.
Внешнее (не по USB) питание может поступать от адаптера постоянного тока (стены) или от батареи. Адаптер можно подключить, вставив штекер с положительным центром 2,1 мм в разъем питания платы.
Провода от батареи могут быть вставлены в разъемы пинов Gnd и Vin блока питания.
Плата может работать от внешнего источника напряжением от 6 до 20 вольт. Однако при подаче менее 7 вольт на пин 5V может подаваться менее пяти вольт, и плата может работать нестабильной.
При использовании более 12 вольт регулятор напряжения может перегреться и повредить плату.
Рекомендуемый диапазон — от 7 до 12 вольт.
Питающие пины следующие:
Vin: Входное напряжение для платы Arduino, когда она использует внешний источник питания.
+5V: Этот пин выдает регулированные 5 вольт от регулятора на плате. Питание может поступать от разъема питания постоянного тока (7-12 вольт), USB-разъема (5 вольт) или пина VIN платы (7-12 вольт).
Подача напряжения через пины 5V или 3.3V обходит регулятор и может повредить вашу плату.
+3V3: Источник питания 3,3 вольта, генерируемый встроенным регулятором. Максимальный ток — 800 мА. Этот регулятор также обеспечивает питание микроконтроллера SAM3X.
GND: Пины Земля.
IOREF: Этот пин на плате Arduino предоставляет опорное напряжение, с которым работает микроконтроллер. Правильно настроенный шилд может считывать напряжение пина IOREF и выбирать соответствующий источник питания или включать трансляторы напряжения на выходах для работы с 5 вольтами или 3,3 вольтами.
Память
У SAM3X есть 512 КБ (2 блока по 256 КБ) флэш-памяти для хранения кода. Загрузчик предварительно записан на заводе от Atmel и хранится в специальной ROM-памяти.
Доступная SRAM составляет 96 КБ в двух смежных блоках: 64 КБ и 32 КБ. Вся доступная память (Flash, RAM и ROM) может быть использована напрямую как плоское адресное пространство.
Есть возможность стереть флэш-память SAM3X с помощью встроенной кнопки стирания. Это удалит текущую загруженную программу из МК. Чтобы выполнить стирание, удерживайте кнопку Erase в течение нескольких секунд при включенной плате.
Ввод и вывод
Цифровые входы/выходы: пины с 0 по 53
Каждый из 54 цифровых пинов на Due может использоваться как вход или выход с использованием функций pinMode(), digitalWrite() и digitalRead(). Они работают на уровне 3,3 вольта. Каждый пин может выдавать ток 3 мА или 15 мА, в зависимости от пина, или принимать ток 6 мА или 9 мА, в зависимости от пина. Они также имеют внутренний подтягивающий резистор (по умолчанию не подключен) сопротивлением 100 кОм.
Кроме того, некоторые пины имеют специализированные функции:
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 серийных данных (с уровнем 3,3 В).
Пины 0 и 1 подключены к соответствующим пинам чипа ATmega16U2 USB-to-TTL Serial.
PWM: Пины с 2 по 13. Предоставляют 8-битный PWM-выход с использованием функции analogWrite(). Разрешение PWM можно изменить с помощью функции analogWriteResolution().
SPI: SPI (ICSP на других платах Arduino). Эти пины поддерживают коммуникацию по SPI с использованием библиотеки SPI. Пины SPI выведены на центральный 6-контактный разъем, который физически совместим с Uno, Leonardo и Mega2560.
SPI можно использовать только для общения с другими устройствами по SPI, не для программирования SAM3X с использованием метода In-Circuit-Serial-Programming. SPI Due также имеет расширенные функции, которые можно использовать с расширенными методами SPI для Due.
CAN: CANRX и CANTX. Эти пины поддерживают протокол CAN, но пока не поддерживаются API Arduino.
«L» LED: 13. Есть встроенный светодиод, подключенный к цифровому пину 13. Когда пин в HIGH, светодиод включен, когда пин в LOW, он выключен. Его также можно затемнять, потому что цифровой пин 13 также является PWM-выходом.
TWI 1: 20 (SDA) и 21 (SCL)
TWI 2: SDA1 и SCL1.
Поддержка TWI-коммуникации с использованием библиотеки Wire.
SDA1 и SCL1 могут быть управляемы с использованием класса Wire1, предоставленного библиотекой Wire.
В то время как у SDA и SCL есть внутренние подтягивающие резисторы, SDA1 и SCL1 их не имеют.
Для использования Wire1 необходимо добавить два резистора pullup на линии SDA1 и SCL1.
Аналоговые входы: пины от A0 до A11. На Due есть 12 аналоговых входов, каждый из которых может предоставлять разрешение в 12 бит (т. е. 4096 различных значений). По умолчанию разрешение измерений установлено на 10 бит для совместимости с другими платами Arduino. Разрешение АЦП можно изменить с помощью функции analogReadResolution().
Аналоговые входы Due измеряются от 0 до максимального значения 3,3 В.
Подача напряжения более 3,3 В на пины Due повредит микросхему SAM3X.
Функция analogReference() не используется на Due.
Пин AREF подключен к аналоговому опорному пину SAM3X через мостовой резистор. Чтобы использовать пин AREF, резистор BR1 должен быть выпаян с платы.
Коммуникация
Arduino Due предоставляет ряд средств для взаимодействия с компьютером, другим Arduino или другими микроконтроллерами, а также с различными устройствами, такими как телефоны, планшеты, камеры и так далее.
SAM3X предоставляет один аппаратный UART и три аппаратных USART для TTL (3,3 В) последовательной коммуникации.
Программный порт подключен к ATmega16U2, который предоставляет виртуальный COM-порт для программного обеспечения на подключенном компьютере (для распознавания устройства на компьютерах с Windows потребуется файл .inf, но компьютеры с ОС OSX и Linux автоматически распознают плату как COM-порт).
16U2 также подключен к аппаратному UART SAM3X. Серийный порт на пинах RX0 и TX0 обеспечивает последовательную связь с USB для программирования платы через микроконтроллер ATmega16U2. Программное обеспечение Arduino включает серийный монитор, который позволяет отправлять и принимать простые текстовые данные от и к плате.
Светодиоды RX и TX на плате мигают при передаче данных через микросхему ATmega16U2 и USB-подключение к компьютеру (но не при последовательной коммуникации на пинах 0 и 1).
Нативный USB-порт подключен к SAM3X. Он обеспечивает последовательную (CDC) коммуникацию через USB. Это обеспечивает подключение к монитору последовательного порта или другим приложениям на вашем компьютере. Это также позволяет Arduino Due эмулировать USB-мышь или клавиатуру для подключенного компьютера.
Чтобы воспользоваться этими функциями, см. страницу справки по библиотеке Keyboard.
Нативный USB-порт также может действовать как USB-хост для подключенных периферийных устройств, таких как мыши, клавиатуры и смартфоны. Чтобы воспользоваться этими функциями, см. страницы справки по USBHost.
SAM3X поддерживает TWI и SPI коммуникацию. Программное обеспечение Arduino включает библиотеку Wire для упрощения использования шины TWI. см. документацию для получения подробной информации. Для SPI-коммуникации используйте библиотеку SPI.
Программирование
Плата Due может быть запрограммирована с использованием программы Arduino IDE.
Загрузка скетчей в SAM3X отличается от AVR-микроконтроллеров, используемых в других платах Arduino, поскольку перед повторной прошивкой необходимо стереть флэш-память. Загрузка в микросхему управляется ROM на SAM3X, который работает только тогда, когда флэш-память микросхемы пуста.
Любой из USB-портов можно использовать для программирования платы, хотя рекомендуется использовать порт программирования из-за способа обработки стирания микросхемы:
Порт программирования: Чтобы использовать этот порт, выберите «Arduino Due (ProgrammingPort)» в качестве вашей платы в Arduino IDE. Подключите порт программирования Due (ближайший к разъему постоянного тока) к вашему компьютеру. Порт программирования использует 16U2 в качестве USB-серийного чипа, подключенного к первому UART SAM3X (RX0 и TX0). 16U2 имеет два пина, подключенных к пинам Reset и Erase SAM3X. Открытие и закрытие порта программирования, подключенного при 1200 бод, запускает процедуру «жесткого стирания» микросхемы SAM3X, активируя пины Erase и Reset на SAM3X перед связью с UART. Этот порт рекомендуется для программирования Due. Он более надежен, чем «мягкое стирание», которое происходит на порту Native, и должен работать даже в случае сбоя основной МК.
Порт Native: Чтобы использовать этот порт, выберите «Arduino Due (NativeUSBPort)» в качестве вашей платы в Arduino IDE. Порт Native USB подключен напрямую к SAM3X. Подключите порт Native USB Due (ближайший к кнопке сброса) к вашему компьютеру. Открытие и закрытие порта Native при 1200 бод запускает процедуру «мягкого стирания»: флэш-память стирается, и плата перезапускается с загрузчиком.
Если МК вышел из строя по какой-то причине, вероятно, процедура мягкого стирания не сработает, так как эта процедура полностью выполняется программно на SAM3X. Открытие и закрытие порта Native с другой скоростью передачи не сбросит SAM3X.
В отличие от других плат Arduino, использующих avrdude для загрузки, Due зависит от bossac. Исходный код прошивки ATmega16U2 доступен в репозитории Arduino. Вы можете использовать ISP с внешним программатором (перезапись загрузчика DFU).
USB Защита от Перегрузки
У Arduino Due установлен сбрасываемый полимерный предохранитель, который защищает USB-порты вашего компьютера от короткого замыкания и перегрузок. Несмотря на то, что большинство компьютеров обеспечивают внутреннюю защиту, предохранитель предоставляет дополнительный уровень защиты. Если к USB-порту подается более 500 мА, предохранитель автоматически разорвет соединение до тех пор, пока короткое замыкание или перегрузка не будут устранены.
Физические Характеристики и Совместимость с шилдами
Максимальная длина и ширина платы Arduino Due составляют 4 и 2.1 дюйма соответственно, при этом разъемы USB и разъем питания выступают за пределы первого измерения. Три отверстия под винты позволяют закрепить плату на поверхности или в корпусе. Обратите внимание, что расстояние между цифровыми выводами 7 и 8 составляет 160 тысячных дюйма (0.16″), а не кратное 100 тысячным дюймам расстояние между другими выводами.
Arduino Due разработана для совместимости с большинством шилдов, предназначенных для Uno, Diecimila или Duemilanove.
Цифровые выводы с 0 по 13 (а также смежные выводы AREF и GND), аналоговые входы с 0 по 5, разъем питания и «ICSP» (SPI) разъем находятся в аналогичных местах. Кроме того, основной UART (серийный порт) расположен на тех же выводах (0 и 1).
Обратите внимание, что I2C не находится на тех же выводах, что и у Duemilanove / Diecimila (аналоговые входы 4 и 5).