Выбор переходника usb com

Обновлено: 06.07.2024

Да, для таких микросхем есть драйверы оптимизированного доступа.

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

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

То есть, нельзя воткнуть переходник USB-COM в систему и сделать так, чтобы к нему подошли драйвера от настоящего COM-порта.

_________________
Разница между теорией и практикой на практике гораздо больше, чем в теории.

С помощью драйверов и библиотеки USBXpress® можно дрыгать отдельными ногами CP21xx. В принципе можно и софт свой написать, который будет мониторить состояние служебных регистров COM-порта и перенаправлять данные оттуда в СР с помощью её API. Тогда можно будет общаться с CP как с обычным COM-портом. Только если уж разобраться с API, так делать никто не будет. А старый софт, работающих с регистрами COM-порта напрямую, без переделки работать с CP не будет, YS прав. В принципе можно и софт свой написать, который будет мониторить состояние служебных регистров COM-порта и перенаправлять данные оттуда в СР с помощью её API.

Это если эти регистры физически все же есть. А так. Можно, конечно, поставить перехватчик на инструкцию OUT (технически - на привилегированные инструкции вообще, так, кстати, делает ОС) и перенаправлять данные, да. Но это извращение.

_________________
Разница между теорией и практикой на практике гораздо больше, чем в теории.

_________________
"То, что я понял, - прекрасно, из этого я заключаю, что остальное, что я не понял, - тоже прекрасно". Сократ.

Да, ВМ поможет радикально. Только работать это будет до крайности медленно.

_________________
Разница между теорией и практикой на практике гораздо больше, чем в теории.

современные ВМ на современных компьютерах теряют в производительности очень мало, по сравнению с реальной системой. Тем более ПО, которое требует прямой доступ, обычно не требует высокой производительности.

_________________
"То, что я понял, - прекрасно, из этого я заключаю, что остальное, что я не понял, - тоже прекрасно". Сократ.

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

_________________
Разница между теорией и практикой на практике гораздо больше, чем в теории.

Для программирования различного промышленного оборудования используется интерфейс COM RS232. Также COM порт нужен и для связи ПК с программаторами.

Контроллер COM порта для системного блока компьютера Контроллер COM порта для системного блока компьютера

На фото выше изображен 4-х портовый контроллер с интерфейсом PCI для установки в персональный компьютер. Это практически полноценный COM port, однако контроллер китайский. К примеру для этой карточки отсутствуют драйверы для систем с разрядностью X64. Так же могут возникнуть проблемы с работой контроллера в системе Windows 7. На XP подобные карты работают хорошо.

На плате помимо контроллеров и LDO стабилизаторов располагаются 4 драйвера GD65232 в планарном корпусе. Данные драйверы не очень надежны и часто "вылетают". Особенно когда оборудование не имеет опторазвязки сигналов.

USB-COM переходник на контроллере CH340 на фото ниже . Реализует двунаправленный COM порт , т.е. он будет работать как на прием так и на передачу.

Кстати, простейший способ проверить USB-COM конвертер - это соединить выводы 2 и 3 , зайти в программу "Гипертерминал" и ввести какой либо символ. Должен отобразиться следом еще один такой же символ.

Переходник реализованный на контроллере CH341

Оба конвертера CH340/341 прекрасно работают на ОС Виндоус 7 , но плохо работают на XP. На диске и в интернете можно найти драйвер и для XP к нему, однако на этой системе переходник на данном контроллере работает нестабильно.

Как правило, через час, или любое другое время переходник "отваливается" и не определяется более в диспетчере устройств. Помогает перезагрузка ПК или его переподключение к ЮСБ.

На фото ниже USB-COM переходник реализованный, пожалуй, на самом распространенном контроллере PL2303.

Определяется переходник в системе как Prolific. Помните контроллер PL2303 в статье про GPS приемный модуль?

Данный переходник конвертер интерфейсов отлично и стабильно работает в ОС семейства Windows XP , а также Linux. Однако он работает некорректно в ОС семейства Windows 7.

На следующем фото изображен RS232 контроллер для ноутбука c ExpressCard интерфейсом.

Надежно работает с ОС семейства Windows 7 x86 и x64 а также Windows XP. Реализует двунаправленную передачу.

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

FTDI ЮСБ - COM преобразователь интерфейсов.

Это хороший конвертер на хорошем контроллере. Можно зайти на официальный сайт и скачать драйверы на различные ОС. Работает корректно с указанными выше системами, а также Linux.

Для работы срочно понадобилось купить проводок-преобразователь USB<->RS232. Естественно, православно было бы спаять самому, но, когда время поджимает, хочется быстро заиметь готовое решение.

adapt1

Пошел на местный радиорынок и купил… Купил, каюсь, самый дешевый переходник (фотография выше). Обошлось это чудо китайской мысли в 80грн – 10$, не так уж и мало. Проводок мне показался идеальным – суперский экранированный USB провод, мягкий прозрачный корпус, нужная длинна.

Итак, первая проблема. Драйвер. В комплекте к проводку шел пустой компакт. Не, ну серьезно, записали хотя бы прон.

Ладно, не пальцем деланы – смотрим на микруху. Микруха безкорпусная, в черной блямбе, надписей ноль. Ставим все известный драйвера – FTDI, Prolific, CH341. Микруха определяется, как Prolific, но драйвера не становятся. Долгие копания в интернете таки выяснили, что бывают пролифики, которым нужны другие (не те, что на сайте производителя) драйвера.

Нужный драйвер называется PL2303_Prolific_GPS_AllInOne_1013.exe, так что если столкнетесь с такой проблемой – знаете, что искать.

Драйвера, наконец, стали. Смотрим, что это чудо выдает.

usbcomsux

Упс. В шнурке, оказывается, нет преобразователя уровней. Собственно и “USB->RS232” его нельзя назвать, потому, что это никакой не RS232.

Лирическое отступление

Если на любом из входов микросхемы есть сигнал напряжением больше 3 вольт или меньше –3 вольт, микросхема находится в активном режиме (выходные драйвера активированы – микросхемы может посылать данные) Если на всех входах напряжение в диапазоне –3…3 вольта, то передатчики микросхемы отключаются, и она уходит в спячку, потребляя при этом мизерный мизер тока.

Тоесть, микросхемы, которые используют такой режим, никогда не заработают с этим переходником.

Второй переходник

Ладно, пошел я разбираться в магазин. Там мне без особых криков поменяли шнурок на почти в два раза более дорогой, еще бы (138грн = 17.25$).


Первое, что я заметил, когда воткнул его в USB – это невыносимо яркий синий светодиод. Бесит! Блин, что за мода – тыкать адские диоды во все подряд, а потом компьютер сияет как новогодняя елка. Пришлось заклеить наклейкой – ведь разобрать переходник не удалось.

Этот адаптер выдал канонические сигналы:

NewFile1

Как видно, и размах большой, и двуполярность соблюдена, и скорость нарастания сигнала ограничена (это, чтобы отражений не было в длинных кабелях). Но, блин, пила присутствует на верхушках (амплитудой 880 мВ). Это признак экономии на конденсаторах.

В принципе, меня этот сигнал устраивает.

Ну, и пару советов для тех, кто хочет заиметь такой переходник.

Внутри должно быть две микросхемы (USB->UART и UART->RS232). Часть с платой должна быть слегка удлиненная (иначе, там 2 микросхемы не вместятся, сравните фотографии).

PS в dealextrem’e переходничек стоит 2.92$. Почти в 6 раз дешевле, чем я купил, сейчас ко мне едет один, когда приедет, отпишусь.

Добавление от 2.08.2010:

Он сделан на ch340 и, как и стоило ожидать за такую цену, не снабжен преобразователем уровня. В комплекте ужасного качества удлинитель USB длинной в 40см и диск с драйверами.

dx

Ну, и выходной сигнал:



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

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

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



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


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


Идентификатор устройства — VID_1A86&PID_7523, на диске и в интернете наличествуют драйверы под современные 32- и 64-битные операционные системы от Microsoft. После установки драйверов идентифицируется как USB_SERIAL CH340.
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.


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


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



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


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


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


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


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




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

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


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

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


Адаптеры на 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 из панельки на старой сетевой плате:


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


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

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


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


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



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

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


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


Всем привет. Как то недавно писал про адаптер для приборок VDO. Вот решил сделать адаптер для диагностики и прошивки так называемый K-line адаптер.

А толчком к сборке послужило то что машина после прошивки иногда стала тупить на переходных режимах, а при разных температурах на улице либо летит как стрела, либо ползет словно сзади прицеп кирпичей. Все это говорит о кривых таблицах БЦН и ЦН.(кому интересно смотрим в гугле)

Так как инженерного блока для откатки онлайн нету, то остается только способ калибровки по логам. Для этого и нужен этот адаптер. Но из знакомых только у Veter129 был такой кабель, но сейчас он в Сургуте, а отдавать за кабель 1500руб(с доставкой) не вариант, да и руки из прямого места.

Для сборки взял простую схему на двух транзисторах. Схема работает через COM порт, но как многие знают на ноутбуках нет COM портов, разве что на совсем старых. Поэтому при сборке нужен USB-COM переходник, сделать его можно из старых ДАТА кабелей от телефонов. Выглядят они так


В этой коробочке стоит микросхема преобразователь PL2303, бывает CP210, или китайская CH340, Главное найти на нее описание и определить контакты Rx, Tx, GND.
Стоит такой кабель 50руб, но найти в городе я не смог, фишка кабеля в том что он создает виртуальный COM порт и к этому кабелю цепляется адаптер.

Так как не смог найти, пришлось купить готовый переходник COM-USB на микрухе CH340 за 500руб.


С разъемом разобрались, теперь делаем адаптер, я взял эту схему


Вытравил плату (как травить тут ) собрал, сделал корпус и пошел проверять. Фиг там ниче не работает!


Грешил на переходник, т.к. скорость диагностики 10400бот, а это не стандартная скорость порта, и некоторые адаптеры ее не тянут.

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


После этого полез искать новую схему, взял с чиптюнера .


В этой схеме самое главное это резистор R4, вместо него нужно взять многооборотный резистор на 2Ком. Это для того чтобы подобрать ток 15-20мА между K-line и GND ведь крутить и подбирать легче чем каждый раз впаивать новый. Так же нужен диод с малым падением напряжения, и маломощные транзисторы КТ3102 или аналогичные.

К сожалению не сфоткал плату, не надеясь на работу собрал все на монтажной плате навесным мантажом, но к радости все заработало и я быстрее собрал все в корпус. (как сделать корпус смотрим по ссылке с травлением платы).



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


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







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


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

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