Примеры программ для arduino due. Китайская Arduino DUE

Виды беспроводных сетей 07.11.2019
Виды беспроводных сетей

Arduino Due – это микроконтроллерная плата на базе процессора Atmel SAM3X8E ARM Cortex-M3 . Это первая плата Arduino на базе микроконтроллера с 32-битным ядром ARM . У нее 54 цифровых I/O контакта (из которых 12 можно использовать для выдачи ШИМ ), 12 аналоговых контактов, 4 аппаратных последовательных порта (UART ), частота 84 МГц , поддержка OSB OTG , 2 ЦАП (цифро-аналоговых преобразователя), 2 TWI , разъем для питания, SPI -гребешок, JTAG -гребешок, кнопка сброса и кнопка очистки flash -памяти.

Внимание: В отличие от большинства плат Arduino, Due работает на 3,3 вольтах. Максимальное напряжение, к которому терпимы I/O контакты – 3,3 вольта. Если подать на них более высокое напряжение, это может повредить плату.

Плата оснащена всем необходимым для микроконтроллера; просто подключите ее к компьютеру через кабель micro-USB либо запитайте через батарею или адаптер, конвертирующий переменный ток в постоянный. Модель Due совместима со всеми «шилдами» Arduino , которые работают на 3,3 вольтах .

Кроме того, Due совместима с распиновкой 1.0:

  • Интерфейс TWI : контакты SDA и SCL расположены рядом с контактом AREF
  • Контакт IOREF : позволяет правильно настроенному «шилду» , подключенному к плате, адаптировать напряжение, даваемое платой. Благодаря этому «шилды» совместимы с 3,3-вольтовыми платами вроде Due и 5-вольтовыми платами на базе AVR
  • Бездействующий, ни к чему не подключенный контакт : зарезервирован для использования в будущем

С чего начать

Чип SAM3X также поддерживает коммуникацию через интерфейсы SPI и TWI . Чтобы упростить использование TWI , в IDE Arduino есть библиотека Wire , а для SPI есть библиотека SPI .

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

отличается от того, как это происходит на микроконтроллерах AVR, которыми оснащаются, как правило, другие платы Arduino . Перед новым программированием на Due нужно стереть -памятью на SAM3X , которая запускается только тогда, когда flash -память чипа пуста.

Для программирования платы можно использовать оба USB -порта, но лучше отдать предпочтение USB -порту для программирования – из-за того, каким образом осуществляется стирание памяти на чипе:

  • USB-порт для программирования. IDE Arduino и выберите пункт Инструменты > Плата > Arduino Due (Programming Port) . Затем подключите USB-порт для программирования (он находится ближе к разъему для питания) к компьютеру. В качестве чипа, конвертирующего USB-данные в последовательные данные, USB-порт для программирования использует чип ATmega16U2 , и он подключен к первому UART на SAM3X (контакты RX0 и TX0 ). Два контакта Atmega16U2 подключены к контактам Erase и Reset на SAM3X . Открытие и закрытие USB -порта для программирования на скорости 12000 бит/сек запускает на чипе SAM3X процесс «аппаратной очистки» , который активирует на SAM3X контакты Erase и Reset перед коммуникацией с UART . Для программирования Due рекомендуется использовать именно этот порт. Он более надежен, т.к. работает, как правило, даже если неисправен главный микроконтроллер.
  • Штатный USB-порт. Чтобы использовать этот порт, зайдите в IDE Arduino и выберите пункт Инструменты > Плата > Arduino Due (Native USB Port) . Штатный USB-порт подключен напрямую к чипу SAM3X . Теперь подключите штатный USB-порт (он находится рядом с кнопкой сброса) к компьютеру. Открытие и закрытие штатного USB-порта на скорости 1200 бит/сек запускает процедуру «мягкой очистки» : стирается flash -память, а затем перезапускается плата. Если главный микроконтроллер по какой-то причине неисправен, то «мягкая очистка» может не сработать, поскольку эта процедура полностью выполняется на программном уровне в SAM3X . Открытие и закрытие штатного USB-порта на другой скорости не сбросит SAM3X .

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

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

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

Физические характеристики и совместимость с «шилдами»

Максимальные длина и ширина печатной платы Arduino Due составляют 10,16 и 5,33 см соответственно, однако USB-коннекторы и разъем для питания могут немного выходить за эти пределы. Кроме того, на плате имеются три отверстия, которые позволяют прикрепить ее к какой-либо поверхности или корпусу. Обратите внимание, что расстояние между 7-ым и 8-ым контактами составляет 0,406 см , а между остальными контактами – 0,254 см .

Плата Arduino Due совместима с большинством «шилдов» , разработанных для плат Uno , Diecimila и Duemilanove . Цифровые контракты с 0-го по 13-ый (и прилегающие к ним контакты AREF и GND ), аналоговые контакты с 0-го по 5-ый , гребешок для питания и ICSP -гребешок (для SPI ) находятся на тех же местах. Более того, на тех же контактах (т.е. на 0-ом и 1-ом ) находится и UART (последовательный порт). Обратите внимание, что интерфейс I2C расположен на 20-ом и 21-ом контактах, тогда как у Duemilanove и Diecimila она находится на 4-ом и 5-ом контактах.

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

Плата Arduino Due – это оборудование, распространяемое по принципу «open-source» . Вы можете создать на ее основе собственную плату, используя следующие файлы:

См.также

Внешние ссылки

Ещё одно готовое устройство от Arduino для конструкторов электронных игрушек, оригинальных и полезных конструкций, малых систем автоматизации. Примечательна установленным 32-битным микроконтроллером SAM3X8E ARM Cortex-M3. Оценим её возможности и возможные сферы применения.
Вид платы сверху


Разъёмы и выводы
  • 0-52. Расположены сверху и справа. Каждый из выводов может быть запрограммирован в качестве дискретного входа или выхода. Уровень напряжения выводов 3,3 В, ток в выходных цепях 3-15 мА, а во входных 6-9 мА.
  • Выводы (communication) 0, 19, 17, 15 (Rx) и 1, 18, 16, 14 (Tx) могут быть запрограммированы для обмена данными по последовательному интерфейсу с уровнем напряжения TTL (3,3 В) (RX – приём, TX – передача). На плате установлен преобразователь USB-UART, выполненный на микросхеме ATMega16U2, выводы которой подключены к выводам 0 и 1 платы. Интерфейс является USB-портом для программирования.
  • Выводы (PWM) со 2 по 13 можно сконфигурировать как аналоговые выходы с невысоким 8-битным разрешением. Вид выходного сигнала – ШИМ, а значит для подключения исполнительных устройств потребуется дополнительная согласующая схема.
  • Штыревой разъём SPI справа от микроконтроллера. Особенность этого интерфейса в том, что его нельзя использовать для внутрисхемного программирования, а исключительно для связи с другими устройствами.
  • Выводы CANRX, CANTX в самом низу, справа. Линии обмена данными по протоколу CAN. Протокол широко используется в бортовых сетях автомобилей, промышленной электронике.
  • Интерфейс связи TWI/I 2 C может быть подключен к выводам 20 (SDA), 21(SCL). Отметим, что к выводам на плате подключены подтягивающие резисторы 100 кОм, по умолчанию отключенные. Необходимо подключать резисторы при организации сетевого обмена.
  • Выводы А0–А11 внизу – аналоговые входы. Обрабатывающий сигналы с этих входов АЦП 12-битный, а значит входы могут использоваться в достаточно серьёзных приложениях. Стоит отметить, что конфигурация по умолчанию 10 бит, смена разрешения выполняется программным способом. Ещё одно замечание – для использования вывода AREF следует удалить из схемы резистор BR1.
  • На плате всего 2 полноценных 12-битных аналоговых выхода DAC1 и DAC2.
  • Вывод RESET при подаче низкого уровня инициирует перезагрузку контроллера.
  • Вверху, слева от вывода 13, расположен вывод AREF – опорное напряжение АЦП и выводы SDA1, SCL1 для интерфейса TWI1/I 2 C1.
В выводы могут устанавливаться платы расширения (шилды). Подключать можно весь спектр устройств Arduino: дисплеи, Ethernet-модули, клавиатуры и т.д. Создавая плату, компания обеспечила совместимость с устройствами расширения для других серий. Правда есть одно НО. Уровень напряжения на выводах не должен превышать 3,3 В. Информацию о рабочем уровне напряжения для плат расширения выдаёт выход IOREF, а подключаемая плата должна задействовать встроенный преобразователь уровня. Обращайте на это внимание при выборе шилда, если уровень 3,3 В не поддерживается, то подключать к Arduino Due устройство не рекомендуется.
Раз уж затронули тему уровней напряжения, то давайте разберёмся с питанием платы. Во-первых, внешнее питание на плату может быть подано либо от внешнего источника, либо от USB. Напряжение питание должно лежать в диапазоне 6-20 В, оптимальное – 7-12 В.
Выводы питающих напряжений находятся внизу, чуть левее микроконтроллера.
  • VIN – линия «+» внешнего источника питания.
  • 5V – напряжение +5 В, выдаваемое стабилизатором напряжения, максимальный ток Iмакс = 800 мА.
  • 3.3V - напряжение +3,3 В от того же стабилизатора, максимальный ток Iмакс = 800 мА.
  • GND – земля.
На плате установлены 2 USB-порта, предназначенные для обмена данными с компьютером или подключения поддерживающих интерфейс USB периферийных устройств.
Память
На плате размещены микросхемы оперативной памяти (SRAM) объёмом 96 кб, и флэш-памяти программ 512 кб. Адресное пространство единое для всей памяти. Стоит учесть, что есть возможность подключить внешнюю SD-карту, используя интерфейс TWI1/I 2 C1 и картридер.
Органы управления
На плате установлена кнопка Reset для стирания программы, записанной в ПЗУ.
Габаритные размеры
Плата имеет размеры 10,2х5,4 см, три крепёжных отверстия.

Сфера применения

Применение такого устройства будет оправдано:
  • Для обучения работе с микроконтроллерами школьников и студентов.
  • Для построения разнообразных роботов, квадрокоптеров или иных умных устройств конструкторами-любителями.
  • Для создания систем «Умного дома». Возможность создания локального пульта управления (на сенсорном дисплее или обычном и клавиатуре), достаточное количество входов-выходов для подключения датчиков и исполнительных устройств, возможность организации удалённого управления через Интернет – всё есть для реализации такого решения. В пользу его говорят и завышенные цены на готовые системы «умного дома». Можем посоветовать тем, кто решит использовать Arduino Due в этих целях, обратить внимание на бесплатную систему контроля и мониторинга Tesla Scada для ПК и мобильных устройств. Использование в качестве концентратора датчиков и интеллектуального устройства в системе интернета вещей (IoT). Готовые решения для Arduino есть у IBM. Это и библиотеки для Arduino IDE Arduino Client for MQQT , и брокер для тестирования Mosquitto , и платформа IBM Internet of Things Foundtation .
Однако, стоит рассмотреть и ядро платы – 32-битный микроконтроллер, ведь именно он является главной «изюминкой» Arduino Due.

Как уже упоминалось выше, работа с платой возможна из-под Atmel IDE, но есть и собственная среда разработки IDE . Кроме того, необходимо разобраться как подключиться и отлаживать устройство.
Первый нюанс заключается в том, что для заливки новой прошивки требуется стереть старую во флэш-памяти.
Второй в используемом для загрузки USB-порте. На приведённом в начале статьи рисунке, слева можно увидеть 2 порта. Для программирования следует использовать нижний.
В остальном процесс создания проекта и отладки стандартен для устройств Arduino. Необходимыми предпосылками для успешной работы с устройством будет:
  • Формулировка задачи. Требуется определить какое устройство будет получено на выходе, какими функциями оно будет обладать.
  • Определение необходимых плат расширения. Для расширения функциональности и повышения удобства работы с готовым устройством могут потребоваться специальные шилды – дисплеи, внешняя память, модули связи и т.п. Помните про совместимость по уровню напряжения!
  • Состав оборудования определён, теперь необходимо всё увязать в единое устройство. Для этого, возможно, потребуется изготовить электронные платы сопряжения, подготовить шлейфы для связи, изготовить или купить конструкцию для размещения электронной начинки.
  • Подбор датчиков и исполнительных устройств, разработка подвижной конструкции. Для случаев летающих, ездящих, шагающих или плавающих устройств задача может быть очень нетривиальной.
  • Написание программы, загрузка её в плату, тестирование, отладка и удовлетворение от качественно проделанной работы.

    {{#setlogo:ArduinoCommunityLogo.png}}

    Проверка/Оформление/Редактирование: Мякишев Е.А.

    Знакомство с Arduino Due

    Чтобы подключить Arduino Due к компьютеру, понадобится USB -кабель с разъемом Micro-B . Этот кабель, с одной стороны, будет питать плату электричеством, а с другой, позволит ее программировать.

    Подключите кабель разъемом Micro-B к так называемому «порту для программирования» на Due . Это USB-порт, который находится ближе к DC -разъему, т.е. разъему для питания переменным током. Чтобы загрузить скетч, открываем меню Инструменты > Плата (Tools > Board) и выбираем там . Затем выбираем нужный порт в меню Инструменты > Порт (Tools > Port) .

    На официальном форуме Arduino есть специальная ветка , посвященная Arduino Due .

    Чтобы программировать на Due , версия IDE Arduino должна быть не старее 1.5 . Загрузить ее можно отсюда .

    Отличия от плат на базе ATmega

    Использование Arduino Due почти ничем не отличается от использования других Arduino . Однако несколько важных отличий и функциональных расширений все же есть.

    Контакты на Arduino Due расположены так же, как и на Arduino Mega 2560 .

    Питание

    Микроконтроллеру, которым оснащена Arduino Due , нужно питание 3,3 вольт – это значит, что все датчики и прочие устройства можно будет питать только этими 3,3 вольтами . Если подключить более высокое напряжение (вроде 5 вольт , которыми обычно питаются Arduino ), это приведет к повреждению Due .

    Плата может питаться либо от USB -коннекторов, либо от DC -разъема. При использовании DC -разъема напряжение должно быть в пределах 7-12 вольт .

    Arduino Due оснащена импульсным стабилизатором напряжения, чьи характеристики соответствуют требованиям для устройств с функцией USB -хоста. Благодаря этому Due может выступать в качестве источника питания для USB -устройства, подключенного к ее штатному USB -порту. То есть, по сути, служить USB -хостом. Однако для этого она сама должна быть подключена к источнику питания через DC -разъем.

    USB-порты на Due

    Модель Arduino Due оснащена двумя USB -портами. Штатный USB -порт поддерживает CDC -коммуникацию (от Connected Device Class ; означает то, что плата будет отображаться для ОС как виртуальный последовательный порт) через объект SerialUSB и подключен напрямую к микропроцессору SAM3X . Другой USB -порт – это порт для программирования. Он подключен к чипу ATMEL 16U2 , который служит USB-UART преобразователем. Именно этот порт по умолчанию используется для загрузки скетчей и коммуникации с Arduino .

    Преобразователь USB-UART подключен к первому UART ’у микропроцессора SAM3X . Благодаря этому с портом для программирования можно взаимодействовать при помощи объекта Serial из языка Arduino .

    USB -коннектор на штатном порте напрямую подключен к контактам USB -хоста SAM3X . Таким образом, благодаря штатному порту Due можно использовать и как клиентское периферийное USB -устройство (например, как мышь или клавиатура, подключенные к компьютеру), и как USB -хост, к которому могут быть подключены различные USB -устройства (вроде тех же мыши, клавиатуры или телефона на Andriod ). Кроме того, этот порт можно использовать как виртуальный последовательный порт при помощи объекта SerialUSB в языке программирования Arduino .

    Автоматический (программный) сброс

    Микроконтроллер SAM3X отличается от микроконтроллеров AVR тем, что перед тем, как снова его программировать, его flash -память должна быть очищена. Это можно сделать вручную – сначала секунду нажимать на кнопку очистки памяти, потом нажать на кнопку в IDE Arduino , а после этого нажать на кнопку сброса.

    Это скучная и монотонная процедура, однако ее можно автоматизировать. Но для каждого из портов это делается по-разному:

    • Штатный порт. Когда штатный порт, работающий на скорости 1200 бит/с , открывается и закрывается, это запускает процедуру т.н. «мягкой очистки» flash -память очищается, а плата перезагружается при помощи загрузчика. Если микроконтроллер во время этого процесса по какой-то причине зависнет, то процедура «мягкой очистки» , скорее всего, не сработает, т.к. выполняется при помощи ПО внутри самого микроконтроллера.

    В то же время, если штатный порт будет открыт/закрыт не на 1200 бит/с , а на какой-то другой скорости, то SAM3X сброшен не будет. Чтобы воспользоваться монитором порта и с его помощью увидеть, какие данные скетч будет отправлять в самом начале работы Due , в секцию setup() нужно вписать дополнительный код – благодаря ему SAM3X перед выполнением скетча будет ждать открытия SerialUSB -порта:

    while (! Serial) ;

    Если нажать на Due кнопку сброса (Reset ), то будет сброшен и SAM3X , и USB -соединение. Если у вас во время этого разрыва будет открыт «Монитор порта» , то для восстановления соединения его нужно будет закрыть и снова открыть.

    • Порт для программирования. USB -порт для программирования использует чип-преобразователь USB-UART , подключенный к первому UART ’у микроконтроллера (а если точнее – к контактам RX0 и TX0 ). Кроме того, два контакта этого чипа подключены к контактам Reset и Erase на SAM3X . Таким образом, когда вы открываете порт для программирования, то перед самым началом коммуникации чип запускает последовательность Erase-Reset , тем самым очищая память SAM3X .

    Это более надежная процедура, чем та, что имеется на штатном порте, и если микроконтроллер зависнет, она должна сработать лучше.

    Чтобы настроить последовательную передачу данных через порт для программирования, нужно использовать объект Serial . Все скетчи, использующие последовательную коммуникацию на базе Uno , должны работать таким же образом. Порт для программирования на Due работает примерно так же, как последовательный порт Uno – в том отношении, что преобразователь USB-UART сбрасывает плату каждый раз, когда вы открываете коммуникацию через монитор порта (или другую последовательную коммуникацию).

    Нажатие на Reset во время коммуникации через порт для программирования не оборвет USB -соединение с компьютером, т.к. сброшен будет только микропроцессор SAM3X .

    USB-хост

    Когда Due выступает в качестве хоста, она еще и обеспечивает периферийное устройство электричеством. Поэтому мы рекомендуем подключить ее к питанию через DC -разъем.

    Разрядности АЦП и ШИМ

    Кроме того, в Due можно менять установленную по умолчанию разрядность для считывания и записи аналоговых данных (10 бит и 8 бит , соответственно). Она может поддерживать разрядность до 12 бит – и для АЦП , и для ШИМ . Более подробно читайте на соответствующих страницах – и .

    Расширенная функциональность SPI

    Модель Due также имеет SPI -шину с расширенными возможностями, которые могут пригодиться, когда к плате подключено несколько устройств, и они общаются с нею на разных скоростях. Более подробно читайте .

    Установка драйверов

    OSX

    • На OSX никаких драйверов устанавливать не нужно. В зависимости от версии ОС перед вами может появиться окно, спрашивающее, не хотите ли вы открыть сетевые настройки. Кликните на кнопку «Network Preferences…» , а затем на «Apply» . Плата Due будет показана как «Not Configured» , но работать все же будет. После этого из «System Preferences» можно выйти.

    Windows (тестировалось на XP и 7)

    • Загрузите Windows -версию IDE Arduino и распакуйте загруженный файл. Убедитесь, что структура распакованных файлов осталась нетронутой.
    • Подключите Due к компьютеру при помощи USB -кабеля через порт для программирования.
    • Когда плата будет подключена, Windows должна запустить процесс установки драйверов. Впрочем, самостоятельно найти драйвер она не сможет. Вам нужно будет помочь ей сделать это. Образно говоря, ткнуть ее в этот драйвер носом.
    • Нажмите кнопку «Пуск» (или клавиши Win + X) и откройте «Панель управления» .
    • Кликните по пункту «Система и безопасность» , потом по «Система» и, наконец, по «Диспетчер устройств» .
    • Ищите секцию «Порты (COM и LPT)» . Здесь должен быть открытый порт «Arduino Due Prog. Port» .
    • Кликните по нему правой кнопкой и выберите пункт «Обновить драйверы...»

    Linux

    • Установка драйверов не требуется.

    Установка ядра Arduino SAM

    Если вы используете Arduino IDE версии 1.6.2 и новее, то вам надо будет установить ядро, поддерживающее Arduino Due . Инструкции для этой процедуры описаны .

    С точки зрения пользователя процесс загрузки скетча на Due такой же, как и на других моделях Arduino . Мы рекомендуем использовать для этих целей порт для программирования, но вообще делать это можно через оба USB -порта. Для загрузки через порт для программирования нужно проделать следующее:

    • Подключите плату к компьютеру, подсоединив USB -кабель к порту для программирования на Due (это порт, находящийся ближе к DC -разъему).
    • Откройте IDE Arduino .
    • В меню Инструменты > Порт (Tools > Serial Port) выберите порт Due .
    • В меню Инструменты > Плата (Tools > Board) выберите Arduino Due (Programming Port) .

    Теперь на Arduino Due можно загружать скетчи.

    Более подробно читайте на странице , описывающей оборудование платы.

    Мощная плата Arduino DUE имеет 32-битное ядро, производительность которого существенно превосходит 8-ми битные чипы, установленные на других платах итальянского производителя. Питание платформы осуществляется от внешнего источника или от USB порта. На процессор Atmel при его изготовлении записывается загрузчик, что позволяет обойтись без внешних программаторов. Широкий ассортимент входов позволяет осуществлять Arduino DUE простые проекты и решать сложные задачи.

    Платформа укомплектована средствами связи с ПК, другими платами Arduino, планшетами, смартфонами и другими автоматизированными устройствами. Программируется с помощью ПО производителя, загрузить программы на SAM3X можно только стерев flash-память. Осуществить программирование Arduino DUE можно через один из двух USB портов. Выводы платформы аналогичны плате Arduino 1.0, что облегчает использование ее в проектах с применением других продуктов компании. Доступная на Arduino DUE цена делает этот микроконтроллер одним из самых популярных в своем классе.

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

    Плата DUE имеет следующие технические параметры:

    • Питание – 3,3 В (не рекомендуется подавать напряжение более этого значения на выводы во избежание повреждения устройства);
    • Flash-память – 512 кБ;
    • ОЗУ микрочипа – 96 кБ;
    • Тактовая частота – 84 МГц;
    • Количество цифровых входов – 54;
    • Количество аналоговых входов – 2;
    • Габариты – 102х53 мм;
    • Расстояние между выводами 2,54 мм.

    Для подключения Arduino Due к компьютеру понадобится USB-кабель типа Micro-B. USB-кабель необходим как для питания, так и для прошивки устройства.

    Один конец кабеля с разъемом micro-USB вставьте в разъем для программирования Arduino Due (находится возле разъема питания). Для прошивки скетча необходимо в среде программирования Ардуино IDE из меню Tools > Board выбрать пункт Arduino Due (Programming port), а также из меню Tools > Serial Port выбрать соответствующий последовательный порт.

    Основные отличия от плат на основе микроконтроллеров ATMEGA

    В целом, для программирования и работы с Arduino Due используются те же принципы, что и с другими моделями Ардуино. Однако, есть и несколько ключевых отличий Due от других плат.

    Печатная плата Due похожа на модель Arduino Mega 2560.

    Напряжение

    Микроконтроллер в составе Arduino Due работает от 3.3В, что влечет за собой некоторые ограничения. В частности, напряжение, используемое для питания подключаемых датчиков или управления исполнительными устройствами, так же не может превышать 3.3В. В случае подачи большего напряжения (например, 5В, характерных для большинства плат Ардуино) Arduino Due выйдет из строя.

    Устройство может быть запитано, как от USB, так и от разъема питания. Во втором случае, напряжение питания должно лежать в диапазоне от 7В до 12В.

    В Arduino Due есть импульсный стабилизатор напряжения с высоким КПД, соответствующий требованиям, предъявляемым USB-хост устройствам. Благодаря этому, Ардуино может служить источником питания для какого-либо USB-гаджета, подключаемого к штатному USB-порту, выполняющего роль хоста. Ардуино может работать в качестве USB-хоста только при питании от внешнего источника.

    Последовательные порты на Arduino Due

    В Arduino Due есть два USB-порта. Штатный USB-порт (обозначен на рисунке, как Native ) соединен непосредственно с процессором SAM3X и поддерживает последовательную CDC-связь через объект SerialUSB . Второй USB-порт - это порт для программирования (обозначен на рисунке, как Programming port). Он подключен к контроллеру ATMEL 16U2, выступающего в роли USB-UART преобразователя. По умолчанию для загрузки программ и взаимодействия с Ардуино используется порт для программирования.

    Преобразователь USB-UART порта для программирования соединен с первым UART`ом контроллера SAM3X. Поэтому программно взаимодействовать с эти портом можно через объект "Serial".

    Штатный USB-порт подключен непосредственно к выводам контроллера SAM3X, отвечающим за функцию USB-хоста. Штатный USB-порт позволяет использовать Arduino Due как в качестве внешнего периферийного устройства компьютера (например, USB-мыши или клавиатуры), так и в роли USB-хоста, к которому можно подключать различные устройства (такие, как мышь, клавиатура или Android-смартфон, например). А с помощью объекта "SerialUSB", описанного в языке программирования Ардуино, этот же порт можно использовать и как виртуальный последовательный порт.

    Автоматический (программный) сброс

    Микроконтроллер SAM3X отличается от AVR-микроконтроллеров тем, что перед перепрошивкой его флеш-памяти, ее содержимое сперва необходимо стереть. Чтобы сделать это вручную, необходимо где-то на секунду зажать кнопку очистки памяти, нажать кнопку Upload в среде Ардуино, а затем нажать кнопку сброса.

    Чтобы не повторять эту процедуру каждый раз, она была автоматизирована и может выполнятся программно как через штатный порт, так и через порт для программирования:

    Штатный порт

    Процедура программной очистки (т.н. "soft-erase") автоматически активируется при закрытия порта, открытого на скорости 1200 бит/с. При это очищается флеш-память контроллера, устройство сбрасывается и стартует загрузчик. Если по какой-либо причине во время этого в процессоре произойдет сбой, то вероятнее всего soft-erase не произойдет, поскольку эта процедура выполняется программно самим контроллером.

    Открытие и закрытие штатного порта на скоростях, отличных от 1200 бод, не приведет к перезагрузке контроллера SAM3X. Для того, чтобы использовать программу Serial Monitor для наблюдения данных, отправляемых вашим скетчем, необходимо добавить несколько строк кода в программный блок setup(). Такой фрагмент заставит контроллер SAM3X дождаться открытия порта SerialUSB перед выполнением основной программы:

    While (!Serial) ;

    Нажатие кнопки сброса на Arduino Due приводит не только к перезагрузке SAM3X, но и к сбросу USB-соединения. В случае, если программа Serial Monitor открыта, то после разрыва соединения необходимо закрыть и заново открыть ее для восстановления сеанса связи.

    Порт для программирования

    USB-порт для программирования взаимодействует с USB-UART преобразователем Ардуино, который в свою очередь соединен с первым UART`ом микроконтроллера SAM3X (а именно, с выводами RX0 и TX0). Причем микросхема USB-UART преобразователя управляет также выводами Reset и Erase главного микроконтроллера. При открытии последовательного порта, USB-UART преобразователь перед тем, как обмениваться данными с UART`ом контроллера, формирует на выводах Erase и Reset активный уровень сигнала, что приводит к очистке памяти SAM3X. Этот способ более надежен, чем "программная очистка" при использовании штатного USB-порта, и работает даже в случае зависания процессора.

    Для программного взаимодействия с этим портом в среде разработки Ардуино используйте объект "Serial". Аналогично построена работа с USB-портом и на Arduino Uno, поэтому все программы, написанные для Uno, будут так же работать и на Due. Кроме того, порт для программирования Arduino Due ведет себя так же, как и последовательный порт Uno, в том плане, что USB-UART преобразователь в составе устройства сбрасывает главный контроллер при каждом открытии последовательного порта.

    Нажатие кнопки сброса во время использования порта для программирования не разрывает USB-соединение с компьютером, поскольку сбрасывается только главный контроллер SAM3X.

    USB-хост

    Arduino Due может работать в качестве USB-хоста для периферийных устройств, подключаемых к порту SerialUSB. Для получения дополнительной информации и примеров кода, см. справку по USB-хост .

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

    Разрядность АЦП и ШИМ

    В Arduino Due есть возможность изменять разрядность для считывания и формирования аналоговых величин (которые, по умолчанию, равны 10 и 8 битам, соответственно). Максимальная разрядность АЦП и ШИМ составляет 12 бит. Для получения дополнительной информации см. описание функций analogWriteResolution() и analogReadResolution() .

    Расширенные возможности SPI

    Установка драйверов для Arduino Due

    OSX

    • В операционной системе OSX установка драйверов не требуется. В зависимости от установленной версии ОС, при подключении устройства к компьютеру должно появится диалоговое окно, предлагающее открыть Сетевые настройки (“Network Preferences”). Кликните "Network Preferences...", дождитесь появления окна и нажмите кнопку "Apply". Arduino Due появится в системе под статусом "Not Configured", но при этом будет работать нормально. Теперь можно выйти из системных настроек.

    Windows (протестировано на XP и 7)


    Linux

    Прошивка программы в Arduino Due

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

    Для прошивки своей программы через порт для программирования, сделайте следующее:

    • Подключите устройство к компьютеру, подсоединив USB-кабель к порту для программирования Ардуино (этот порт расположен ближе к разъему питания).
    • Откройте среду разработки Ардуино.
    • В меню "Tools" выберите пункт "Serial Port" и укажите последовательный порт, ассоциированный в системе с Arduino Due
    • Из меню "Tools > Boards" выберите пункт "Arduino Due (Programming port)"

    После выполнения указанных действий можно прошивать в Ардуино свою программу.

Рекомендуем почитать

Наверх