====== 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}}.