Usb uart подключение к ардуино

Обновлено: 05.07.2024

При подключении платформ разработки на базе Arduino к компьютеру, вы связываете между собой два мира: микроконтроллерный и микропроцессорный.

Стандартным интерфейсом плат Arduino на микроконтроллерах ATmega328P является UART, а у современных компьютеров используется USB. Чип USB-UART CH340G служит мостом между микроконтроллером и USB-портом компьютера, который позволяет загружать прошивку в плату, а также передавать между собой данные.

Список поддерживаемых плат

Зачем нужен драйвер?

При подключении любого устройства к USB-порту компьютера необходимо подсказать операционной системе, как с ним общаться. На стороне компьютера таким переводчиком является специальная программа, называемая драйвером. Например, драйвер преобразователя USB-UART работает в режиме эмуляции последовательного COM-порта. Т. е. при подключении вашей платы к компьютеру чип моста с помощью драйвера попросит операционную систему открыть виртуальный COM-порт, через который начнётся общение между платой и ПК.

Каждый производитель делает свои чипы с соответствующими драйверами. К сожалению, не все драйверы предустановлены в операционных системах по умолчанию. Когда нужного драйвера нет, ОС пытается найти его для нового подключённого устройства, не находит, и вместо виртуального COM-порта вы видите надпись «USB 2.0 SERIAL» или «Неизвестное устройство». Для решения проблемы скачайте и установите драйвер для вашей операционной системы.

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

Рассмотрим установку драйвера на примере платы Iskra Uno в операционной системе Windows. С остальными платами ситуация будет аналогичная.


Подключите плату к компьютеру по USB. Для коммуникации используйте кабель USB (A — B). Установите и настройте интегрированную среду разработки Arduino IDE. Скачайте и установите драйвер CH340 для Windows. Откройте диспетчер устройств Windows и раскройте вкладку «Порты (COM и LPT)».


Если во вкладке отображается пункт USB-SERIAL CH340 (COMx) — значит, всё получилось, и можно переходить к прошивке платформы. Если пункта не обнаружено или вкладка «Порты (COM и LPT)» вовсе отсутствует, следуйте дальнейшей инструкции.


В диспетчере устройств Windows раскройте вкладку «Другие устройства» и найдите пункт USB2.0-Serial .


Далее кликните правой кнопкой мыши по пункту USB 2.0 Serial и выберите раздел «обновить драйвер».


Выберите пункт «Выполнить поиск драйверов на этом компьютере».


Укажите путь к директории драйвера и нажмите кнопку «установить». В нашем случае: C: Program Files (х86) Arduino drivers


Откройте повторно вкладку «Порты (COM и LPT)» в диспетчере устройств. Если там отображается пункт USB-SERIAL CH340 (COMx) — значит, всё получилось, и теперь можно переходить к прошивке платформы.

Рассмотрим что такое и как настроить UART соединение в Ардуино, напишем небольшой скетч для понимания работы.

Определение UART

UART означает Универсальный асинхронный приемник/передатчик. Это аппаратное устройство (или схема), используемое для последовательной связи между двумя устройствами.

Ниже мы обсудим, что такое соединение UART и как оно работает. Мы также напишем простой эскиз, чтобы показать, как использовать UART-интерфейс Arduino Uno.

Из Википедии: Универсальный асинхронный приёмопередатчик (УАПП, англ. Universal Asynchronous Receiver-Transmitter, UART) — узел вычислительных устройств, предназначенный для организации связи с другими цифровыми устройствами. Преобразует передаваемые данные в последовательный вид так, чтобы было возможно передать их по одной физической цифровой линии другому аналогичному устройству.

Соединение UART-устройств

Подключение двух устройств UART друг к другу просто и понятно. На рисунке ниже показана основная схема подключения.


Один конец предназначен для передачи данных (называется TX-контакт), а другой - для приема данных (называется RX-контакт). Мы можем соединить только два UART устройства вместе.


Принцип действия

UART работает путем преобразования данных в пакеты для отправки или восстановления данных из полученных пакетов.

Отправка последовательных данных

Перед отправкой данных устройство UART преобразует байты данных в биты. После преобразования данных в биты устройство UART разбивает их на пакеты для передачи. Каждый пакет содержит стартовый бит, блок данных, бит четности и стоп-биты. На рисунке ниже приведен пример пакета данных.


После подготовки пакета цепь UART отправляет его через Tx -контакт.

Прием последовательных данных

Принимающее устройство UART проверяет принятый пакет (через вывод RX) на наличие ошибок, вычисляя число единиц и сравнивая его со значением бита четности, содержащегося в пакете.

Если ошибки при передаче отсутствуют, то для получения блока данных он перейдет к обработке стартового бита, стоповых битов и бита четности. Возможно, ему понадобится получить несколько пакетов, прежде чем он сможет пересобрать весь байт данных из фреймов данных. После восстановления байт сохраняется в буфере UART.

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

Параметры UART

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

Скорость передачи

Скорость в бодах - это количество битов в секунду (бит/с), которое может передавать/принимать устройство UART. Для правильной передачи данных необходимо настроить оба прибора UART с одинаковой скоростью передачи данных в бодах. Распространенными значениями скорости передачи данных являются 9600, 1200, 2400, 4800, 19200, 38400, 57600 и 115200 бит в секунду.

Длина данных

Длина данных - это количество битов на байт данных.

Бит четности

Бит четности - это бит, добавляемый к передаваемым данным и сообщающий приемнику, является ли число единиц в передаваемых данных нечетным или четным. Возможная настройка для бита четности - "нечетный" (ODD) или "четный" (EVEN).

  • ODD - бит четности равен '1', если в данных присутствует нечетное число 1. В противном случае бит четности устанавливается равным нулю.
  • EVEN - бит четности равен '1', если в данных присутствует четное число единиц. В противном случае бит четности устанавливается равным нулю.

Количество стоп-битов

Приборы UART могут использовать ни одного, один или два стоповых бита для маркировки конца переданного набора битов (так называемых пакетов).

Управление потоком

Flow Control (управление потоком) - это метод, позволяющий избежать риска потери данных при передаче данных через UART. В устройстве UART в качестве управления потоком для запуска/остановки передачи данных используются специальные символы.

Интерфейс Arduino UART

Arduino имеет один или несколько контактов UART в зависимости от платы. Для нашего проекта, мы будем использовать Arduino Uno, который имеет только один UART интерфейс, найденный на контакте 0 (RX0) и контакте 1 (TX0).

Arduino контакты 0 и 1 также используются для связи с Arduino IDE через USB. Так что если вы будете загружать эскизы в UNO, убедитесь, что сначала вы отсоединили любые провода на контактах 0 и 1. На рисунке ниже показано расположение контактов UART TX и RX.


UART логический уровень

Уровни логики UART могут отличаться у разных производителей. Например, Arduino Uno имеет 5В логический уровень, а RS232 порт компьютера имеет +/-12В логический уровень.

Подключение Arduino Uno непосредственно к порту RS232 повредит Arduino. Если оба устройства UART не имеют одинаковых логических уровней, то для подключения устройств необходима подходящая схема преобразователя логического уровня.

Простой проект

Узнав, как работает UART, давайте теперь сделаем простой проект и напишем скетч, демонстрирующий, как использовать коммуникацию UART, используя Arduino Uno.

Наш проект заключается в управлении встроенным светодиодом Arduino дистанционно через UART. Кнопка, подключенная к первой плате Uno, будет управлять встроенным светодиодом второй платы Uno и наоборот.

Компоненты

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

  1. Arduino Uno (2 шт.)
  2. Кнопки (2 шт.)
  3. Макет
  4. Перемычки

Схема соединения

На рисунке ниже показано, как подключить компоненты, используемые в нашем проекте.


Скетч

После подготовки и сборки компонентов, мы готовы программировать наши платы. Для этого проекта обе платы будут иметь одинаковые скетчи.

Сначала, мы устанавливаем режим контакта 8 (кнопка) в INPUT_PULLUP , режим контакта 13 (светодиод) в OUTPUT и устанавливаем начальное состояние контакта 13 в состояние LOW (светодиод выключен).

Как всегда, Arduino позволяет нам легко использовать встроенное оборудование UART с помощью объекта serial. Последовательный serial объект имеет необходимые функции для простого использования UART-интерфейса Arduino.

Serial.begin()

Для связи через UART-интерфейс необходимо сначала его настроить. Самый простой способ настроить UART Arduino - это использовать функцию Serial.begin(speed) . Параметр speed ("Скорость") - это скорость передачи данных, с которой мы хотим запустить UART. С помощью этой функции остальные параметры UART будут установлены на значения по умолчанию:

  • Data length = 8 (длина данных)
  • Parity bit = 1 (бит четности)
  • Number of Stop Bits = None (количество стоп-битов = нет)

Если настройки по умолчанию для вас не работают, используйте функцию Serial.begin(speed,config) вместо Serial.begin(speed) . Дополнительный параметров config используется для изменения настроек длины блока данных, бита четности, количества стоповых битов. Определенные значения для конфигурирования параметра можно найти здесь.

Нижеприведенный код добавляет Serial.begin(9600); внутри setup() для инициализации Arduino Uno UART со скоростью 9600 бит/с и другими параметрами, установленными по умолчанию.

Следующая часть кода - это чтение и сохранение значения, полученного из последовательного интерфейса. Для этого мы будем использовать функцию Serial.available() вместе с оператором If , чтобы проверить, не получены ли данные. Затем мы вызовем Serial.read() для получения одного байта полученных данных и сохраним значение в переменную data_rcvd . Значение data_rcvd управляет включением/выключением встроенного светодиода.

Serial.available()

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

Serial.read()

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

Serial.write()

Для отправки данных через контакты Arduino TX0 мы будем использовать функцию Serial.write(val) . Параметр val - это байт (или серия байтов), который будет отправлен.

В нашем скетче мы будем посылать значение char в зависимости от состояния контакта 8. Мы отправим значение char '1', если пин 8 HIGH, или значение char '0', если пин 8 LOW.

Загрузка скетча и тестирование

Сохраните скетч как arduino_uart_tutorial.ino. Оставшийся шаг - загрузить эскиз на обе платы Arduino Uno. Пожалуйста, не забудьте отсоединить провода, подключенные к контактам TX0 и RX0, перед загрузкой эскиза. После успешной загрузки переподключите провода к контактам TX0 и RX0.

После загрузки мы можем управлять встроенным светодиодом одной из плат, нажимая кнопку, подключенную к другой плате. Наш эскиз проверяет состояние кнопки и посылает соответствующее значение char "0" или "1" на другую плату для управления встроенным светодиодом.


Загрузчик (bootloader)

Загрузчик живёт в самом конце Flash памяти МК и позволяет записывать прошивку, отправляемую через UART. Загрузчик стартует при подаче питания на МК, ждёт некоторое время (вдруг кто-то начнёт слать код прошивки по UART), затем передаёт управление основной программе. И так происходит каждый каждый раз при старте МК.

  • Загрузчик позволяет прошивать МК через UART;
  • Загрузчик замедляет запуск МК, т.к. при каждом запуске ждёт некоторое время для потенциальной загрузки прошивки;
  • Загрузчик занимает место во Flash памяти. Стандартный старый для Arduino NANO занимает около 2 кБ, что весьма существенно!
  • Именно загрузчик мигает светодиодом на 13 пине при включении, как индикация работы.

Программатор

Помимо записи прошивки во flash память, программатор позволяет:

  • Считывать содержимое Flash памяти (скачать прошивку на компьютер)
  • Полностью очищать чип от всех данных и настроек
  • Записывать и читать загрузчик
  • Считывать/записывать EEPROM память
  • Читать и настраивать фьюзы (fuses, fuse-bits) и лок биты.

USB-TTL (UART)

USB-TTL Arduino
DTR DTR
RX TX
TX RX
GND GND
VCC/5V/3.3V VCC

Фьюзы (Pro)

Фьюзы (фьюз-биты) являются низкоуровневыми настройками микроконтроллера, которые хранятся в специальном месте в памяти и могут быть изменены только при помощи ISP программатора. Это такие настройки как выбор источника тактирования, размер области памяти под загрузчик, настройка отсечки по напряжению и прочее. Фьюз-биты собраны по 8 штук в байты (т.н. байты конфигурации), как типичный регистр микроконтроллера AVR. Таких байтов может быть несколько, они называются low fuses, high fuses, extended fuses. Для конфигурации байтов рекомендуется использовать калькулятор фьюзов (например, вот такой), в котором просто ставятся галочки на нужных битах, и на выходе получается готовый байт в hex виде. Рассмотрим на примере ATmega328p:


Лок-биты (Pro)

Лок-биты (lock-bits) позволяют управлять доступом к памяти микроконтроллера, что обычно используется для защиты устройства от копирования. Лок-биты собраны опять же в конфигурационный лок-байт, который содержит: BOOTLOCK01, BOOTLOCK02, BOOTLOCK11, BOOTLOCK12, LOCKBIT1, LOCKBIT2 (для ATmega328). Калькулятор лок-битов можно использовать этот. BOOTLOCK биты позволяют запретить самому МК запись (самопрограммирование) во flash память (область программы и область загрузчика)


А вот локбиты LOCKBIT позволяют запретить запись и чтение flash и EEPROM памяти извне, при помощи программатора, т.е. полностью защитить прошивку от скачивания и копирования:


Таким образом включив LOCKBIT1 (лок-байт будет 0x3E) мы запретим внешнюю запись во Flash и EEPROM память, т.е. при помощи ISP программатора, а включив LOCKBIT1 и LOCKBIT2 (лок-байт: 0x3C) полностью заблокируем заодно и чтение данных из памяти микроконтроллера. Повторюсь, всё описанное выше относится к ATmega328p, для других моделей МК читайте в соответствующих даташитах.

ISP программатор

USBasp


Решение проблем

Решение большинства проблем с загрузкой через программатор (независимо от того, что написано в логе ошибки):

  • Вытащить и обратно вставить usbasp в usb порт
  • Вставить в другой usb порт
  • Переустановить драйвер на usbasp
  • Проверить качество соединения USBasp с МК
  • Перепаять переходник и отмыть флюс

Для прошивки микроконтроллера, тактирующегося низкой частотой (менее 1 МГц внутренний клок):

Основные ошибки в логе Arduino IDE

Arduino as ISP

Почти любая другая плата Arduino может стать ISP программатором, для этого нужно просто загрузить в неё скетч ArduinoISP:

  • Открыть скетч Файл > Примеры > 11. ArduinoISP > ArduinoISP
  • Всё! Ваша Arduino теперь стала ISP программатором
  • Подключаем к ней другую Arduino или голый чип по схеме ниже
  • Выбираем Arduino as ISP в Инструменты > Программатор
  • И можем писать загрузчики, фьюзы или загружать прошивку напрямую во Flash


    Либо поставить поставить конденсатор ёмкостью


Решение проблем

Для прошивки микроконтроллера, тактирующегося низкой частотой (менее 1 МГц внутренний клок):

  • Arduino ISP: нужно изменить частоту загрузки прошивки в скетче Arduino ISP и снова прошить его в ардуино-программатор (см. строку в скетче 45 и ниже);

Работа в Arduino IDE

Прошивка загрузчика

Как убрать загрузчик?

Загрузка скетча

В Arduino IDE можно зашить скетч через программатор, для этого надо нажать Скетч > Загрузить через программатор. Это очень удобно в том случае, когда МК используется без загрузчика, или просто голый МК.

Фьюзы

Конфигуратор платы в Arduino IDE устроен следующим образом: каждой плате в Инструменты > Плата соответствует свой набор настроек, включая фьюзы, которые прошиваются вместе с загрузчиком . Некоторые из них:

  • Загрузчик (путь к файлу)
  • Скорость загрузки (через загрузчик)
  • Объем доступной flash и sram памяти
  • Весь набор фьюзов и лок-биты

Файл конфигурации называется boards.txt и найти его можно в папке с ядром Arduino: C:\Program Files (x86)\Arduino\hardware\arduino\avr\boards.txt. Документацию на boards.txt можно почитать здесь. При желании можно вывести нужные фьюзы через калькулятор (читайте выше), изменить их в boards.txt (главное не запутаться, для какой выбранной конфигурации платы делается изменение) и прошить в МК, нажав Инструменты > Записать загрузчик.


Такая работа с фьюзами максимально неудобна, но есть и другие варианты:

  • Ядро GyverCore для atmega328, в нем мы сделали кучу готовых настроек фьюзов прямо в настройках платы, читайте в уроке про GyverCore. Несколько загрузчиков, включая вариант без загрузчика, выбор источника тактирования и другие настройки в один клик мышкой.
  • Программа AVRdudeprog, про нее поговорим ниже

Avrdudeprog

  • Чтение/запись/очистка flash памяти
  • Чтение/запись/очистка eeprom памяти
  • Полная очистка чипа
  • Калькулятор фьюзов и локбитов (чтение/запись)


Более подробный обзор на avrdudeprog можно посмотреть здесь . Давайте посмотрим на калькулятор фьюзов. Выбираем свой микроконтроллер и программатор (можно добавить другие модели микроконтроллеров и программаторов, читай тут). Переходим во вкладку Fuses, нажимаем прочитать. При успешном чтении увидим текущий набор настроек своего чипа. Можно их поменять и загрузить. Важно! Галку инверсные биты не трогаем! Лок-биты и отключение RST заблокирует микроконтроллер, не трогайте их, если такой цели нет! Можно загружать прошивку или загрузчик из .hex файла, указав путь к ней на первой вкладке в окне Flash. Очень удобная утилита для низкоуровневой работы с МК.

Видео

Чипы 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.

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