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 Кбайт (вся доступна для пользовательских приложений)
Оперативная память SRAM96 Кбайт (два банка: 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Максимальный выходной ток (мА)Максимальный потребляемый ток (мА)
0PA8RX036
1PA9TX0159
2PB25Цифровой вывод 236
3PC28Цифровой вывод 3159
4Подключен и к PA29, и к PC26Цифровой вывод 4159
5PC25Цифровой вывод 5159
6PC24Цифровой вывод 6159
7PC23Цифровой вывод 7159
8PC22Цифровой вывод 8159
9PC21Цифровой вывод 9159
10Подключен и к PA28, и к PC29Цифровой вывод 10159
11PD7Цифровой вывод 11159
12PD8Цифровой вывод 12159
13PB27Цифровой вывод 13 / желтый светодиод "L"36
14PD4TX3159
15PD5RX3159
16PA13TX236
17PA12RX236
18PA11TX136
19PA10RX136
20PB12SDA36
21PB13SCL36
22PB26Цифровой вывод 2236
23PA14Цифровой вывод 23159
24PA15Цифровой вывод 24159
25PD0Цифровой вывод 25159
26PD1Цифровой вывод 26159
27PD2Цифровой вывод 27159
28PD3Цифровой вывод 28159
29PD6Цифровой вывод 29159
30PD9Цифровой вывод 30159
31PA7Цифровой вывод 31159
32PD10Цифровой вывод 32159
33PC1Цифровой вывод 33159
34PC2Цифровой вывод 34159
35PC3Цифровой вывод 35159
36PC4Цифровой вывод 36159
37PC5Цифровой вывод 37159
38PC6Цифровой вывод 38159
39PC7Цифровой вывод 39159
40PC8Цифровой вывод 40159
41PC9Цифровой вывод 41159
42PA19Цифровой вывод 42159
43PA20Цифровой вывод 4336
44PC19Цифровой вывод 44159
45PC18Цифровой вывод 45159
46PC17Цифровой вывод 46159
47PC16Цифровой вывод 47159
48PC15Цифровой вывод 48159
49PC14Цифровой вывод 49159
50PC13Цифровой вывод 50159
51PC12Цифровой вывод 51159
52PB21Цифровой вывод 5236
53PB14Цифровой вывод 53159
54PA16Аналоговый вход 036
55PA24Аналоговый вход 136
56PA23Аналоговый вход 236
57PA22Аналоговый вход 336
58PA6Аналоговый вход 436
59PA4Аналоговый вход 536
60PA3Аналоговый вход 636
61PA2Аналоговый вход 736
62PB17Аналоговый вход 836
63PB18Аналоговый вход 936
64PB19Аналоговый вход 1036
65PB20Аналоговый вход 1136
66PB15DAC036
67PB16DAC136
68PA1CANRX36
69PA0CANTX159
70PA17SDA136
71PA18SCL2159
72PC30светодиод "RX"159
73PA21светодиод "TX"36
74PA25(MISO)159
75PA26(MOSI)159
76PA27(SCLK)159
77PA28(NPCS0)159
78PB23(не подключен)159
USBPB11ID159
USBPB10VBOF159

Связь

Плата 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 на eBay1 628.14 руб. / 9.99 USD
(на 1 октября 2016)
628.14 руб. / 9.99 USD
Arduino Due на AliExpress1 869.16 руб. / 12.85 USD
(на 25 ноября 2018)
869.16 руб. / 12.85 USD
Arduino Due на AliExpress1 900.95 руб. / 13.32 USD
(на 25 ноября 2018)
900.95 руб. / 13.32 USD
Arduino Due на AliExpress1 973.32 руб. / 14.39 USD
(на 25 ноября 2018)
973.32 руб. / 14.39 USD
Arduino Due на DX.com1 1199.11 руб. / 18.99 USD
(на 1 октября 2016)
1199.11 руб. / 18.99 USD
Arduino Due на GearBest.com1 1664.33 руб. / 26.39 USD
(на 1 октября 2016)
1664.33 руб. / 26.39 USD

На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.