Модифицирование преобразователя usb uart на чипе cp2102. Использование адаптера usb–to–com для подключения контроллера эсуд автомобиля к pc

В условиях, когда современные компьютеры стремительно теряют COM-порты, преобразователь USB <-> COM — штука для радиохламера очень полезная и нужная. Но и преобразователь USB <-> UART — тоже штука полезная и нужная. Мне, естественно, захотелось иметь и то, и другое, и ещё чего-нибудь, и чтобы всё это не слишком дорого.

Купить или собрать любую из подобных штуковин сегодня не проблема. В сети — куча схем, в магазинах — куча девайсов. Однако, как оказалось, — купить их можно только отдельно друг от друга! И это не смотря на то, что все, рассмотренные мной, преобразователи USB <-> COM преобразуют уровни сигналов сначала в TTL, а уже потом в RS-232. Разумеется ни одно из подобных решений не устроило меня в плане универсальности. Зачем я буду покупать отдельно преобразователь USB <-> UART, если он уже есть в составе USB <-> COM? Размышляя подобным образом, я решил, что лишних денег у меня нет и лучшим решением будет сделать свой собственный универсальный преобразователь.

В качестве основы, была взята хорошо известная микросхема cp2102. Во-первых, она позволяет эмулировать полноценный COM-порт (все линии, а не только Rx, Tx), во-вторых, она имеет минимум обвеса и позволяет сделать плату минимальных размеров, ну и в-третьих, у неё оказалась самая привлекательная цена. Схема преобразователя практически без изменений была взята из даташита к этой микрухе, я только разрезал её напополам, чтобы при необходимости иметь возможность отделить USB to UART от UART to RS-232.

Схема преобразователя USB to UART :

Схема преобразователя UART to RS232 :

В итоге получилось даже не два (как изначально замышлялось) а целых три устройства в одном. Обе части разработанного девайса можно использовать как самостоятельные преобразователи USB <-> UART и UART <-> RS232 (жаль только, что последнему требуется внешнее питание). Соединив две части вместе, получаем преобразователь USB <-> COM. Для сопряжения частей преобразователя я использовал разъёмы IDC-14F и BH-14, которые при правильной разводке очень удачно припаиваются к двухсторонним платам (ниже на фото можно увидеть, как именно).

Фото готового устройства :

Единственный трудный момент — пайка микросхемы cp2102, поскольку она выпускается в QFN корпусе. Паять её нужно феном, предварительно облудив припаиваемые контакты на микросхеме и площадки на плате. При этом вовсе не обязательно использовать какие-то специальные дорогие флюсы. Достаточно обычной сосновой канифоли, только её нужно растворить в спирте и потом наносить на площадки шприцом или специальной кисточкой. Если спирта нет — растворить канифоль можно в водке, однако в этом случае после нанесения раствора придётся немного подождать, поскольку вода испаряется значительно хуже спирта.

Разъём USB специально соединён с платой гибким проводом, а не жёстко к ней припаян. Как показывает практика, такие преобразователи очень часто используются для подключения к компьютеру различных конвертеров (COM to HART, COM to RS485 и тому подобных) и при жёсткой пайке USB-разёма именно он чаще всего отламывается, не выдерживая веса всего подключенного к преобразователю оборудования.

Отдельно хотелось бы остановиться на вопросе выбора конденсаторов. В даташите указаны номиналы конденсаторов по питанию 4,7 мкФ и 1 мкФ. Зачастую для экономии места на плате или по каким-то другим причинам вместо них ставят конденсаторы поменьше. Опять же, как показывает практика, это может привести к нестабильности питания подключаемых к преобразователю устройств (которые не имеют внешнего питания и должны питаться от COM-порта) и, как следствие, к их неработоспособности.

Обзор конвертера USB - UART TTL на CP2102

Зачем он нужен

Программировать различные ардуино- и не адуино- образные контроллеры, получать информацию на компьютер со всего, что имеет последовательный интерфейс с TTL логикой.
Я в своих проектах использую его с , и .

Чем он отличается от других подобных устройств

Дополнительным выводом DTR, который можно напрямую подключить к входу RESET на контроллерах не имеющих USB на плате. После этого при программировании давить кнопку RESET не нужно. Для меня это очень удобно, когда контроллер спрятан недрах моей поделки и доступ к кнопке бывает очень затруднительным.

Поддержкой производителя, совместимостью с оригинальными драйверами и ПО, в отличие от поддельных FTDI, у которых

Дополнительными выводами (дырками под контакты) на плате, например, позволяющими уводить USB в энергосберегающий режим.

Интересной возможностью менять VID, PID и текст, с которым опознается плата, собирать свой драйвер со требуемыми параметрами, что довольно интересно в коммерческих проектах. Об этом я расскажу дальше.

Тех, кого заинтересовал, пожалуйста под кат

Заказал я на премию за обзор много всякой мелочевки у на Ebay и в том числе за $1.79

Товар ехал целых 54 дня. Ну к нашей почте я уже привык, чего не скажешь о курсе доллара к рублю (((

Обычный желтый пакет. Внутри платки в запаянных прозрачных пакетиках. Все как обычно.

На плате есть дополнительные отверстия, куда можно впаять выводы дополнительного модемного контроля и перевода USB в режим SUSPENDED

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

  • Чип CP2102 от
  • Скорость обмена данными по UART 300Бит/сек - 1Мбит/сек
  • Буфер чтения 576 байт, записи 640 байт
  • Поддержка USB 2.0 12Мбит/сек
  • Поддержка режима SUSPENDED USB
  • Встроенный стабилизатор питания 3.3В 100мА
  • EEPROM с конфигурационными параметрами 1024 байт
  • Поддерживаемые ОС Windows 8/7/Vista/Server 2003/XP/2000, Windows CE, Mac OS-X/OS-9, Linux, Android
  • Возможность настройки параметров платы и драйверов под свои проекты
  • Размеры платы 26.5 x 15.6 мм
По размеру плата мало отличается от
на фото сравнения с другими конвертерами USB/UART



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

Для соединения к контроллеру нужны 5 проводов:
GND - GMD
VCC - V5.0 (V3.3) в зависимости от используемой платы
TX - RX
RX - TX
RESET контроллера - DTE


Теперь контроллер можно программировать не нажимая кнопку RESET.

Плата опознается в системе как
Silicon Labs CP210X USB to UART Bridge (COM35)

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

Для начала скачиваем и запускаем "> (мне для запуска утилиты потребовалось еще скачать Java Runtime)

Теперь можно изменить следующие параметры:

  • Vendor ID (VID). Идентификатор производителя. Значение «по-умолчанию» 10С4 (шестнадцатеричный формат). В данном случае принадлежит компании SiLabs.
  • Product ID (PID). Идентификатор продукта. Значение «по-умолчанию» EA60 (шестнадцатеричный формат). В данном случае обозначает все мосты CP210x. Э
  • Max Power. Максимальный ток потребления, запрашиваемая мостом на шине USB. Значение «по-умолчанию» 32 (шестнадцатеричный формат). Максимальное значение 500мА
  • Power use attributes. Режим питания. Bus-powered (питание от шины USB) или Self-Powered (питание от внешнего источника).
  • Release Version. Номер выпуска. Значение «по-умолчанию» 1.0. Поля могут принимать значения 1-99 в целой и дробной части.
  • Serial Number. Серийный номер. Значение «по-умолчанию» составляет «0001» (текстовый формат). Поле может принимать любое текстовое значение длиной до 64 символов. Нужно для подсоединение к компьютеру нескольких устройств
  • Product string. Поле может принимать любое текстовое значение длиной до 126 символов. Данный идентификатор отображается в операционной системе при первичном подключении моста CP210x к компьютеру и помогает пользователю в выборе подходящего драйвера.
  • Custom Data Lock. Защита конфигурационных данных.

При изменение VID и PID необходима обязательная пересборка драйверов, так как стандартный драйвер настроен на VID и PID Silicon Labs

И после нехитрого мастера-диалога получаем дистрибутив драйверов с требуемым набором VID и PID и желаемым названием в системе

Итог

Данная плата одна из самых дешевых конвертеров USB/UART не использующих поддельные чипы.
Имеет вывод DTR, позволяющий автоматически посылать RESET для загрузки ПО в контроллер
Позволяет настраивать VID, PID и драйвера под свои проекты
К покупке рекомендую

Интерфейс UART поддерживается практически всеми микроконтроллерами и весьма удобен при разработке и отладке всяческих МК-девайсов: и прошивку через загрузчик залить, и дебаговые логи устройства на компьютере просмотреть. Но, увы, в современных компьютерах COM-порт постепенно исчезает из числа доступных интерфейсов, будучи вытесненным шиной USB, а в ноутбуках и подавно отсутствует. Это и заставило озадачиться вопросом изготовления переходника USB -> COM. Обычно, такие переходники делают на основе популярной микросхемы серии FT232, но есть у нее пара недостатков: 1) стоимость микросхемы ~150 рублей 2) микроскопические размеры со всеми вытекающими отсюда сложностями пайки и изготовления печатной платы.

В качестве альтернативы FT232 обнаружилась менее известная CP2102, стоящая раза в два дешевле, и имеющая раза в два меньшие размеры да еще и корпус QFN-28 (5мм х 5мм). Эта микросхема представляет собой полностью готовый USB-UART-преобразователь не требующий никакой внешней обвязки (пара фильтрующих конденсаторов на шину питания не в счет) и обладающий следующими возможностями:

  • соответствие спецификации USB 2.0, full-speed (12 Mbps)
  • интегрированная EEPROM на 1024 байта для хранения ID производителя, ID продукта, серийного номера, описания устройства и т.д.
  • скорость виртуального RS232 от 300 bps до 1 Mbits
  • поддержка форматов передачи данных 5, 6, 7 и 8 байт данных; 1, 1.5 и 2 стоп-бита, различные контроли четности
  • буфер приемника - 576 байт, буфер передатчика - 640 байт
  • встроенные источники опорной частоты, встроенный стабилизатор на 3.3В
  • Драйвера для Windows Vista/XP/Server 2003/2000, Linux, Mac OS-X / OS-9

Схема

Схема адаптера взята из даташита, опциональная периферия была выброшена и добавлен светодиод для индикации наличия питания.

Вилка DB9 распаяна аналогично выходу COM-порта компьютера, вот его распайка (направление сигналов указано относительно компьютера).

Основная проблема конструирования переходника - проблема печатной платы и монтажа QFN-28 была решена приклеиванием микросхемы вверх ногами к печатной плате и подпаивание ее выводов проводом ПЭВ 0.1мм. Несколько муторно, зато, миниатюрно. Вот, что в результате получилось:


И в корпусе от DB-9 все выглядит следующим образом:

Драйвера

Теперь, тщательно проверив монтаж, можно испытывать. Девайс обнаружился системой но драйверов windows найти не смогла. Их я скачал . После чего у меня в системе появился новый порт - COM5 в Windows и /dev/ttyUSB0 в Linux. Теперь, соединив RXD на TXD (2 и 3й выводы вилки переходника) и запустив любой COM-терминал, можно убедиться, что байты отсылаются.. и принимаются.. причем, последние совпадают с первыми..

Один важный момент: уровни сигналов на выходе переходника - ТТЛ и отличаются от уровней сигналов стандартного интерфейса RS232, поэтому, к переходнику нельзя подключить напрямую обычные устройства для COM-порта, более того, это может вывести из строя переходник. Для подключения стандартных COM-устройств необходимо добавить преобразователь уровней на микросхеме семейства MAX232.

Ниже можно скачать проект в Eagle, а также готовый рисунок печатной платы для лазерного утюга (для утюжки двусторонней печатной платы рекомендую печатать рисунок на кальке).

Адаптер RS232 порта для последовательной универсальной шины (USB to UART Bridge) представляет собой высокоскоростное USB-устройство предназначенное для подключения периферийных устройств, соответствующих стандарту TIA/EIA232.

Адаптер выполнен на основе контроллера Silicon Labs CP2102 и предназначен для использования в системах, оснащенных шиной USB. Подключение периферийных устройств выполняется с помощью стандартного разъема DB9.

  • поддержка спецификации USB 2.0;
  • полный набор сигналов интерфейса RS232;
  • амплитуда сигнала RS232 не хуже ±5.5В;
  • питание от шины USB.

Установка и подключение адаптера

  1. Перед установкой и подключением адаптера CP2102 убедитесь в том, что внешние устройства обесточены и подключены к контуру заземления.
  2. Затем, подключите внешнее устройство к разъему DB9.
  3. Установите адаптер в свободный USB-разъем, визуально контролируя посадку контактных площадок до упора в разъеме.
  4. подачи питающих напряжений на устройство ввода-вывода система готова к работе.

Приступая к установке адаптера CP2102, следует принять во внимание, что спецификация USB предполагает возможность «горячего» подключения, но ее действие не распространяется на периферийные устройства последовательного ввода-вывода. При работе с адаптером необходимо подключать только обесточенное периферийное оборудование! Несоблюдение этих правил может привести к выходу из компонентов компьютерной системы!

Установка драйвера на базе операционных систем Windows

После подключения адаптера CP2102 к USB разъему в среде операционных систем Windows 2K/XP он обнаруживается следующим образом:

Теперь необходимо скачать драйвер CP210x USB to UART . Запускаем его установку:

В процессе работы пре-инсталлятора пользователь может указать каталог, в котором будут храниться драйвера устройства CP210x :


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

Поэтому в процессе автоматического обнаружения операционная система последовательно запрашивает оба файла.

Драйвера адаптера должны быть предложены системе для установки из каталога, указанного в процессе пре-инсталляции, если иное не предусматривает сам пользователь. Первоначально операционная система устанавливает драйвера для композитного устройства (USB Composite Device):

Если текущая версия драйверов USB Composite Device не подтверждается цифровым сертификатом компании Microsoft, пользователь предупреждается об этом следующим сообщением:

Путь к необходимым для композитного устройства файлам выбирается исходя из условий пре-инсталляции:

Следующий этап инсталляции – драйверы моста USB to UART. Как и на предыдущем шаге рекомендуется автоматическая установка.

Если текущая версия драйверов USB to UART Bridge Controller не подтверждается цифровым сертификатом компании Microsoft, пользователь предупреждается об этом со общением. Путь к необходимым файлам выбирается исходя из условий пре-инсталляции:

После инсталляции в свойствах системы появляется контроллер универсальной последовательной шины CP210x USB Composite Device, и последовательный порт COM3, реализованный с помощью CP210x USB to UART Bridge Controller, а список устройств при обретает следующий вид:

Все, драйвер установлен!