====== Arduino Due: распиновка, схема подключения и программирование ======
[[amp>product/arduino-due?utm_source=man&utm_campaign=arduino-due&utm_medium=wiki|Arduino Due]] — первая плата семейства Ардуино на основе 32-битного микроконтроллера Atmel SAM3X8E с ARM-процессором на базе ядра ARM Cortex-M3. Обладая тактовой частотой 84 МГц и 32-битной архитектурой, он позволяет выполнять большинство операций над целыми числами в 4 байта за один такт.
{{ :продукты:arduino-due:arduino-due.1.png?nolink |}}
На плате предусмотрено 54 цифровых вход/выхода (из них 12 можно задействовать под выходы ШИМ), 12 аналоговых входов, 4 UARTа (аппаратных последовательных порта), связь по USB с поддержкой OTG, 2 ЦАП (цифро-аналоговых преобразователя), 2 TWI, разъем питания, разъем SPI, разъем JTAG, кнопка сброса и кнопка стирания.
===== Подключение и настройка =====
Для работы с платформой Due в операционной системе Windows скачайте и установите интегрированную среду разработки [[:articles:arduino-ide-install|Arduino IDE]].
==== Добавление платформы ====
По умолчанию среда программирования настроена только на AVR-платы. Для работы с платформой Arduino Due добавьте в менеджере плат [[:articles:arduino-boards-manager#добавление_плат_с_ядром_cortex-m3|поддержку платформ на ядре ARM Cortex-M3]].
===== Элементы платы =====
{{ :продукты:arduino-due:due_anotation-01.png?nolink |}}
==== Микроконтроллер Atmel SAM3X8E ARM Cortex-M3 ====
Сердцем платы Arduino Due является 32-битное ARM ядро AT91SAM3X8E с тактовой частотой 84 МГц, 512 КБ флеш-памяти и 96 ОЗУ, превосходящее по производительности обычные 8-битные микроконтроллеры.
==== Микроконтроллер ATmega16U2 ====
Микроконтроллер ATmega16U2 создает порт программирования для связи микроконтроллера SAM3X с USB-портом компьютера . При подключении к ПК Arduino Due определяется как виртуальный COM-порт. Перепрошивка микросхемы 16U2 производится через ICSP разъём используя стандартные драйвера USB-COM.
==== Пины питания ====
* **VIN:** Напряжение от внешнего источника питания (не связано с 5 В от USB или другим стабилизированным напряжением). Через этот вывод можно как подавать внешнее питание, так и потреблять ток, когда устройство запитано от внешнего адаптера.
* **5V:** На вывод поступает напряжение 5 В от стабилизатора напряжения на плате, независимости от того, как запитано устройство: от адаптера (7–12 В), от USB (5 В) или через вывод VIN (7–12 В). Питать устройство через вывод ''5V'' не рекомендуется — в этом случае не используется стабилизатор напряжения, что может привести к выходу платы из строя.
* **3.3V:** 3,3 В от стабилизатора напряжения платы. Максимальный ток — 800 мА. Cтабилизатор также обеспечивает питание микроконтроллера SAM3X.
* **GND:** Выводы земли.
* **IOREF:** Этот вывод предоставляет платам расширения информацию о рабочем напряжении микроконтроллера. В зависимости от напряжения на нём, плата расширения может переключиться на соответствующий источник питания либо задействовать преобразователи уровней, что позволит ей работать как с 5 В, так и с 3,3 В устройствами.
==== Порты ввода/вывода ====
Внимание! В отличие от других Arduino, плата Due работает от 3,3 В. Максимальное напряжение, которое могут выдержать вход/выходы, составляет 3,3 В. Подав более высокое напряжение (например, 5 В) на выводы Arduino Due, можно вывести плату из строя.
* **Цифровые входы/выходы:** пины ''0''–''53''\\ Логический уровень единицы — 3,3 В, нуля — 0 В. Максимальный ток выхода — 3 или 15 мА в зависимости от вывода микроконтроллера, или ток входа — 6 или 9 мА. К контактам подключены подтягивающие резисторы 100 кОм, которые по умолчанию выключены, но могут быть включены программно.
* **ШИМ:** пины ''2''–''13''\\ Позволяют выводить аналоговые значения в виде ШИМ-сигнала. Разрешение ШИМ позволяет менять функция analogWriteResolution().
* **АЦП:** пины ''A0''–''A11''\\ 12 аналоговых входов, каждый из которых может представить аналоговое напряжение в виде 12-битного числа (4096 значений). По умолчанию выставлена разрядность — 10 бит, для совместимости с другими платами. Разрешение АЦП можно менять с помощью функции analogReadResolution(). Аналоговые входы платы производят измерения от 0 до максимального значения 3,3 В. Если подать на вход напряжения свыше 3,3 В — это вызовет повреждение кристалла SAM3X.
* **TWI/I²C:** пины ''20(SDA)'', ''21(SCL)''и **TWI 2/I²C 2:** ''SDA1'' и ''SCL1''\\ Для общения с периферией по синхронному протоколу, через 2 провода. Для работы используйте библиотеку ''Wire''.
* **SPI:** Пины SPI выведены на центральный 6-контактный разъем, совместимый с Uno, Leonardo и Mega2560. \\ Для коммутации по интерфейсу SPI используйте библиотеку ''SPI''.
* **UART:** **Serial:** пины ''0(RX)'' и ''1(TX)''; **Serial1:** пины ''19(RX1)'' и ''18(TX1)'';**Serial2:** пины ''17(RX2)'' и ''16(TX2)''; **Serial3:** пины ''15(RX3)'' и ''14(TX3)''.\\ Эти выводы используются для получения (RX) и передачи (TX) данных по последовательному интерфейсу. Выводы ''0(RX)'' и ''1(TX)'' соединены с соответствующими выводами микросхемы ''ATmega16U2'', выполняющей роль преобразователя USB-UART. Для связи Arduino Due с компьютером через порт программирования, используйте класс Serial.
* **DAC1/DAC2:** На выводах ЦАП ''DAC1'' и ''DAC2'' доступны аналоговые выходы с 12-битным разрешением (4096 уровней) при помощи функции analogWrite(). Данные выводы можно использовать в качестве аудиовыхода, используя библиотеку Audio.
==== Светодиодная индикация ====
^ Имя светодиода ^ Назначение ^
| RX и TX |Мигают при обмене данными между Arduino Due и ПК.|
| L | Светодиод вывода ''13''. При задании значения HIGH светодиод включается, при LOW – выключается.|
| ON |Наличие питания на Arduino Due.|
==== Разъём Programming USB ====
Разъём предназначен для прошивки платформы Arduino Due с помощью компьютера. Для использования этого порта выберите в Arduino IDE в качестве вашей платы "Arduino Due (Programming Port)". При этом также производится стирание предыдущей прошивки. Аппаратное стирание более надежно, чем «программное стирание», которое происходит на собственном USB порте, и будет работать даже при повреждении главного микропроцессора. В программное обеспечение Arduino входит монитор последовательной шины, который дает возможность компьютеру обмениваться простыми текстовыми сообщениями с платой подключенной через Programming USB посредством контроллера ATmega16U2.
==== Разъём Native USB ====
Чтобы использовать этот порт, выберите в Arduino IDE тип вашей платы "Arduino Due (Native USB Port)". Native USB port подключен к SAM3X, тем самым осуществляя последовательную связь (CDC) посредством USB обеспечивая подключение к монитору последовательной шины, или другим приложениям на вашем компьютере. Открытие и закрытие собственного порта при скорости передачи 1200 бит в секунду запускает процедуру «программного стирания»: флеш-память стирается и плата перезапускается с помощью загрузчика. Также это дает Due возможность эмулировать USB мышь или клавиатуру.
Native USB может также работать как USB хост для подключенных периферийных устройств: мыши, клавиатуры и прочего.
==== Разъём для внешнего питания ====
Разъём для подключения внешнего питания от 7 В до 12 В.
==== ICSP-разъём для ATmega2560 ====
ICSP-разъём предназначен для внутрисхемного программирования микроконтроллера ATmega2560.
Также с применением библиотеки ''SPI'' данные выводы могут осуществлять связь с платами расширения по интерфейсу SPI. Линии SPI выведены на 6-контактный разъём, а также продублированы на цифровых пинах ''50(MISO)'', ''51(MOSI)'', ''52(SCK)'' и ''53(SS)''.
==== ICSP-разъём для ATmega16U2 ====
ICSP-разъём для внутрисхемного программирования микроконтроллера ATmega16U2.
===== Распиновка =====
{{ :продукты:arduino-due:due_pinout2.png?nolink |
}}
===== Принципиальная и монтажная схемы =====
{{:продукты:arduino-due:arduino-due-schematic-01.png?direct&325 |}}{{ :продукты:arduino-due:printplata1.png?direct&325|}}
===== Характеристики =====
* Микроконтроллер: AT91SAM3X8E
* Тактовая частота: 84 МГц
* Напряжение логических уровней: 3,3 В
* Входное напряжение питания: 7–12 В
* Портов ввода-вывода общего назначения: 54
* Максимальный ток с пина ввода-вывода: 3 или 15 мА (в зависимости от вывода)
* Максимальный выходной ток пина 3.3V: 800 мА
* Максимальный выходной ток пина 5V: 800 мА
* Портов с поддержкой ШИМ: 12
* Портов, подключённых к АЦП: 12
* Разрядность АЦП: 12 бит
* Flash-память: 512 КБ
* Оперативная память: 96 КБ
* Габариты: 101×53 мм
===== Ресурсы =====
* [[amp>product/arduino-due?utm_source=man&utm_campaign=arduino_due&utm_medium=wiki|Arduino Due ]] в магазине.
* {{продукты:arduino-due:atmel-11057-32-bit-cortex-m3-microcontroller-sam3x-sam3a_datasheet.pdf|Datasheet на микроконтроллер SAM3X}}.