Arduino Due. Описание, характеристики, распиновка, схема.

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).

Дополнительные материалы по теме.
arduino ide библиотеки
arduino 1.8.13 windows. Установка arduino ide
Arduino NANO shield
Аналоговые порты Arduino
Arduino Nano ATmega168
Arduino Nano загрузка скетча
Arduino Nano v3 распиновка
Arduino Nano v 3.0 ch340g
Arduino Nano шим
Arduino Nano выходы
Arduino Nano datasheet
Arduino Nano описание
Ардуино Нано. Описание, характеристики, распиновка, схема.