Дешевые USB-COM: расстановка точек над i. Расчлененка. Осциллограммы. Тестирование в реальных условиях.
Как-то потребовалось максимально бюджетно организовать прием факсов в небольшом офисе. Для этого с антресолей был извлечен факс-модем ZyXEL Omni 56K, а поскольку в современных компьютерах порт RS-232 давно канул в лету, на БиКе было решено приобрести адаптер USB-COM. Изучение предложений привело к решению купить все четыре имеющиеся в продаже на тот момент разновидности, благо итоговая стоимость получалась порядка 11 USD.
Итого по получении из пакета были извлечены (слева направо в порядке возрастания цены):
1.
www.buyincoins.com/item/341.html — $1.91
Условно назовем его «бесхвостый».
2.
www.buyincoins.com/item/337.html — $2.05
Условно «прозрачный».
3.
www.buyincoins.com/item/351.html — $3.09
Условно «черный».
4.
www.buyincoins.com/item/4026.html — $3.91
Условно «серый».
Вне конкурса выступает порт RS-232, встроенный в материнскую плату GA-8I945GZME
1. «Бесхвостый».
Самый дешевый экземпляр обзора. Выглядит хлипко, плата из корпуса вытаскивается невооруженными руками.
Вместо корпусного чипа просто «капля» на текстолите. Флюс не отмыт.
Идентификатор устройства — 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.
Уровень в режиме простоя:
В режиме передачи данных:
4. «Серый».
Тот же 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 из панельки на старой сетевой плате:
Вставляем в макетку и обвязываем резисторами-стабилитронами согласно схеме.
Нажимаем кнопку «Прочитать».
В ответ получаем нули:
Неужели флэшка пустая? Подключаем стенд к порту на материнской плате, читаем.
Нет, не пустая. В чем же дело? Подключаем логический анализатор и смотрим обмен.
USB-COM:
«Аппаратный» COM:
Кроме ужасающей разницы в периодах следования импульсов видим, что аппаратный порт дрыгает ногой сброса (канал №3), а USB-COM не хочет. Эта нога управляется сигналом TXD порта. Как его разработчики Ponyprog умудрились сделать постоянно высоким, я не знаю. Возможно, это недокументированная возможность именно «аппаратного» порта. Напишите в комментариях, если кто в курсе.
Констатируем: прочитать 93Cxx не удалось.
Итоговая таблица:
Субъективные выводы: с модемом оставлю работать «бесхвостого», ибо если нет разницы, то зачем платить больше. «Прозрачного» и «черного» положу рядом в резерв, так как «капли» по моим наблюдениям долго не живут. В сумку с инструментами брошу «серого» как имеющего максимальные уровни.
Но большинство тестов можно было не проводить, так как результат был известен еще до теста.
Если устройство работает по стандартному протоколу (а на выходе преобразователя стандартные уровни), то оно и будет работать.
Самый полезный тест из всех, это есть ли преобразователь уровней внутри или нет.
Кстати, у Вас указано что у одних лог 0 = 0, у других — 6-8, соотв лог 1 равен 5 и 7-9.
Нет ли тут путаницы, вроде должно быть так, у ТТЛ преобразователей 0 это 0, а у преобразователей с конвертеторм 0 это 7, т.е. положительная полярность. Соответственно 1 это 5, а у преобразователей с конвертером 1 это -6-8
Если считать, что в режиме ожидания у всех выставлен логический 0, то таки получается, что ноль — это отрицательное значение. Осциллографу плевать, ноль это или единица, он тупо показывает напряжение.
МАХ232 кроме повышения напряжения и формирования обратной полярности делает еще и инверсию.
По минимальному диапазону (два последних адаптера) ±5В они же будут работать с некоторым нетребовательным оборудованием RS-232, где еще и нет никаких помех.
По крайней мере со сканерами штрих-кода точно
А так огромное спасибо за обзор. Закажу серый. Пригодится.
Если верить википедии, то все, у чего от +5 до +15 и от -5 до -15, соответствует стандарту.
Но 1-3% специализированному промышленному оборудованию в условиях высоких помех, расстояний и т.д. подавай ±12В, а еще лучше ±15В.
в общем, первые два — usb-uart, вторые два — usb-eia232, причём первые два скорее всего выжгут половину устройств с uart, рассчитанных только на 3,3В
Два + безоговорочно ;)
Если что то адаптеры на чипе CH340 не работают в этой операционке как нужно.
Успешно работает на Меридиане уж больше 10 лет
Обычно их делают на FTDI чипсете
попадались такие у китайцев занедорого?
Возможно скоро выложу фотки прозрачного, если удастся его вскрытьНи «бесхвостый», ни «чёрный» не пожелали обеспечить работу мультиметра UT61E.
При этом вот с такой козявкой, выпущенной, судя по цене, где-то на Тау Кита — пашет без проблем. Видать, к уровням очень привередлив мультик.
Ксати, на prolific.com.tw есть PL-2303 CheckChipVersion Tool Program v1.0.0.6 (в архиве с последними драйверами), можете приложить скриншоты к обзору, чтобы ВАУ-эффект от статьи был еще больше.
У меня к вам есть еще один вопрос: в обозримом будущем не планируете провести тест адаптеров ExpressCard/34 в PCMCIA слот? Уж очень интересуют «китайцы» по причине негуманности цены на Silicom.
Сначала голову ломал с такими переходниками, но так как надежность была превыше всего, были куплены 4 модема на PCI шину.
Всю работу до сих пор выполняет mgetty+sendfax. За 5-6 лет ни одного сбоя. Сам факс-сервер насколько помню перезагружался один раз.
Плюсанул обзор и карму.
ЗЫ: Пролификовский шнурок, с виду идентичный вашему «прозрачному», при работе с циской, роняет 64-бит семёрку в BSOD, на линуксах всё пашет.
Или они 1 в 1 только в разном исполнении?