Подключение usb устройств к arduino

Обновлено: 07.07.2024

Начало работы с Arduino Due

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

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

Для обсуждения Arduino Due есть специальный форум.

Основные отличия от плат на основе микроконтроллеров 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 перед выполнением основной программы:

Нажатие кнопки сброса на 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 интерфейс SPI имеет ряд дополнительных возможностей, которые могут быть полезными при взаимодействии с несколькими устройствами на шине, работающими на разных скоростях. Для получения дополнительной информации см. статью использование расширенных возможностей библиотеки SPI в Arduino Due.

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

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

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

Linux

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

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

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

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

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

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

Плата расширения USB Host Shield 2.0 позволяет Arduino выступать в роли родительского USB-устройства для практически любой имеющейся USB-периферии. С этой платой открывается масса новых возможностей для создания интересных устройств. В настоящее время платой USB Host Shield 2.0 поддерживаются следующие классы устройств:

HID-устройства, такие как клавиатуры, мыши, джойстики и др.;

игровые устройства: Sony PS3, Nintendo Wii, Xbox360;

USB преобразователи: FTDI, PL-2303, ACM, а также некоторые аппараты и GPS-приемники;

цифровые фотоаппараты: Canon (EOS, PowerShot), Nikon.

Плата расширения USB Host Shield
CashBack 1
USB Host Shield 2.0

Интерфейс USB

Последовательный интерфейс USB используется для подключения периферийных устройств. Соответственно, существуют понятия "главное устройство" — хост (он управляет обменом данными через интерфейс, выступает инициатором обмена) и "периферийное устройство" — клиент (в процессе обмена данными он "подчиняется" хосту). Логика работы хоста и клиента принципиально отличаются, поэтому нельзя напрямую соединять устройства "хост — хост" и "клиент — клиент". Имеются специальные устройства — хабы, которые подключаются в качестве клиента к одному хосту и, в то же время, выступают хостом для других периферийных устройств. Хабы также применяются для "разветвления" шины USB.

Физически интерфейс USB (до версии 2.0) использует 4 провода

D–, D+ — линии приема/передачи данных (обозначения D+ и D– условны, с электрическими потенциалами это никак не связано).

Спецификация USB 1.0 определяла два типа разъемов: A — на стороне контроллера или концентратора USB и B — на стороне периферийного устройства. Впоследствии были разработаны миниатюрные разъемы для применения USB в переносных

Назначение контактов USB 1.0, USB 2.0
Назначение контактов USB 1.0, USB 2.0

и мобильных устройствах, получившие название Mini-USB. Новая версия миниатюрных разъемов, называемых Micro-USB, была представлена USB Implementers Forum 4 января 2007 года.

Благодаря встроенным линиям питания USB позволяет подключать периферийные устройства без собственного источника питания (максимальная сила тока, потребляемого устройством по линиям питания шины USB, не должна превышать 500 мА, у USB 3.0 — 900 мА).

Стандарт USB поддерживает концепцию plug-and-play. Эта концепция подразуме- вает, что пользователю достаточно "воткнуть" устройство в соответствующий порт ПК. Дальше ОС автоматически определит тип подключенного устройства, найдет подходящий для данного устройства драйвер, сконфигурирует устройство и т. д. Для того чтобы это все работало, стандартом USB предусмотрены некие общие требования для всех устройств:

каждое устройство содержит дескриптор (описание) устройства;

есть общий для всех USB-устройств механизм, который позволяет ОС прочитать дескриптор устройства для того, чтобы идентифицировать устройство, узнать его характеристики;

есть общий для всех USB-устройств механизм, который позволяет ОС выполнить первичную конфигурацию устройства (например, присвоить устройству новый адрес).

HID (Human Interface Device) — устройство, подключаемое к вычислительной технике, с тем, чтобы с ней мог работать человек. Говоря проще, HID — это устройство ввода информации. Устройства ввода необходимы для непосредственного участия человека в работе компьютера: для введения исходных данных для вычислений, для выбора параметров действия, для редактирования имеющихся данных и результатов и т. д.

HID-устройства ввода различаются по типу вводимой информации:

для текстовой информации — это преимущественно клавиатуры. Они служат для управления техническими и механическими устройствами (компьютер, калькулятор, кнопочный телефон). Каждой клавише устройства соответствует один или несколько определенных символов. Возможно увеличить количество действий, выполняемых с клавиатуры, с помощью сочетаний клавиш. В клавиатурах такого типа клавиши сопровождаются наклейками с изображением символов или действий, соответствующих нажатию;

для звуковой информации — это микрофон. Электроакустические приборы, преобразующие звуковые колебания в колебания электрического тока, используются во многих устройствах (телефоны и магнитофоны, приборы звукозаписи и видеозаписи на радио и телевидении, для радиосвязи);

для графической информации:

• сканер — устройство для считывания плоского изображения и представления его в растровой электронной форме;

• цифровая камера — устройство (фотоаппарат), использующее массив полупроводниковых светочувствительных элементов (матрицу), на которую изображение фокусируется с помощью системы линз объектива. Полученное изображение сохраняется в электронном виде в памяти самой камеры или же дополнительном цифровом носителе;

• веб-камера — цифровая видео- или фотокамера, способная в реальном времени фиксировать изображения, предназначенные для дальнейшей передачи по сети Интернет как в потоковом режиме, так и за определенные промежутки времени;

• плата захвата (тюнер) — электронное устройство для преобразования аналогового видеосигнала в цифровой видеопоток. Используется для захвата телесигнала, сигнала с камер видеонаблюдения и др.

HID-устройства управления различаются по функционалу:

относительное позиционирование (обрабатывают информацию о перемещении):

• мышь — манипулятор, преобразующий механические движения в движение курсора на экране. Различают механические, оптические, гироскопические, сенсорные мыши;

• трекбол — манипулятор, чей принцип работы сходен с шариковой механической мышью и аналогичен мыши по принципу действия и по функциям. Однако пользователь не передвигает мышь, а управляет с помощью ладони или пальцев непосредственно шариком, закрепленным на специальном держателе с датчиками;

• трекпойнт — миниатюрный тензометрический джойстик, применяемый в ноутбуках для замены мыши. Трекпойнт считывает направление и силу давления пальца пользователя;

• тачпад — сенсорная панель, применяемая, в основном, в портативных ком- пьютерах. В отличие от трекпойнта, считывающего давление пальца, тачпад считывает емкостные характеристики при соприкосновении пальца с поверхностью емкостных датчиков. Поэтому управление тачпадом с помощью непроводящих предметов (ручка, карандаш, стилус) достаточно проблематично;

• джойстик — устройство ввода информации, которое представляет собой ка- чающуюся в двух плоскостях ручку, боковое давление которой считывается датчиками в основании устройства. Используется как игровой гаджет, а так же как средство управления (например, роботизированной техникой на производстве);

абсолютное позиционирование (высчитывают абсолютные координаты на плоскости, в качестве которой выступает устройство):

• графический планшет — устройство для ввода графики (отдельных линий и рисунков) от руки непосредственно в компьютер. Состоит из пера и плоского планшета, чувствительного к нажатию пера;

• тачскрин (сенсорный экран) — устройство ввода информации, представляющее собой экран, реагирующий на прикосновения к нему (используется в современных смартфонах, платежных и информационных терминалах).

Отдельно хочется выделить специальные HID-устройства для компьютерных игр:

игровые мыши — отличаются от обычных компьютерных мышей высокой чувствительностью, настраиваемым весом, большим количеством программируемых кнопок;

кейпады — специальные игровые клавиатуры-приставки, в которых кнопки скомбинированы для максимального удобства игрока (в современные модели встраивается мини-джойстик);

руль и педали — манипуляторы для игр жанра "автогонки" (рэйсинг);

джойстики — используются для игр жанра "авиасимуляторы";

геймпады — специальные игровые манипуляторы, используемые в аркадных жанрах (перешли с игровых консолей);

танцевальные платформы — специальные платформы с датчиками давления. Управление производится с помощью ног. Используются для игр жанра "танцевальные аркады";

музыкальные инструменты (гитары, барабаны) — специальные манипуляторы в форме музыкальных инструментов с кнопками и датчиками давления. Используются для игр жанра "музыкальные аркады".

Операционные системы, как правило, имеют встроенные драйверы HID-класса, так что у разработчиков отпадает необходимость в трудоемкой собственной разработке драйвера для нового устройства. Чтобы определить устройство как HID, необходимо поддержать ряд структур, описывающих HID-интерфейс, а также написать алгоритм обмена по interrupt-каналу (каналу прерываний) передачи данных. Во многих отношениях устройства HID не имеют никаких особенных отличий от других USB-устройств. Однако кроме требований, которые относятся ко всем USB-устройствам, устройства HID выдвигают ряд дополнительных требований:

HID-устройство должно иметь Interrupt In — конечную точку для выдачи данных в хост. Interrupt Out — конечная точка для получения периодических данных от хоста, является опциональной и может не использоваться;

HID-устройство должно содержать дескриптор класса — Device Class Descriptor и один или более дескрипторов репорта HID Report Descriptor;

HID-устройство должно поддерживать специфический для класса управляющий запрос Get_Report, а также опционально поддерживать дополнительный запрос Set_Report;

для передачи Interrupt In (данные из устройства в хост) устройство должно положить данные репорта в FIFO соответствующей конечной точки и разрешить передачу;

для передачи Interrupt Out (данные из хоста в устройство) устройство должно разрешить соответствующую конечную точку Out, а затем, после прихода пакета, забрать данные из FIFO.

В библиотеке USB Host Shield 2.0 имеется пример для подключения к Arduino HID-мыши USB — USBHIDBootMouse.pde. Загружаем его и смотрим в мониторе по- следовательного порта результат работы скетча.

Скетч для подключения HID-мыши USB
Скетч для подключения HID-мыши USB

Теперь создадим собственный проект. Будем управлять роботом с помощью игрового манипулятора — руля Defender Forsage Drift GT. Для этого необходимо организовать беспроводное управление моделью робота данным устройством. Для беспроводной передачи данных воспользуемся беспроводным радиомодулем NRF24L01.

Руль подсоединен к плате Arduino через USB Host Shield. В качестве блока управления подсоединяем к Arduino модуль 2,4 ГГц NRF24L01. Дополнительно к Arduino робота подключаем такой же радиомодуль 2,4 ГГц NRF24L01. Электрическая схема блока робота представлена на рисунке.

Электрическая схема блока робота
Электрическая схема блока робота

Загружаем скетч USB_HID_Desc.pde, входящий в примеры библиотеки USB_Host, подсоединяем к Arduino через USB Host Shield наш руль и получаем Descriptor Report HID-устройства

Скетч получения Descriptor Report HID-устройства
Скетч получения Descriptor Report HID-устройства

Usage Page Gen Desktop Ctrls(01) Usage Game Pad

Collection Application Collection Logical Report Size(08)

Report Count(04) Logical Min(00) Logical Max(FF00) Physical Min(00) Physical Max(FF00) Usage X

Usage Y Usage Z Usage Z Usage Rz

Report Count(01) Logical Max(07) Physical Max(3B01) Unit(14)

Usage Hat Switch Input(01000010)

Unit(00) Report Size(01)

Report Count(0C) Logical Max(01) Physical Max(01) Usage Page Button(09) Usage Min(01)

Usage Max(0C) Input(00000010)

Usage Page Undef(00) Report Size(08) Report Count(02) Logical Max(01) Physical Max(01) Usage Input(00000010)

End Collection Collection Logical Report Size(08) Report Count(04) Physical Max(FF00) Logical Max(FF00) Usage Output(00000010) End Collection End Collection

Чипы FTDI, CH340, ATMEGA16U2 с драйверами позволяют плате Arduino и USB адаптерам подключаться к компьютеру и взаимодействовать с внешним окружением через Serial UART. С их помощью Ардуино может скачивать прошивку, загружать и отправлять данные, не заботясь о низкоуровневой поддержке последовательного соединения. В платах разных производителей могут использоваться различные чипы и драйвера.

В этой статье мы рассмотрим наиболее популярные микросхемы и узнаем, как скачать и установить соответствующие драйвера для нормальной работы Arduino Uno, Nano, Mega и другими платами.

Чипы CH340g, FTDI FT232, ATMEGA 16U2 / 8U2

Чип FTDI

Обычно с чипами USB преобразователей и поиском драйверов сталкиваются в тот момент, когда возникает проблема подключения платы к компьютеру. Скорее всего, вы тоже нашли эту статью, пытаясь заставить Arduino IDE взаимодействовать с китайской ардуинкой. Давайте разберемся, какую роль во взаимодействии с компьютером играет чип преобразователя и зачем устанавливать какие-то драйверы, чтобы все заработало.

Зачем нужен USB / UART TTL преобразователь

USB преобразователи в Ардуино

Мы должны использовать внешние чипы, потому что контроллер ATMEGA328, являющийся сердцем большинства современных плат Arduino, не содержит в своих кристаллических внутренностях встроенного преобразователя. Если вы посмотрите на плату ардуино, то увидите корпус чипа, на нем можно разобрать и его тип.

Arduino USB CH340
Arduino USB CH340
Arduino USB CH340
Arduino USB CH340

Исторически наиболее популярным вариантом чипов USB/UART конвертера была линейка микросхем от шотландского производителя FTDI. Главным ее недостатком была стоимость и весьма странная политика в области контроля контрафакта, зачастую приводящая к тому, что легальные купленные устройства блокировались драйверами компании. Сегодня существенную конкуренцию FTDI составляют микросхемы семейства CH340, массово производимые многочисленными китайскими производителями. Они гораздо дешевле и достаточно надежны и это постепенно привело к тому, что в большинстве недорогих контроллеров Arduino и адаптеров установлены именно чипы CH340 (CH340g).

Процедура установки драйвера для CH340g на самом деле очень проста и почти всегда проходит без ошибок на самых популярных операционных системах Windows7, Windows10. Именно поэтому никаких проблем с использованием недорогих ардуино плат, несущих на себе чип CH340, почти никогда не возникает.

USB драйвер для ардуино

Если мы подключаем Ардуино к компьютеру, то чип с помощью драйвера попросит систему открыть порт и начнет взаимодействие . И для чипов разных производителей потребуются разные драйвера. Проблемы возникают, когда драйвера нет. Система пытается найти его для подключенного устройства, не находит и мы никогда не увидим его в списке устройств. Для решения проблемы надо найти и скачать соответствующие драйвера, а затем установить их на компьютер. Ниже мы рассмотрим, как это делается на примере USB драйвера CH340.

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

Китайские микросхемы CH340 используется довольно часто благодаря своей низкой стоимости и вполне приемлемому качеству.

В серию микросхем CH340 входят CH340T (мост USB – UART), CH340R (мост USB – IrDA) и CH340G (мост USB – UART). Последняя микросхема является наиболее распространенной и удобной с точки зрения корпуса с меньшим числом выводов.

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

Процесс установки драйвера разбивается на несколько шагов:

  • Загрузка драйвера.
  • Распаковка скачанного архива.
  • Найдите папку CH341ER.
  • Запуск исполнительного файла SETUP.EXE.
  • Нажать на кнопку Установить.
  • На этом установка драйвера на компьютер завершена.

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

Характеристики CH340

Микросхема обладает следующими характеристиками и возможностями:

  • Не нужно большое количество внешних компонентов, требуются только кварцевый резонатор и 4 конденсатора.
  • Создание виртуального последовательного порта.
  • Возможность применения всех приложений для COM-портов.
  • Работает с сигналами уровней 5 и 3,3В.
  • Выполнена в удобном корпусе SO-16 с малым количеством выводов и небольшим числом внешних компонентов.
  • Поддержка полной скорости спецификации USB0.
  • Наличие встроенного буфера типа FIFO.
  • Поддержка всех стандартных режимов передачи данных.
  • Поддержка симплексного, полудуплексного, дуплексного асинхронных режимов обмена.
  • Поддержка интерфейсов RS23, RS422, RS485.
  • Рабочие температуры лежат в диапазоне от -40С до 85 С.

Распиновка микросхемы CH340G представлена на рисунке.

Распиновка

На плате обозначены следующие контакты:

2 – TXD сигнал UART.

3 – RXD сигнал UART.

4 – напряжение питания.

7 – XI вход для кварцевого резонатора и конденсатора.

8 – XO выход для кварцевого резонатора и конденсатора.

12 – DCD сигнал UART.

13 – DTR сигнал UART.

14 – RTS сигнал UART.

15 – Включение инверсии входа RXD.

Микросхема эмулирует работу последовательного порта. Все приложения работают с конвертером интерфейса CH340G без изменения кода.

Чип FTDI для Arduino

Следующим поколением аппаратных мостов были микросхемы FT232B и FT245B. В них добавился новый режим работы BitBang, также появилась возможность реализации восьми независимых линий ввода-вывода. Помимо этого была изменена схемотехника кристалла.

С 2006 года начался выпуск микросхем FT232R и FT245R, в которых были интегрированы на кристалл энергонезависимая память, тактовый генератор и другие компоненты. Основными преимуществами микросхемы FT232RL являются хорошая функциональность, легкость монтажа и минимальная обвязка. Распиновка модуля представлена на рисунке ниже.

Arduino USB UART чипы и драйвера CH340, CH340G, FTDI

Характеристики микросхемы FT232R:

  • Одночиповый переходник USB-UART.
  • Поддержка режимов передачи 7и 8 бит данных, 1 и 2 стоповых бита.
  • Бесплатные драйверы VCP и D2XX.
  • Скорость передачи 300 бод – 3 мегабод для RS422.
  • Наличие встроенного идентификационного номера.
  • Настраиваемые выходы CBUS.
  • Вывод состояния приема и передачи на внешние светодиоды.
  • Наличие буферов FIFO для высокоскоростного приема/передачи данных.
  • Усовершенствованный режим bit bang.
  • Встроенная память EEPROM на 1024 байт.
  • Наличие встроенного стабилизатора напряжения на 3.3 В и для внешних сигналов от 1,8 до 5В.
  • Высокая нагрузочная способность.
  • Малое потребление энергии.
  • Совместима с USB 2.0 Full Speed.
  • Температурный диапазон от -40С до 85С.

Микросхема предоставляется с заранее запрограммированной памятью EEPROM, поэтому дополнительное программирование энергонезависимой памяти перед началом работы не требуется.

Чип ATMEGA16U2/8U2 для ардуино

Чипы ATMEGA16U2/8U2 используются в качестве моста между USB-портом и последовательным портом. Версия платы ATmega8u2 использовалась для предыдущих плат Ардуино Uno и Mega.

Технические характеристики чипа ATMEGA16U2:

Контроллер ATmega8u2 в своей прошивке уже имеет установленные USB COM драйвера, поэтому установка дополнительных не требуется.

Характеристики ATmega8u2:

  • Диапазон напряжений от 2,7В до 5,5В.
  • 32 вывода.
  • Скорость ЦПУ 16 МГц.
  • Объем флеш-памяти 8Кб.
  • Поддержка встроенных интерфейсов I2C, SPI, UART, USART.
  • Размер ядра 8 бит.
  • Несколько режимов работы – холостой ход, энергосберегающий режим, режим ожидания, расширенный режим ожидания и выключение питания.
  • Возможность внешнего и внутреннего прерывания.
  • 22 программируемых линии ввода-вывода.
  • 512 б энергонезависимой памяти.
  • 512 б ОЗУ.
  • Рабочие температуры от -40С до 85С.

Заключение и выводы

Микросхемы-контроллеры последовательного порта служат в качестве преобразователя интерфейса USB. Наиболее популярными являются микросхемы CH340 (преобразователь USB в UART), аппаратные мосты от фирмы FTDI, к которым относятся микросхемы FT8U232, FT8U245, FT232R и FT245R (USB-UART и USB – FIFO) и ATmega8U2 и ATmega16U2.

ArduinoServo1_bb
ArduinoServo1_схема
ArduinoServo1_foto

Рассмотренный в статье Arduino. Управление сервоприводом, на примере SG90 скетч. По мне не очень интересен, так как не даёт полного представления о том, для чего использовать сервопривод. А серво привод это не просто туда сюда, это точные сильные движения. За одно мы рассмотрим, как взаимодействовать с платой Arduino через USB.

Рассмотрим следующий скетч:

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

Рассмотрим данный скетч:

Нам так же понадобится библиотека Servo.h

Мы объявляем так же переменные:

С объектом Servo myservo. И переменная pos в которую мы будем записывать позицию, на которую надо установить сервопривод.

Так же нам понадобится переменная

Сюда мы будем заносить данные поступающие с порта USB на плату.

Мы так же задаём, что общаться с серво приводом мы будем через 9 ножку (myservo.attach(9);)

Все действия с портом USB проходят через объект Serial. Функция объекта Serial begin() выставляет скорость передачи данных по порту usb. в нашем случае begin(9600) означает, что скорость передачи данных с портом USB будет 9600 бод(бит/c).

Дальше начинается самое интересное, блок loop:

Конструкция if(если выполняется условие). В нашем случае Serial.available() возвращает кол-во байт доступных для чтения. соответственно если их больше нуля, выполняем блок кода внутри if.

соответственно если мы ожидаем только цифры и какое нибудь значение обозначающее окончание ввода, то можно из кода вводимого символа вычесть 48 и у нас будет цифровое значение.

Данное значение мы помещаем в переменную incomingByte.

То есть в переменной incomingByte будет находится либо цифра или число большее 10 или меньшее 0.

if (incomingByte>=0 and incomingByte<=9) else

тоесть если incomingByte больше или равно 0 и меньше или равно 9 то это число. Рассмотрим что мы будем делать если во входящем байте закодирована цифра:

мы умножаем значение позиции pos на 10 и прибавляем знчение цифры. По сути прибавляем новое число с права. например если сейчас pos=1 и мы ввели 2 то pos=12.

Читайте также: