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.
Технические характеристики
Микроконтроллер | 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 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 мА, предохранитель автоматически разрывает соединение, пока короткое замыкание или перегрузка не будут устранены.
Магазины и цены
Товар в магазине | Количество штук в комплекте | Стоимость | Расчетная стоимость за 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 |