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В. Максимальное напряжение, которое можно подавать на входные/выходные выводы, составляет 3,3В. Подача на входные/выходные выводы напряжений выше 3,3В может привести к выходу платы из строя.

Плата содержит всё необходимое для работы с микроконтроллером; для того, чтобы начать работу с ней, просто подключите ее к компьютеру с помощью microUSB кабеля или подайте питание от блока питания AC/DC или от батареи. Arduino Due совместима со всеми платами расширения Arduino, которые работают с 3,3В, и совместима с распиновкой Arduino версии 1.0.

Arduino Due
Arduino Due

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

Микроконтроллер AT91SAM3X8E
Рабочее напряжение 3,3 В
Входное напряжение (рекомендуемое) 7-12 В
Входное напряжение (предельное) 6-16 В
Цифровые входные/выходные выводы 54 (12 из которых могут использоваться в качестве ШИМ выходов)
Аналоговые входные выводы 12
Аналоговые выходные выводы 2 (ЦАП)
Постоянный ток через входные/выходные выводы 130 мА
Постоянный ток через вывод 3,3 В 800 мА
Постоянный ток через вывод 5 В 800 мА
Флеш-память 512 Кбайт (вся доступна для пользовательских приложений)
Оперативная память SRAM 96 Кбайт (два банка: 64 Кб и 32 Кб)
Тактовая частота 84 МГц
Длина 101,52 мм
Ширина 53,3 мм
Вес 36 г

Документация

Схемы, разводка платы, размеры

Arduino Due является открытой аппаратной платформой. Вы можете изготовить собственную плату, используя следующие файлы:

Преимущества архитектуры ARM

  • 32-битное ядро, что позволяет выполнять операции с 4-байтными данными за один такт CPU;
  • тактовая частота CPU составляет 84 МГц;
  • 96 килобайт SRAM;
  • 512 килобайт флеш-памяти для кода программ;
  • DMA контроллер, что может освободить CPU от выполнения задач по интенсивной работе с памятью.

Питание

Arduino Due может получать питание либо через подключение USB, либо от внешнего источника питания. Источник питания выбирается автоматически.

Внешнее (не USB) питание может подаваться либо от AC/DC адаптера, либо от батареи. Адаптер может быть подключен с помощью 2,1 мм разъема питания с положительным контактом в центре. Питание от батареи может быть подано на выводы Vin и GND разъема POWER.

Плата может работать от внешнего питания от 6 до 20 вольт. Если подается питание меньше, чем 7 вольт, то на выводе 5V питание может составлять менее пяти вольт, и плата может начать работать нестабильно. Если используется питание более 12В, регулятор напряжения может перегреться и повредить плату. Рекомендуется использовать напряжение питания в диапазоне от 7 до 12 вольт.

Выводы питания:

  • Vin. Вход питания платы при использовании внешнего источника питания (используется при отсутствии 5 вольт от USB подключения или от другого регулируемого источника питания). Вы можете подать питание через этот вывод, или, если напряжение питания подается через разъем питания, то это напряжение 5В будет доступно и на этом выводе.
  • 5V. С этого вывода можно взять регулируемое напряжение 5В с выхода регулятора на плате. Плата может питаться через разъем питания (7–12В), через USB разъем (5В) или через вывод Vin на плате (7–12В). Подача напряжения через выводы 5V и 3.3V обходит регулятор и может повредить плату. Поэтому не советуем подавать питание на плату через эти выводы.
  • 3V3. Питание 3,3 вольта, выдаваемое регулятором на плате. Максимальный ток 800 мА. Этот регулятор также обеспечивает питанием микроконтроллер SAM3X.
  • GND. Выводы земли.
  • IOREF. Этот вывод обеспечивает опорное напряжение, с которым работает микроконтроллер. Правильно, сконфигурированная плата расширения, может прочитать напряжение на выводе IOREF и выбрать подходящий источник питания или перевести буферы выходов для работы с напряжением либо 5В, либо 3,3В.

Память

SAM3X обладает 512 килобайтами (2 блока по 256 Кб) флэш-памяти для хранения кода программы. Загрузчик заранее прошит на заводе Atmel и хранится в выделенной для этого ROM памяти. Доступная SRAM память расположена в двух смежных банках 64 Кб и 32 Кб. Вся доступная память (Flash, RAM и ROM) может быть доступна напрямую через плоское адресное пространство.

Также возможно стирание флеш-памяти SAM3X с помощью кнопки стирания, расположенной на плате. Это удалит из MCU загруженный код программы. Чтобы стереть код, нажмите и удерживайте кнопку Erase несколько секунд при поданном на плату питании.

Входы и выходы

Каждый из 54 цифровых выводов Arduino Due может быть использован и как вход, и как выход, с помощью функций pinMode(), digitalWrite() и digitalRead. Они работают с напряжением 3,3 вольта. Каждый вывод может обеспечить ток (в качестве источника) от 3 мА до 15 мА в зависимости от вывода, а также потреблять ток от 6 мА до 9 мА в зависимости от вывода. Они также имеют внутренний подтягивающий резистор (по умолчанию отключен) 100 кОм.

Также некоторые выводы обладают специальными функциями:

  • последовательный порт: 0 (RX) и 1 (TX); последовательный порт 1: 19 (RX) и 18 (TX); последовательный порт 2: 17 (RX) и 16 (TX); последовательный порт 3: 15 (RX) и 14 (TX). Выводы используются для приема (RX) и передачи (TX) последовательных данных с TTL уровнями 3,3 вольта. Выводы 0 и 1 также подключены к соответствующим выводам преобразователя USB–TTL на ATmega16U2;
  • ШИМ: выводы со 2 по 13. Обеспечивают 8-битный ШИМ выход с помощью функции analogWrite(). Разрешение ШИМ может быть изменено с помощью функции analogWriteResolution();
  • SPI: разъем SPI (разъем ICSP на других платах Arduino). Эти выводы поддерживают связь через SPI с помощью соответствующей библиотеки. SPI выводы подключены к 6-пиновому разъему в центре, который физически совместим с платами Arduino Uno, Leonardo и Mega2560. Разъем SPI может использоваться только для связи с другими SPI устройствами, но не для программирования SAM3X по технологии внутрисхемного программирования. SPI в Arduino Due обладает расширенными возможностями, которые могут использоваться с расширенных SPI методов для Due;
  • CAN: CANRX и CANTX. Эти выводы поддерживают связь по протоколу CAN, но он еще не поддерживается Arduino API;
  • светодиод: 13. Встроенный светодиод подключен к цифровому выводу 13. При высоком уровне на выводе светодиод загорается, при низком – гаснет. Также возможно менцание светодиода, так как цифровой вывод 15 является еще и ШИМ выходом;
  • TWI 1: 20 (SDA) и 21 (SCL), TWI 2: SDA1 и SCL1. Поддерживают связь через TWI с помощью библиотеки Wire. SDA1 и SCL1 могут управляться с помощью класса Wire1, поставляемого библиотекой Wire. В отличие от SDA и SCL, имеющих внутренние подтягивающие резисторы, SDA1 и SCL1 такими резисторами не обладают. Поэтому для использования Wire1 необходимо добавление двух подтягивающих резисторов на линии SDA1 и SCL1;
  • Аналоговые входы: выводы от A0 до A11. Arduino Due обладает 16 аналоговыми входами, каждый из которых обеспечивает 12-битное разрешение (т.е. 4096 разных значений). По умолчанию для совместимости с другими платами Arduino разрешение чтения устанавливается равным 10 бит. Разрешение АЦП можно изменить с помощью функции analogReadResolution(). Аналоговые входы Arduino Due измеряют напряжение от 0 до максимального значения 3,3 вольт. Подача напряжения более 3,3В на выводы Arduino Due может вывести из строя микросхему SAM3X. Функция analogReference() игнорируется платой Arduino Due. Вывод AREF подключен к выводу опорного аналогового напряжения SAM3X через резисторный мост. Для использования вывода AREF необходимо выпаять резистор BR1 на плате;
  • DAC1 и DAC2. Эти выводы обеспечивают настоящие аналоговые выходы с 12-битным разрешением (4096 уровней) с помощью функции analogWrite(). Эти выводы могут использоваться для создания аудиовыхода с помощью библиотеки Audio.

Еще пара выводов:

  • AREF. Опорное напряжение для аналоговых входов. Используется совместно с analogReference();
  • Reset. Низкий уровень на этом выводе приводит к перезагрузке микроконтроллера. Обычно используется для добавления кнопки сброса на платы расширения, закрывающей доступ к кнопке сброса на самой плате Arduino.

Таблица соответствия между выводами Arduino Due и портами SAM3X
Номер вывода Arduino Due Название вывода SAM3X Название соответствующего вывода Arduino Due Максимальный выходной ток (мА) Максимальный потребляемый ток (мА)
0 PA8 RX0 3 6
1 PA9 TX0 15 9
2 PB25 Цифровой вывод 2 3 6
3 PC28 Цифровой вывод 3 15 9
4 Подключен и к PA29, и к PC26 Цифровой вывод 4 15 9
5 PC25 Цифровой вывод 5 15 9
6 PC24 Цифровой вывод 6 15 9
7 PC23 Цифровой вывод 7 15 9
8 PC22 Цифровой вывод 8 15 9
9 PC21 Цифровой вывод 9 15 9
10 Подключен и к PA28, и к PC29 Цифровой вывод 10 15 9
11 PD7 Цифровой вывод 11 15 9
12 PD8 Цифровой вывод 12 15 9
13 PB27 Цифровой вывод 13 / желтый светодиод "L" 3 6
14 PD4 TX3 15 9
15 PD5 RX3 15 9
16 PA13 TX2 3 6
17 PA12 RX2 3 6
18 PA11 TX1 3 6
19 PA10 RX1 3 6
20 PB12 SDA 3 6
21 PB13 SCL 3 6
22 PB26 Цифровой вывод 22 3 6
23 PA14 Цифровой вывод 23 15 9
24 PA15 Цифровой вывод 24 15 9
25 PD0 Цифровой вывод 25 15 9
26 PD1 Цифровой вывод 26 15 9
27 PD2 Цифровой вывод 27 15 9
28 PD3 Цифровой вывод 28 15 9
29 PD6 Цифровой вывод 29 15 9
30 PD9 Цифровой вывод 30 15 9
31 PA7 Цифровой вывод 31 15 9
32 PD10 Цифровой вывод 32 15 9
33 PC1 Цифровой вывод 33 15 9
34 PC2 Цифровой вывод 34 15 9
35 PC3 Цифровой вывод 35 15 9
36 PC4 Цифровой вывод 36 15 9
37 PC5 Цифровой вывод 37 15 9
38 PC6 Цифровой вывод 38 15 9
39 PC7 Цифровой вывод 39 15 9
40 PC8 Цифровой вывод 40 15 9
41 PC9 Цифровой вывод 41 15 9
42 PA19 Цифровой вывод 42 15 9
43 PA20 Цифровой вывод 43 3 6
44 PC19 Цифровой вывод 44 15 9
45 PC18 Цифровой вывод 45 15 9
46 PC17 Цифровой вывод 46 15 9
47 PC16 Цифровой вывод 47 15 9
48 PC15 Цифровой вывод 48 15 9
49 PC14 Цифровой вывод 49 15 9
50 PC13 Цифровой вывод 50 15 9
51 PC12 Цифровой вывод 51 15 9
52 PB21 Цифровой вывод 52 3 6
53 PB14 Цифровой вывод 53 15 9
54 PA16 Аналоговый вход 0 3 6
55 PA24 Аналоговый вход 1 3 6
56 PA23 Аналоговый вход 2 3 6
57 PA22 Аналоговый вход 3 3 6
58 PA6 Аналоговый вход 4 3 6
59 PA4 Аналоговый вход 5 3 6
60 PA3 Аналоговый вход 6 3 6
61 PA2 Аналоговый вход 7 3 6
62 PB17 Аналоговый вход 8 3 6
63 PB18 Аналоговый вход 9 3 6
64 PB19 Аналоговый вход 10 3 6
65 PB20 Аналоговый вход 11 3 6
66 PB15 DAC0 3 6
67 PB16 DAC1 3 6
68 PA1 CANRX 3 6
69 PA0 CANTX 15 9
70 PA17 SDA1 3 6
71 PA18 SCL2 15 9
72 PC30 светодиод "RX" 15 9
73 PA21 светодиод "TX" 3 6
74 PA25 (MISO) 15 9
75 PA26 (MOSI) 15 9
76 PA27 (SCLK) 15 9
77 PA28 (NPCS0) 15 9
78 PB23 (не подключен) 15 9
USB PB11 ID 15 9
USB PB10 VBOF 15 9

Связь

Плата Arduino Due обладает рядом возможностей для связи с компьютером, с другой платой или с другими микроконтроллерами, а также с различными устройствами, например, с телефонами, планшетами, камерами и т.д. SAM3X обеспечивает один аппаратный UART порт и три аппаратных USART порта для последовательной связи с TTL уровнями (3,3 вольта).

Порт программирования подключен к микроконтроллеру ATmega16U2, который обеспечивает виртуальный COM порт для связи с программным обеспечением на компьютере (для опознания устройства Windows машинам понадобится inf-файл, машины на OSX и Linux определят плату, как COM порт, автоматически). ATmega16U2 также подключена к аппаратному порту UART SAM3X. Последовательный порт на выводах RX0 и TX0 обеспечивает связь COM-USB для программирования платы через микроконтроллер ATmega16U2. Arduino IDE включает в себя монитор последовательного порта, который позволяет посылать и принимать от платы простые текстовые данные. Светодиоды RX и TX на плате загораются при передаче данных через микросхему ATmega16U2 и USB соединение (но не при передаче данных через выводы 0 и 1 последовательного порта).

Собственный USB порт подключен к SAM3X. Это позволяет использовать последовательную (CDC) связь поверх USB. Это обеспечивает последовательное соединение с монитором последовательного порта или с другими приложениями на вашем компьютере. Это также позволяет Arduino Due имитировать USB мышь или клавиатуру, подключенную к компьютеру. Для использования этой возможности посмотрите на документацию библиотек Mouse и Keyboard.

Собственный USB порт может также работать, как USB хост для подключенных периферийных устройств, например, мышь, клавиатура и смартфон.

SAM3X также поддерживает связь через TWI и SPI. Arduino IDE включает в себя библиотеку Wire для упрощения использования шины TWI. Для связи через SPI используется библиотека SPI.

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

Arduino Due может быть прошит с помощью Arduino IDE.

Загрузка скетчей на SAM3X отличается от загрузки на AVR микроконтроллеры, установленные на другие платы Arduino, так как перед перепрограммированием необходимо стереть флеш-память. Загрузка кода управляется памятью ROM в SAM3X, которая запускается, только когда флеш-память контроллера пуста.

USB порты на Arduino Due

Плату можно запрограммировать через любой из USB портов, хотя рекомендуется использовать порт программирования, так как он поддерживает стирание микросхемы:

  • Порт программирования: для использования этого порта выберите в Arduino IDE "Arduino Due (Programming Port)". Подлкючите Arduino Due к вашему компьютеру через порт программирования (ближайший к разъему питания). Порт программирования использует ATmega16U2 в качестве преобразователя "USB – последовательный порт", подключенного к первому порту UART SAM3X (RX0 и TX0). У ATmega16U2 есть два вывода, подключенных к выводам Reset и Erase SAM3X. Открытие и закрытие порта программирования, подключенного на скорости 1200 бит/с, вызывает процедуру «аппаратного стирания» микросхемы SAM3X, активируя выводы Erase и Reset SAM3X перед установлением соединения через UART. Рекомендуется использовать этот порт для программирования Arduino Due. Этот способ более надежен, чем «программное стирание», которое используется совместно с собственным портом, и будет работать, даже если главный микропроцессор будет поврежден.
  • Собственный порт: для использования этого порта выберите в Arduino IDE "Arduino Due (Native USB Port)". Собственный USB порт подключен непосредственно к SAM3X. Подлкючите Arduino Due к вашему компьютеру через собственный USB порт (ближайший к кнопке перезагрузки). Открытие и закрытие собственного порта, подключенного на скорости 1200 бит/с, вызывает процедуру «программного стирания»: флеш-память стирается и плата перезапускается с загрузчиком. Если MCU по какой-то причине поврежден, то, вероятно, программное стирание работать не будет, так как эта процедура в SAM3X выполняется полностью программно. Открытие и закрытие собственного порта на других скоростях передачи не приводит к перезагрузке SAM3X.

В отличие от других плат Arduino, которые используют avrdude для прошивки, Arduino Due использует bossac.

Прошивка ATmega16U2 доступна в репозитории Arduino. Вы можете использовать разъем ISP с внешним программатором (перезаписывающим DFU загрузчик).

Защита USB от перегрузки по току

Arduino Due имеет самовосстанавливающийся предохранитель, который защищает USB порты вашего компьютера от короткого замыкания и перегрузки по току. Несмотря на то, что большинство компьютеров обеспечивают свою собственную внутреннюю защиту, этот предохранитель дает дополнительный уровень защиты. Если ток через USB порт превышает 500 мА, предохранитель автоматически разрывает соединение, пока короткое замыкание или перегрузка не будут устранены.

Магазины и цены

Цены наArduino Due
Товар в магазине Количество штук в комплекте Стоимость Расчетная стоимость за 1 шт.
Arduino Due наeBay 1 628.14 руб. /9.99 USD
(на1 октября 2016)
628.14 руб. /9.99 USD
Arduino Due наAliExpress 1 869.16 руб. /12.85 USD
(на25 ноября 2018)
869.16 руб. /12.85 USD
Arduino Due наAliExpress 1 900.95 руб. /13.32 USD
(на25 ноября 2018)
900.95 руб. /13.32 USD
Arduino Due наAliExpress 1 973.32 руб. /14.39 USD
(на25 ноября 2018)
973.32 руб. /14.39 USD
Arduino Due наDX.com 1 1199.11 руб. /18.99 USD
(на1 октября 2016)
1199.11 руб. /18.99 USD
Arduino Due наGearBest.com 1 1664.33 руб. /26.39 USD
(на1 октября 2016)
1664.33 руб. /26.39 USD