Переходник usb com – Как сделать USB-COM (RS-232) переходник

Мультиобзор четырех преобразователей USB-COM с BuyinCoins

Дешевые USB-COM: расстановка точек над i. Расчлененка. Осциллограммы. Тестирование в реальных условиях.

Как-то потребовалось максимально бюджетно организовать прием факсов в небольшом офисе. Для этого с антресолей был извлечен факс-модем ZyXEL Omni 56K, а поскольку в современных компьютерах порт RS-232 давно канул в лету, на БиКе было решено приобрести адаптер USB-COM. Изучение предложений привело к решению купить все четыре имеющиеся в продаже на тот момент разновидности, благо итоговая стоимость получалась порядка 11 USD.
Итого по получении из пакета были извлечены (слева направо в порядке возрастания цены):

1. buyincoins.com/item/341.html — $1.91
Условно назовем его «бесхвостый».

2. buyincoins.com/item/337.html — $2.05
Условно «прозрачный».

3. buyincoins.com/item/351.html — $3.09
Условно «черный».

4. buyincoins.com/item/4026.html — $3.91

Условно «серый».

Вне конкурса выступает порт RS-232, встроенный в материнскую плату GA-8I945GZME

1. «Бесхвостый».

Самый дешевый экземпляр обзора. Выглядит хлипко, плата из корпуса вытаскивается невооруженными руками.

Вместо корпусного чипа просто «капля» на текстолите. Флюс не отмыт.

Идентификатор устройства — VID_1A86&PID_7523, на диске и в интернете наличествуют драйверы под современные 32- и 64-битные операционные системы от Microsoft. После установки драйверов идентифицируется как USB_SERIAL Ch440.
Backtrack linux тоже в курсе о его существовании:


Подключенный осциллограф показал, что выходы RTS и DTR выдают в качестве логической единицы +5В, в качестве логического нуля 0В, то есть никакой не RS-232, а самый что ни на есть незамутненный TTL. То же самое относится к выводу TXD.

В режиме простоя.

В режиме передачи данных. Здесь и далее на всех осциллограммах скорость порта 9600 бод, 8 бит посылка, 1 стоп-бит, нет контроля четности. Развертка — 1 мс/деление, чувствительность — 5 вольт/деление (делитель в щупе установлен в положение 1:10).
В порт выводится одно и то же слово. Первому, кто его назовет — плюс в карму.

2. «Прозрачный».
В отличие от предыдущего не разбирается вообще. Но сквозь прозрачную пластмассу видна такая же «капля», да и определяется в системе с тем же VID-PID. Не удивительно, что и логические уровни оказались такие же.

3. «Черный». Опознался при включении как VID_067B&PID_2303.

Самый свежий драйвер, скачанный с сайта Prolific, завелся с полтыка, что позволяет сделать вывод, что чип — либо оригинальный Prolific, либо поздний клон, не опознающийся драйвером как контрафактный.

На обратной стороне нашлась микросхема-преобразователь уровней SP3243ECA.

Уровень в режиме простоя:

В режиме передачи данных:

4. «Серый».

Тот же VID_067B&PID_2303. Так же заработал с последним драйвером.

Чип преобразователя уровней — MAX211CAI.

Уровень в режиме простоя:

В режиме передачи данных:

Для сравнения эталонная осциллограмма COM-порта материнской платы

Ожидание:

Передача:


Тестирование работоспособности с реальными устройствами.

Устройство №1: спутниковый ресивер Dreambox 500S.

Параметры подключения: 115200 8N1.

Адаптеры на Ch440 выдают в консоль мусор:

Адаптеры на PL2303 работают корректно:

Устройство №2: тот самый ZyXEL Omni 56K

Параметры подключения: 57600 8N1.
Все 4 адаптера подключились успешно.

.

Устройство №3: маршрутизатор Cisco 2801.

Параметры подключения: 9600 8N1.
Все 4 адаптера подключились успешно.

Устройство №4: офисная АТС Nortel Meridian 11C.


Параметры подключения: 9600 8N1
Все 4 адаптера подключились успешно.

Устройство №5: попытаемся прочесть EEPROMы 24Cxx и 93Cxx программатором PonyProg.

Как известно, программа PonyProg2000 позволяет читать и писать большое количество последовательных флэшек и микроконтроллеров, используя последовательный порт компьютера в качестве интерфейса. Отличие от предыдущих испытаний в том, что собственно выводы приема и передачи данных нам понадобятся постольку поскольку. Для программирования используется режим Bit-Banging — имитация сигналов интерфейса методом «дрыгания» в нужном порядке выводов GPIO (DTR, DST, CTS, RTS). На многих форумах электронщиков утверждается, что USB-COM преобразователь для этих целей непригоден вообще. Что мы сейчас и проверим.

Спрятал под спойлер. Много текста и фото.

Сдуваем SPD-чип со старой планки памяти. Это и есть EEPROM 24С02.

Панельки-переходника с SOIC на DIP у меня нету, поэтому подпаиваю по проводу к каждой ноге.

Сигналы порта уходят на ноги чипа через резисторы 4.7к и «подперты» стабилитронами 5.1В согласно схеме.

Оригинальные схемы

Общая часть программатора.

Переходник для I2C.

Переходник для Microwire.

Подаем 5В от USB, запускаем программу, выбираем чип, нажимаем кнопку «Прочитать».
Вот оно, содержимое:

Флэшка прочлась, но очень-очень медленно. На несчастные 256 байт понадобилось порядка 30 секунд. Страшно представить, сколько будет читать флэшка размером хотя бы 1 мегабайт.

Тем не менее, констатируем, что прочесть 24Cxx удалось.

Теперь попробуем прочесть EEPROM с интерфейсом Microwire.
Выдергиваем 93C46 из панельки на старой сетевой плате:

Вставляем в макетку и обвязываем резисторами-стабилитронами согласно схеме.

Нажимаем кнопку «Прочитать».

В ответ получаем нули:

Неужели флэшка пустая? Подключаем стенд к порту на материнской плате, читаем.

Нет, не пустая. В чем же дело? Подключаем логический анализатор и смотрим обмен.

USB-COM:

«Аппаратный» COM:

Кроме ужасающей разницы в периодах следования импульсов видим, что аппаратный порт дрыгает ногой сброса (канал №3), а USB-COM не хочет. Эта нога управляется сигналом TXD порта. Как его разработчики Ponyprog умудрились сделать постоянно высоким, я не знаю. Возможно, это недокументированная возможность именно «аппаратного» порта. Напишите в комментариях, если кто в курсе.

Констатируем: прочитать 93Cxx не удалось.

Итоговая таблица:

Субъективные выводы: с модемом оставлю работать «бесхвостого», ибо если нет разницы, то зачем платить больше. «Прозрачного» и «черного» положу рядом в резерв, так как «капли» по моим наблюдениям долго не живут. В сумку с инструментами брошу «серого» как имеющего максимальные уровни.

mysku.ru

Переходник COM — USB | joyta.ru

В данной статье приведена подборка схем, позволяющая собрать несложное, но крайне  полезное устройство: переходник  Com USB.

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

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

На сегодняшний день подавляющее большинство компьютеров не оснащаются  RS-232 разъемом, поскольку широкое распространение получил стандарт USB.  Но еще существуют многого внешних устройств работающих только с COM портом (различные программаторы, диагностическое оборудование, ресиверы и пр.). Выходом из данной ситуации является использование устройства переходник COM-USB. Ниже приведем несколько вариантов наиболее популярных схем данного  переходника.

Полноценный переходник — COM адаптер для USB порта

на микросхеме FT8U232BM

Основа данной схемы является микросхема FT8U232BM — производителя FIDI Ltd. Устройство построенное по данной схеме поддерживает все сигнальные уровни (DCD, RX, TX, DTR, GND, DSR, RTS, CTS, RI) согласно распиновки COM порта.

Для согласования TTL уровней RS232 интерфейса с уровнями микросхемы FT8U232BM используются две микросхемы 74НС00. Микросхема памяти 93С46 предназначена для  хранения персонального номера (PID), код изготовителя (VID), а так же  заводской номер устройства. Данную микросхему можно и не устанавливать. В этом случае к компьютеру возможно будет подключить всего лишь 1 создающее виртуальный COM-порт устройство. Микросхему памяти AT93С46 возможно заменить на  AT93C66, AT93C56.  Прошивается 93С46 непосредственно на плате при помощи фирменной утилиты производителя FTDI.

Скачать datasheet FT8U232BM (1,4 Mb, скачано: 2 287)

Скачать драйвер для FT8U232BM (1,7 Mb, скачано: 1 980)

Упрощенный вариант на FT8U232BM

Это схема упрощенного USB-COM адаптера, который поддерживает только сигнальные линии RX, TX, RTS, CTS RS232 интерфейса. Для согласования уровней com порта с цифровыми уровнями  FT8U232BM в схему добавлена микросхема MAX232.

Схема переходника для COM с USB на PL2303

Следующая схема построена на микросхеме PL2303HX, которая является преобразователем интерфейса USB в RS232. Производитель PL2303HX — Тайваньская фирма Prolific. В данной схеме также используется приемо-передатчик MAX232, преобразующий сигналы  RX, TX.

Для правильной работы необходимо установить драйвер для виртуального COM-порта. Для этого скачиваем и устанавливаем драйвер по нижеприведенной ссылке.

Скачать драйвер для PL2303HX (3,5 Mb, скачано: 2 669)

Затем настраиваем виртуальный порт: выставляем в окошке «управление потоком» — НЕТ. Затем выбираем свободный номер порта.

USB — COM переходник на микроконтроллере Attiny2313

Питание микроконтроллера Attiny2313 осуществляется непосредственно от шины питания USB. Вся схема собрана на односторонней плате (SMD и ТН варианты). Устройство поддерживает только сигналы Rx и Tx.

Прошивку к переходнику, рисунок печатной платы (SMD и TH), а также программу терминал для проверки адаптера можно скачать по ниже приведенной ссылке:

Скачать файлы для USB переходника (1,4 Mb, скачано: 2 617)

При программировании Attiny2313, фьюзы необходимо выставить следующим образом:

Для работы устройства необходимо установить драйвер виртуального  COM  порта. Для этого скачиваем его:

Скачать драйвер (1,1 Mb, скачано: 2 817)

Теперь вставляем в USB порт компьютера наш адаптер, компьютер должен выдать сообщение «Найдено новое устройство», а затем предложит установить для него драйвер. Выбираем пункт «Установить с указанного места» и нажимаем на кнопку «Далее». Затем в новом окне выбираем путь к папке скаченного и распакованного драйвера и опять жмем кнопку «Далее». Спустя несколько секунд драйвер будет установлен и устройство будет готово к работе.

Для проверки работоспособности устройства, временно замыкаем Rx и Tx выводы и с программы терминала, так же находящегося в архиве, выставляем номер COM порта и отправляем любое сообщение. Для этого пишем например «Привет» и нажимаем кнопку «Send». Если переходник рабочий, то написанное сообщение появится в верхнем окне программы.

Переходник COM-USB на микроконтроллере Atmega8

Еще одна схема COM-USB адаптера теперь уже на микроконтроллере Atmega8 (Atmega48, Atmega88). Схема обеспечивает обработку Rx, Tx, DTR, RTS, CTS сигналов RS232 интерфейса. Драйвер виртуального порта для этой схемы такой же как и для переходника на attiny2313.

Прошивку для atmega8/48/88 и рисунок печатной  платы можно скачать по следующей ссылке:

Скачать файлы для USB — Com на Atmega8 (1,5 Mb, скачано: 4 129)

Фьюзы при программировании  для atmega8/48/88:

 

www.joyta.ru

Как подключить кучу старого RS232 оборудования по USB без регистрации и sms (STM32 + USB-HID)

Вместо вступления


Как обычно я предлагаю заняться странным — попробовать подключить несколько старых RS232 устройств, через один USB порт с помощью синей изоленты и смекалки. Статья не будет большой, скорее это описание что где взять и зачем вообще все это делать.



Зачем?


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

Как правило «мозгами» такого комплекса является компьютер у которого 100500 выходов RS232. Из примеров могу привести место кассира в супермаркете, банкоматы и тому подобное. С первым случаем столкнулся я.

Эти компьютеры не блещут мощностью, но отличаются космической стоимостью. Естественно он перестает отвечать требованиям современных технологий и многим приходит в голову идея заменить их на обычный ПК и получить приличную мощность по адекватной цене, однако быстро выясняется что RS232 на новых ПК вымер как класс. Теперь этот интерфейс стал сугубо специализированным. Соответственно надо или самостоятельно прикручивать кучу RS232 или искать уже готовое спец решение.

Разумеется что можно заменить само оборудование, но если вы посмотрите сколько стоит стационарный лазерный сканер приличной фирмы и помножите эту цену на их количество то передумаете.

Люди не посвященный в тему сразу радостно покупают пучок китайских USBtoRS232 переходников, а дальше все идет очень печально. Лучше этого не делать. Вторым вариантом является покупка специализированной платы расширения с кучей RS232. Этот вариант уже лучше и имеет право на жизнь, но тоже имеет свои недостатки. Например стоимость и проблемы с дровами если используется не Windows или не та версия. Так же не маловажным фактором является доступность в будущем, так как что-то выходит из строя и парк может расширятся в будущем. Потом оказывается что конкретная модель уже не выпускается или не постановляется в конкретную местность и т.д. В общем привязывать себя к конкретному устройству это всегда опасно, особенно если можно этого не делать.

Пробуем что-то сделать


Может показаться странным что примитивные RS232 устройства так сложно и дорого подключить по нормальному если по сути там обычно простые протоколы и примитивный физический уровень. А все потому что обычно подобные аппаратные комплексы используются в коммерческих доходных сферах и покупка оборудования по таким ценам оправдана, а само оборудование уже перешло в разряд специального. Спец оборудование = спец цена вопроса.

Однако все это не мешает попробовать собрать свой бюджетный велосипед. Бонусом получим возможность менять поведение такого своеобразного RS232 мультиплексора и полностью обойдем проблему написания USB драйверов. HID профиль поддерживается почти везде.

Однажды я прочел отличную статью автора RaJa До этого я интересовался USB, но до практики не доходило. В наличии у меня было несколько дешевых отладочных плат, китайских клонов Blue Pill на микроконтроллере Stm32f103c8t6. Сама история и идея создания этой платы очень интересная, стоит поинтересоваться.

Этот микроконтроллер отличается тем что имеет три UART и аппаратную поддержку USB. Это то что может быть нам интересно в разрезе нашей задумки, а вообще микроконтроллер на этой плате, работает на частоте 72Mhz и по характеристикам порвет любое Arduino схожего формфактора. Но самое главное преимущество это повсеместная распространенность этой платы. Я не знаю более простых и дешевых способов пощупать «железный» USB.

Добавив три дешевых преобразователя RS232toUART MAX2323 и немного «рассыпухи» можно собрать своеобразный конвертер интерфейса 3хRS232 <=> USB.

В моем случае нужно было подключить три RS232 устройства к Raspberry Pi 3. Если использовать обычные RS232 <=> USB переходники то в итоге сталкиваешься с тем что в системе куча одинаковых устройств к которым не понятно что подключено и все это дико глючит, а выглядит еще более печально.

Если вы немного капнете в сторону какие микросхемы USB to UART доступны повсеместно, то обнаружите что там полно подделок. Думаю не стоит объяснять как это все потом себя ведет с оригинальными драйверами. И никто не мсожет гарантировать вам что даже брендовые переходники вдруг не закупят левую партию микросхем. Удешевление производства оно происходит повсеместно.

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

Я отломал резистор который подтягивает D+ к питанию и сделал эту подтяжку управляемой с помощью транзистора. Она отвечает за опознание устройства на USB шине.

Распиновка разъемов RS232 в программе (Fritzing) где я набрасывал схему странноватая, но думаю никому не составит труда найти ее в интернете, контакты задействованы как обычно 2,3 и 5. А еще удобнее будет использовать платы конвертера UART to RS232 котором уже присутствует разъем RS232.

Low Level


Код для микроконтроллера я писал и отлаживал с помощью IDE EmBitz (если честно то я был удивлен как легко завелась эта IDE, особенно после танцев с бубном вокруг CooCox. ). За основу взял проект из статьи выше. Это первый пример который у меня заработал сразу после заливки.

Я добавил работу с тремя UART и изменил структуру HID репортов так чтобы обмен с ПК шел всегда по 64 байта с контрольной суммой (crc8).

Попытался организовать автопереподключение устройства если соединение по USB не прошло корректно. Не претендую на супер алгоритм, должен признать что не являюсь специалистом по USB. Отдельный транзистор, отображенный на схеме, управляемый отдельным пином B5 подтягивает одну из сигнальных линий USB к питанию что имитирует включение устройства и хост проводит инициализацию устройства. Если попытка не удачная то происходит переподключение.

Было замечено что в Linux (Raspbian) процент не успешных подключений значительно меньше чем в Win 10, возможно этот результат получился из-за моих локальных технических условий.

Общий алгоритм похож на примитивный маршрутизатор, принимая пакет по USB мы смотрим какому UART оно предназначено и пересылаем туда, в обратную сторону аналогично. Есть немного обработки самих пакетов но это относится к конкретному RS232 оборудованию которое я подключал. Это были: экран покупателя Datecs dpd-201, стационарный лазерный сканер штрихкодов Datalogic Magellan 8300 и весы Digi DS890.

На фото выше тестовый образец устройства содержит еще DC-DC шим преобразователь питания на микросхеме MP2307.

Это нужно для того чтобы питать устройство от напряжения 10-24В (входное) и иметь возможность подключить дисплей покупателя который питается от такого же напряжения. После DC-DC шим преобразователя поулчаем 3.3В для всех остальных модулей. Для этого дисплея так же установлен «телефонный» разъем вместо RS232, не хотелось перепаивать стоковый штекер.

Проект лежит тут.

High level


Вторая часть софта это примеры и тесты собранные в сумбурный проект на Java написанный IDE IDEA. Предполагается что работа с устройством интегрируется в софт высокого уровня используя различные обертки по работе с USB стеком в зависимости от языка на кортом этот софт пишется. Сейчас сложно найти такой ЯП чтобы под него не существовало таких оберток. Отдельно для староверов отмечу что java и usb совместимы если готовить правельно, это доказано практикой и используется в коммерческом проекте.

В процессе тестирования выяснилось что работа в Linux и Windows с USB HID несколько отличается, работа отлаживалась через две библиотеки usb4java и hid4java. Работа через последнюю используется в Linux (Raspberry Pi 3).

Разница заключается в том что в Windows можно обратится напрямую к USB устройству даже если оно зарегистрировано как HID и писать\читать его конечные точки (endpoint). В Linux же приходится работать с hid устройством. То есть устанавливается стандартный драйвер hid и всё, работайте только с ним пожалуйста. Работа таким образом происходит немного медленнее чем напрямую, но напрямую тоже возможно если убедить систему не ставить драйвера. Это реально.

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

Заключение


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

Не забываем плюсовать RaJa автора статью в которых на пальцах объясняется как пощупать железный USB и сохранить желание разбираться дальше.

habr.com

Переходник USB–COM(RS232) своими руками.

Переходник USB – COM(RS232) своими руками – статья, в которой расскажу, как сделать несложный переходник всего за один вечер. Данный переходник, кстати, совместим с процессорным модулем CPU 166 P. Полезные схемы с применением микроконтроллеров и плис — книга, которая может пригодится в радиолюбительской практике.

Вот что понадобится для переходника:

Позиционное обозначение

Наименование

Аналог/замена

С1-С4

Конденсатор керамический — 0,1мкФх50В

SMD типоразмер 0805

С5-C8

Конденсатор керамический — 33пФх50В

SMD типоразмер 0805

DD1

Микросхема MAX232

ADM232 корпус SOIC16

HL1-HL3

Светодиоды индикаторные диаметром 3мм.

M1

Готовый модуль – переходник USB-COM(уровни ТТЛ) на микросхеме FT232

R1-R3

Резистор 0,125Вт 270 Ом

SMD типоразмер 0805

R4

Резистор 0,125Вт 510 Ом

R5,R6

Резистор 0,125Вт 100 Ом

XP1

Штекер DB9 папа

XP2

Штекер платный 3 контакта

А также клипсы к светодиодам, небольшой пластиковый корпус, немного проводов и силиконовый клей.

Рисунок 1.

Если для Ваших целей достаточно уровней ТТЛ, то готовой платы на микросхеме FT232 будет достаточно(на рисунке 1 — красная плата), а если необходимо получить уровни близкие к уровням протокола RS232 — читаем дальше!

Первое, что сделал – закрепил светодиоды на лицевой стороне корпуса, используя клипсы.

Рисунок 2

Рисунок 3.

Светодиоды использовал на 3мм.

Далее канцелярским ножиком, осторожно, сделал отверстие для USB разъёма.

Рисунок 4.

Рисунок 5.

На плате есть готовые контактные площадки со всеми сигналами( согласно протокола RS232, только уровни ТТЛ), а также выведено питание и контакты для светодиодов RX и TX, используя данную плату, можно сделать полный переходник USB-COM. Полный переходник мне не нужен, ограничился сигналами RX и TX, а также использовал сигналы для подключения светодиодов. Для того чтобы перевести уровни ТТЛ в близкие к уровням протокола RS232, нужно использовать буферную микросхему MAX232, но об этом немного позже.

Рисунок 6

Плату, о которой говорилось выше, приклеил к основанию корпуса на силиконовый клей.

Рисунок 7

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

Рисунок 8

На одной из старых плат мне попался готовый фрагмент со всей необходимой обвязкой для MAX232. Оставалось только его вырезать и впаять микросхему.

Рисунок 9

Рисунок 10

Микросхемы MAX232 не нашел под рукой, вместо неё впаял аналог — ADM232.

Рисунок 11

С обеих сторон наклеил изоляционный материал. Использовал силиконовый клей.

Рисунок 12

Рисунок 13

Клей высох. Следующим делом вклеил получившийся «бутерброд» в корпус.

Рисунок 14

Спаял платы между собой по схеме, а также подпаял и закрепил разъём DB9.

Рисунок 15

Всё проверил. Полностью собранный переходник USB-COM(RS232).

Рисунок 16

Переходник в работе.

Рисунок 17

А вот процессорный модуль CPU 166P, для которого переходник и собирался.

Рисунок 18

На следующих фото — похожие переходники USB-COM, с ними связать модуль CPU 166 P не удалось.

Рисунок 19.

Рисунок 20.

Данные переходники построены на основе чипа prolific.

Видео

Файлы к статье:

Переходник USB – COM(RS232) своими руками(статья)

Даташит на микросхему FT232

Даташит на микросхему ADM232

Фотографии

Модуль USB-COM на Алиэкспресс.

pichobby.lg.ua

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *