Arduino Due — характеристики, распиновка и возможности

Arduino Due — первая плата Arduino на 32-битном микроконтроллере с ядром ARM: Atmel (Microchip) AT91SAM3X8E с ядром Cortex-M3, тактовой частотой 84 МГц, 512 КБ Flash и 96 КБ SRAM. Форм-фактор платы соответствует Arduino Mega: 54 цифровых вывода, 12 аналоговых входов, четыре аппаратных последовательных порта. Это не одноплатный компьютер: операционной системы нет, плата исполняет скетч, загруженный через Arduino IDE.

Ключевое отличие от других «больших» плат Arduino — логика 3,3 В вместо 5 В: выводы Due не рассчитаны на сигналы напряжением 5 В. Кроме того, на плате два 12-битных ЦАП (DAC0 и DAC1), два порта micro-USB (программирующий и Native USB с поддержкой OTG), два контроллера CAN в составе микроконтроллера и аппаратная поддержка DMA. Для проектов, где важны скорость обработки данных и объём памяти, Due предоставляет больше ресурсов, чем Arduino Mega 2560.

Это плата предыдущего поколения по сравнению с Arduino Uno R4 и некоторыми другими современными моделями, но она по-прежнему подходит для проектов, где нужны много выводов, два ЦАП и 32-битный микроконтроллер: от систем управления до генераторов сигналов.

Плата Arduino Due, вид сверху

Основные характеристики Arduino Due

  • Микроконтроллер: Atmel AT91SAM3X8E
  • Архитектура: ARM Cortex-M3, 32 бита
  • Тактовая частота: 84 МГц
  • Рабочее напряжение: 3,3 В
  • Входное напряжение (VIN): рекомендуется 7–12 В; допустимо 6–16 В
  • Цифровые выводы (I/O): 54, из них 12 поддерживают ШИМ (D2–D13)
  • Аналоговые входы: 12 (A0–A11), АЦП с разрешением до 12 бит; по умолчанию analogRead() использует 10 бит
  • Аналоговые выходы (ЦАП): 2 (DAC0 и DAC1), 12 бит; фактический диапазон напряжения — примерно 0,55–2,75 В
  • Суммарный ток всех цифровых выводов: не более 130 мА
  • Ток выводов питания 3,3 В и 5 В: до 800 мА для каждого выхода по спецификации Arduino; фактически доступный ток зависит от источника питания и общей нагрузки
  • Flash-память: 512 КБ, доступна для пользовательских программ; загрузчик находится в ROM микроконтроллера
  • SRAM: 96 КБ (два банка: 64 КБ и 32 КБ)
  • EEPROM: отсутствует
  • Интерфейсы: 4 аппаратных последовательных порта (UART/USART), 2 × I²C (TWI), SPI, CAN (выводы CANRX и CANTX; нужен внешний трансивер)
  • USB: два порта micro-USB: программирующий (через ATmega16U2) и Native USB с поддержкой OTG
  • Совместимость с шилдами: форм-фактор Arduino Mega; сигнальные уровни — 3,3 В
  • Размеры: 101,52 × 53,3 мм, масса около 36 г
  • Способ программирования: Arduino IDE (пакет Arduino SAM Boards)

Технические характеристики

Микроконтроллер

AT91SAM3X8E — 32-битный микроконтроллер на ядре ARM Cortex-M3, работающем на частоте 84 МГц. Для сравнения, ATmega2560 в Arduino Mega 2560 работает на частоте 16 МГц, однако соотношение тактовых частот не означает такого же соотношения производительности во всех задачах. В SAM3X8E входят 512 КБ Flash (два банка по 256 КБ), 96 КБ SRAM, аппаратные механизмы DMA, USB-контроллер с поддержкой OTG, два контроллера CAN, АЦП и два канала ЦАП. Рабочее напряжение микроконтроллера — 3,3 В.

⚠ Логика 3,3 В. Все цифровые и аналоговые выводы Arduino Due рассчитаны на сигналы напряжением не более 3,3 В. Подача 5 В на вывод может необратимо повредить микроконтроллер. Датчики, модули и шилды с 5-вольтовыми сигналами подключайте через преобразователь логических уровней либо используйте совместимые версии на 3,3 В. Суммарный ток всех цифровых выводов не должен превышать 130 мА. Допустимый ток отдельного вывода зависит от его назначения: согласно документации Arduino, выводы могут отдавать 3 или 15 мА и принимать 6 или 9 мА. Не подключайте светодиоды без токоограничивающих резисторов, реле и другие мощные нагрузки напрямую: используйте транзистор, драйвер или подходящий силовой модуль.

Память (Flash, SRAM)

  • Flash: 512 КБ полностью доступны для пользовательских программ: загрузчик хранится в отдельной ROM микроконтроллера и не занимает Flash.
  • SRAM: 96 КБ в двух банках — 64 КБ и 32 КБ.
  • EEPROM: отсутствует; для хранения настроек можно использовать Flash-память, предусмотрев соответствующую организацию данных, или внешний чип памяти.

Цифровые и аналоговые выводы (I/O)

На плате 54 цифровых вывода (D0–D53). Выводы D2–D13 (12 штук) поддерживают ШИМ. По умолчанию функция analogWrite() использует 8-битное разрешение; его можно изменить с помощью analogWriteResolution(). На цифровых выводах можно использовать внешние прерывания. Аналоговых входов — 12 (A0–A11, они же D54–D65). АЦП поддерживает разрешение до 12 бит, но по умолчанию analogRead() возвращает 10-битные значения. Чтобы использовать 12-битное разрешение, вызовите analogReadResolution(12). Канал 15 АЦП недоступен для внешних сигналов, поскольку подключён к датчику температуры самого микроконтроллера.

На плате два 12-битных ЦАП: DAC0 (вывод D66) и DAC1 (вывод D67). Они формируют настоящий аналоговый сигнал, а не ШИМ. Однако диапазон выходного напряжения составляет примерно 0,55–2,75 В, а не 0–3,3 В. Выводы CANRX (D68) и CANTX (D69) предназначены для интерфейса CAN. Согласно документации Arduino, эти выводы не поддерживаются стандартным API Arduino для CAN; для работы с шиной потребуются соответствующая библиотека и внешний CAN-трансивер.

Распиновка Arduino Due: выводы D0–D53, аналоговые входы, ЦАП и CAN

Интерфейсы связи (UART, I²C, SPI, CAN)

  • UART: четыре аппаратных последовательных порта — Serial (D0 RX0, D1 TX0, подключён к USB-мосту ATmega16U2), Serial1 (D19 RX1, D18 TX1), Serial2 (D17 RX2, D16 TX2), Serial3 (D15 RX3, D14 TX3).
  • I²C: две шины. Wire — выводы D20 (SDA) и D21 (SCL); Wire1 — выводы SDA1 и SCL1 рядом с AREF. Для SDA1 и SCL1 требуются внешние подтягивающие резисторы, поскольку на этих линиях нет встроенных подтяжек.
  • SPI: выведен на отдельный 6-контактный разъём (CIPO/MISO, SCK, COPI/MOSI, питание, RESET, GND); выбор линий CS для периферийных устройств определяется схемой подключения и программой.
  • CAN: выводы CANRX и CANTX; для подключения к физической шине CAN требуется внешний трансивер, совместимый с логическими уровнями 3,3 В.

USB

На плате два порта micro-USB. Programming Port подключён к ATmega16U2, работающей как USB–UART-мост: через этот порт загружаются скетчи и работает последовательный монитор. Native USB Port подключён непосредственно к микроконтроллеру SAM3X8E и поддерживает режимы устройства и USB-хоста (OTG). В режиме устройства можно, например, эмулировать клавиатуру или мышь, а в режиме хоста — подключать совместимые USB-периферийные устройства. Для обычной прошивки рекомендуется программирующий порт.

Питание

Плата питается через USB, разъём питания (barrel jack) или вывод VIN. Рекомендуемое входное напряжение — 7–12 В, допустимый диапазон — 6–16 В. Выходы 3,3 В и 5 В рассчитаны на ток до 800 мА каждый согласно спецификации Arduino, но это не означает, что можно одновременно получать по 800 мА с обоих выходов. Фактический доступный ток зависит от источника питания, потребления самой платы, ограничений стабилизаторов и защиты USB.

⚠ Питание платы. На VIN и разъём питания подавайте напряжение в рекомендуемом диапазоне 7–12 В; допустимый предел по спецификации — 16 В. Не превышайте его. При напряжении ниже 7 В на выводе 5 В может быть меньше номинала, а работа платы — нестабильной. Выводы 3,3 В и 5 В предназначены для питания внешних устройств, а не для подачи внешнего напряжения: питание платы через эти выводы обходит штатные стабилизаторы и может повредить устройство.

Совместимость с шилдами и форм-фактор

Форм-фактор платы соответствует Arduino Mega 2560, однако совместимость с шилдами на 5 В не гарантируется. Используйте шилды, рассчитанные на логические уровни 3,3 В и совместимые с распиновкой Arduino 1.0. Наличие вывода IOREF само по себе не делает 5-вольтовый шилд безопасным: его сигнальные цепи должны поддерживать уровни 3,3 В либо иметь преобразователи уровней. Шилды и библиотеки, напрямую обращающиеся к регистрам AVR, обычно не работают без переработки.

Размеры и конструкция

Размеры платы — 101,52 × 53,3 мм, масса около 36 г. На плате расположены кнопки Reset и Erase, разъём SPI, 4-контактный отладочный разъём DEBUG (TCK, TMS, RESET и GND), ICSP для ATmega16U2, гнездо питания, два порта micro-USB и светодиодные индикаторы питания (ON), L (вывод 13), TX и RX.

Служебные разъёмы Arduino Due: USB, ICSP ATmega16U2, отладка, SPI и кнопка Erase

Интерфейсы и разъёмы

  • Programming USB и Native USB (micro-USB);
  • Разъём питания (DC) и вывод VIN;
  • Цифровые выводы D0–D53, аналоговые входы A0–A11, ЦАП DAC0/DAC1, CANRX/CANTX, AREF, IOREF, RESET;
  • Разъём SPI (6 контактов), 4-контактный отладочный разъём DEBUG (TCK, TMS, RESET, GND), ICSP для ATmega16U2;
  • Кнопки Reset и Erase; кнопка Erase стирает Flash-память микроконтроллера, удаляя загруженный скетч.

Кнопка Erase. Она стирает Flash-память SAM3X8E, удаляя загруженный скетч. Если после неудачной прошивки плата не загружается нормально, нажмите и удерживайте Erase несколько секунд при включённом питании, затем загрузите скетч заново через Programming Port.


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

Плата программируется в Arduino IDE: нужно установить пакет Arduino SAM Boards (32-bits ARM Cortex-M3) и выбрать Arduino Due (Programming Port) или Arduino Due (Native USB Port). Это 32-битная плата с архитектурой ARM, поэтому многие библиотеки для AVR-микроконтроллеров не работают без адаптации.


Распиновка

Ниже приведено расположение выводов по официальной схеме Arduino Due (A000056) с указанием портов микроконтроллера AT91SAM3X8E.

Цифровые выводы D0–D21 и дополнительные I²C

ВыводПорт MCUФункции
D0 / RX0PA8Serial (UART RX), мост USB
D1 / TX0PA9Serial (UART TX), мост USB
~D2PB25ШИМ
~D3PC28ШИМ
~D4PA29ШИМ
~D5PC25ШИМ
~D6PC24ШИМ
~D7PC23ШИМ
~D8PC22ШИМ
~D9PC21ШИМ
~D10PA28ШИМ
~D11PD7ШИМ
~D12PD8ШИМ
~D13PB27ШИМ, светодиод LED_BUILTIN (L)
D14 / TX3PD4Serial3 TX
D15 / RX3PD5Serial3 RX
D16 / TX2PA13Serial2 TX
D17 / RX2PA12Serial2 RX
D18 / TX1PA11Serial1 TX
D19 / RX1PA10Serial1 RX
D20 / SDAPB12I²C Wire, SDA
D21 / SCLPB13I²C Wire, SCL
SDA1PA17I²C Wire1, SDA (у AREF)
SCL1PA18I²C Wire1, SCL (у AREF)

Аналоговые входы, ЦАП и CAN

ВыводНомерПорт MCUФункции
A0D54PA16АЦП канал 0
A1D55PA24АЦП канал 1
A2D56PA23АЦП канал 2
A3D57PA22АЦП канал 3
A4D58PA6АЦП канал 4
A5D59PA4АЦП канал 5
A6D60PA3АЦП канал 6
A7D61PA2АЦП канал 7
A8D62PB17АЦП канал 8
A9D63PB18АЦП канал 9
A10D64PB19АЦП канал 10
A11D65PB20АЦП канал 11
DAC0D66PB15ЦАП, 12 бит
DAC1D67PB16ЦАП, 12 бит
CANRXD68PA1CAN RX (CANRX0)
CANTXD69PA0CAN TX (CANTX0)

Цифровые выводы D22–D53 (двухрядный разъём)

Левый рядПортПравый рядПорт
D22PB26D23PA14
D24PA15D25PD0
D26PD1D27PD2
D28PD3D29PD6
D30PD9D31PA7
D32PD10D33PC1
D34PC2D35PC3
D36PC4D37PC5
D38PC6D39PC7
D40PC8D41PC9
D42PA19D43PA20
D44PC19D45PC18
D46PC17D47PC16
D48PC15D49PC14
D50PC13D51PC12
D52PB21D53PB14

Над первой парой выводов двухрядного разъёма находятся контакты +5 В (по одному в каждом ряду), а у противоположного конца расположены контакты GND — также по одному в каждом ряду.

Разъём SPI (6 контактов)

КонтактОбозначениеПорт MCU / цепь
1CIPO (MISO)PA25 (SPI0_CIPO)
2+5VПитание 5 В
3SCKPA27 (SPI0_SPCK)
4COPI (MOSI)PA26 (SPI0_COPI)
5RESETСброс
6GNDЗемля

Отладочный разъём DEBUG (4 контакта)

КонтактОбозначениеПорт MCU / цепь
1TCKPB28
2TMSPB31
3RESETMASTER_RESET
4GNDЗемля

ICSP ATmega16U2 (6 контактов)

КонтактОбозначениеПорт ATmega16U2 / цепь
1CIPO (MISO)PB3
2+5VПитание 5 В
3SCKPB1
4COPI (MOSI)PB2
5RESETPC1
6GNDЗемля

Возможности и особенности

  • 32-битное ядро Cortex-M3 на 84 МГц и 96 КБ SRAM обеспечивают больше вычислительных ресурсов и памяти, чем у классических AVR-плат.
  • Два 12-битных ЦАП — для генерации звуковых и других аналоговых сигналов с учётом диапазона выходного напряжения 0,55–2,75 В.
  • Много выводов: 54 цифровых, 12 аналоговых, 4 аппаратных последовательных порта, 2 I²C.
  • Два порта USB, в том числе Native USB с OTG и возможностью эмуляции клавиатуры или мыши.
  • DMA и CAN — аппаратные возможности микроконтроллера.
  • Вся Flash-память доступна для пользовательских программ; загрузчик хранится в ROM.

Для чего подходит Arduino Due

  • Генерация и обработка сигналов: звук, генераторы и синтезаторы с использованием двух ЦАП.
  • Проекты, требующие много выводов и интерфейсов: 3D-принтеры, станки, большие светодиодные панели.
  • Быстрая обработка данных с датчиков, когда производительности классических AVR-плат недостаточно.
  • HID-устройства через Native USB, например устройства, эмулирующие клавиатуру или мышь.
  • Обучение 32-битному программированию на архитектуре ARM.

Преимущества

  • 32-битное ядро Cortex-M3 и большой объём памяти для платы Arduino.
  • Два ЦАП, поддержка CAN, DMA и USB OTG.
  • 54 цифровых вывода и четыре аппаратных последовательных порта.
  • Все 512 КБ Flash доступны для пользовательских программ.

Ограничения

  • Логика 3,3 В, выводы не рассчитаны на 5 В: 5-вольтовые шилды и модули без преобразователя уровней могут повредить плату.
  • Ограниченный ток цифровых выводов: суммарно не более 130 мА для всех линий I/O.
  • Нет встроенной EEPROM.
  • Многие AVR-библиотеки не работают без переработки.
  • Нет встроенных Wi-Fi и Bluetooth, а также Ethernet-разъёма; для сетевого подключения потребуются внешние модули.
  • Это плата предыдущего поколения, поэтому перед выбором стоит сравнить её с более современными моделями Arduino с учётом необходимых интерфейсов и поддержки библиотек.
  • Размер платы близок к Arduino Mega; она крупнее Uno и Nano. Стоимость также может быть выше, в зависимости от модели и поставщика.

Arduino Due и похожие платы

ХарактеристикаArduino DueArduino Mega 2560Arduino Uno R4 Minima
МикроконтроллерAT91SAM3X8EATmega2560Renesas RA4M1
АрхитектураARM Cortex-M3, 84 МГцAVR, 16 МГцARM Cortex-M4, 48 МГц
Рабочее напряжение3,3 В5 В5 В
Flash512 КБ256 КБ256 КБ
SRAM96 КБ8 КБ32 КБ
Цифровые выводы545414
Аналоговые входы12166
ЦАП2 × 12 битнет1 × 12 бит
USB2 × micro-USB (программирующий + Native)USB-B (через ATmega16U2)USB-C
Размеры101,52 × 53,3 мм101,6 × 53,3 мм68,58 × 53,34 мм

Due обладает более высокой тактовой частотой и большим объёмом памяти, чем Arduino Mega 2560, при том же количестве цифровых выводов. При этом у Mega логика 5 В, что упрощает подключение некоторых датчиков, модулей и шилдов, рассчитанных на этот уровень напряжения.


Заключение

Arduino Due — 32-битная плата Arduino формата Mega на микроконтроллере AT91SAM3X8E: 84 МГц, 512 КБ Flash, 96 КБ SRAM, 54 цифровых вывода, два ЦАП и два порта USB. Она подходит для проектов, где нужны дополнительные вычислительные ресурсы, большой объём памяти и широкий набор интерфейсов.

Перед покупкой учитывайте ограничения: логика только 3,3 В, допустимый ток цифровых выводов ограничен, EEPROM отсутствует, а диапазон выходного напряжения ЦАП составляет примерно 0,55–2,75 В. Многие шилды и библиотеки для AVR также потребуют проверки совместимости или адаптации.


Материалы

Фотография платы: Arduino SA, Wikimedia Commons, лицензия CC BY-SA 3.0. Схемы выводов взяты из документации Arduino (лицензия CC BY-SA 4.0).

Оставьте комментарий

Отправляя комментарий, вы соглашаетесь с обработкой ваших данных (имя, адрес электронной почты, текст комментария) в соответствии с политикой конфиденциальности.