Какой переходник USB RS232 (COM) выбрать
Для работы срочно понадобилось купить проводок-преобразователь USB<->RS232. Естественно, православно было бы спаять самому, но, когда время поджимает, хочется быстро заиметь готовое решение.
Пошел на местный радиорынок и купил… Купил, каюсь, самый дешевый переходник (фотография выше). Обошлось это чудо китайской мысли в 80грн – 10$, не так уж и мало. Проводок мне показался идеальным – суперский экранированный USB провод, мягкий прозрачный корпус, нужная длинна.
Итак, первая проблема. Драйвер. В комплекте к проводку шел пустой компакт. Не, ну серьезно, записали хотя бы прон.
Ладно, не пальцем деланы – смотрим на микруху. Микруха безкорпусная, в черной блямбе, надписей ноль. Ставим все известный драйвера – FTDI, Prolific, CH341. Микруха определяется, как Prolific, но драйвера не становятся. Долгие копания в интернете таки выяснили, что бывают пролифики, которым нужны другие (не те, что на сайте производителя) драйвера.
Нужный драйвер называется PL2303_Prolific_GPS_AllInOne_1013.exe, так что если столкнетесь с такой проблемой – знаете, что искать.
Драйвера, наконец, стали. Смотрим, что это чудо выдает.
Напомню, что логической 1 в rs232 считается диапазон -3…-15в, а логической 0 — +3…+15. Нулевому напряжению соответствует “зона неопределенности”.
Упс. В шнурке, оказывается, нет преобразователя уровней. Собственно и “USB->RS232” его нельзя назвать, потому, что это никакой не RS232.
Лирическое отступление
В множестве современных микросхем-драйверов rs232 (SP3243, SP3223) реализована функция энергосбережения (обычно ее называют Auto-online). Она работает примерно так:
-
Если на любом из входов микросхемы есть сигнал напряжением больше 3 вольт или меньше –3 вольт, микросхема находится в активном режиме (выходные драйвера активированы – микросхемы может посылать данные)
-
Если на всех входах напряжение в диапазоне –3…3 вольта, то передатчики микросхемы отключаются, и она уходит в спячку, потребляя при этом мизерный мизер тока.
Тоесть, микросхемы, которые используют такой режим, никогда не заработают с этим переходником.
Гребенные китайцы.
Второй переходник
Ладно, пошел я разбираться в магазин. Там мне без особых криков поменяли шнурок на почти в два раза более дорогой, еще бы (138грн = 17.25$).
Первое, что я заметил, когда воткнул его в USB – это невыносимо яркий синий светодиод. Бесит! Блин, что за мода – тыкать адские диоды во все подряд, а потом компьютер сияет как новогодняя елка. Пришлось заклеить наклейкой – ведь разобрать переходник не удалось.
Этот адаптер выдал канонические сигналы:
Как видно, и размах большой, и двуполярность соблюдена, и скорость нарастания сигнала ограничена (это, чтобы отражений не было в длинных кабелях). Но, блин, пила присутствует на верхушках (амплитудой 880 мВ). Это признак экономии на конденсаторах.
В принципе, меня этот сигнал устраивает.
Ну, и пару советов для тех, кто хочет заиметь такой переходник.
Внутри должно быть две микросхемы (USB->UART и UART->RS232). Часть с платой должна быть слегка удлиненная (иначе, там 2 микросхемы не вместятся, сравните фотографии).
PS в dealextrem’e переходничек стоит 2.92$. Почти в 6 раз дешевле, чем я купил, сейчас ко мне едет один, когда приедет, отпишусь.
Добавление от 2.08.2010:
пришел переходничек с dealextreme (вот такой: https://www.dealextreme.com/details.dx/sku.24512)
Он сделан на ch340 и, как и стоило ожидать за такую цену, не снабжен преобразователем уровня. В комплекте ужасного качества удлинитель USB длинной в 40см и диск с драйверами.
Ну, и выходной сигнал:
Как видно, он даже до 5ти вольт не дотягивает. Вердикт — полное гуано, зато дешево.
угу, а еще часто продают эти переходники в принципе нерабочими 🙂 с выгоревшим rx или tx.
PS: Буквально два дня назад пришлось тестить первый экземпляр переходника — не заработал вообще. В причинах не разбирался. Потом принесли второй — на FTDI, он работал нормально
Нерабочие, слава богу, не попадались, но девайс, который я сейчас творю юзает Auto-online, и с первым переходником отказывался работать напрочь. Второй, кстате, тоже на FTDI, работает замечательно.
Огромное, человеческое спасибо автору! Я наконец заставил пахать свой кабель, купленный на e-bay за 2$. На счет уровней не знаю (осциллографа под рукой нет), но при замыкании Rx/Tx — он принимает то, что было отправлено. Спасибо еще раз! Очень годный сайт, жаль, что только-только узнал о его существовании 🙂
Кстати вопрос: если воткну его в MAX232, то получу ли я чистый UART или возникнет та проблема, о которой вы писали?? Есть хитрый план тупо воткнуть туда пару стабилитронов на 5В (в место MAX-а), получится ли что из этого?
Нет, просто так воткнуть макс не получится — в этих переходниках уже инвертирован сигнал. Тоесть, на выходе получится то, что нужно, но только перевернутое.
А в чем смысл втыкать стабилитроны — я вообще не понял.
В общем мне нужен не RS232, а UART, думаю, как его получить. Стабилитронами, я хотел выронить логическую единицу, на уровне 5В (дабы не спалить МК), но думаю это глупость, так что не берите в голову.
Даже со стабилитронами не получится — уровни перевернуты. Можно поставить кучку транзисторов, но это — гемморойнее, чем просто max232.
Кстати, тоже купил такой адаптер, как у тебя на первой фотке. Диск с драйверами оказался не пустой 🙂
Ну, для моих целей (ponyprog от ноута, на котором нет rs232) кабель подошел, а осциллографом (за неимением та тот момент оного) я в него не лазил.
Могу порекомендовать адаптер от отечественного разработчика IC Book — https://icbook.com.ua/hardware/_cp2102/index.html
Тоже не шара — 96 гривен, но, по крайней мере, сделан добротно и соответствует стандартам.
В продаже, к примеру, здесь — https://goo.gl/quSdF
Как по мне, то гланвный вывод — не покупать Prolific, т.к. это полный отстой!
Ничего подобного, это — вполне нормальная микруха. Естественно, на ее основе бывает и отстой, но сама микруха — нормальная 🙂
pl2303 — отличный преобразователь. Можно даже на нестандартной скорости 10400 заставить работать для диагностики авто.
Еще вот о чем подумал — ну мучаемся мы, превращаем TTL в RS232… Для чего? Чаще всего для того, чтобы в железке на расстоянии полметра MAX232 снова превратил RS232 в TTL. Не проще ли тогда ее просто выпаять на том конце и работать со сплошным TTL?
Некоторые приборы используют линии как питание, а некоторые используют отрицатеньное напряжение для обнаружения подключения. Не получится.