Конвертер USB-UART на CH340G: дорабатываем до RS232TTL, тестируем, сравниваем. Сom адаптер. Рабочая схема. RS232-TTL Интерфейс порта ttl как работает
Почти все микроконтроллеры имеют на борту последовательный порт — UART
. Работает он по стандартному последовательному протоколу, а значит его можно без проблем подключить к компу на COM
порт. Но есть тут одна проблема — дело в том, что комповый RS232
он за логические уровни принимает +/- 12
вольт, а UART
работает на пятивольтовых уровнях. Как их совместить? Для этого существует несоколько вариантов схем преобразователей уровня, но самая популярная это все же на специальном преобразователе RS232-TTL
. Это микросхема MAX232
и ее аналоги.
Практически каждая фирма делает свой преобразователь, так что тут сгодится и ST232
, и ADM232
, и HIN232
. Схемка простая как три копейки — вход, выход, питание и обвязка из пяти конденсаторов. Конденсаторы обычно ставятся 1uF
электролиты, но в некоторых модификациях ставится 0.1uF
керамика. Я везде впаивал 0.1uF
керамику и обычно этого хватало. :) Работает как часы. Если же на высоких скоростях будет глючить, то надо будет повышать емкость.
Кстати, существует еще и MAX3232
это то же самое, но на выходе у него не 5вольт TTL, а 3.3 вольта TTL. Её используют для низковольтных контроллеров.
Я себе сделал один такой универсальный шнурочек, чтобы к контроллерам цепляться было удобно по UART
. Для общей компактности всю схему запихал прям в разъем, благо у меня были ST232
в soic корпусе. Получилась платка не больше рублевой монеты. Так как под рукой не было мелких SMD конденсаторов, то пришлось напаять кондеры сверху, кто во что горазд. Главное работает, хоть и не очень красиво вышло.
Если сомневаешься, что у тебя получится столь мелкий монтаж, то я тебе развел плату на стандартный PDIP корпус. Размером она будет со спичечный коробок, зато мельчить не надо.
После сборки проверяется просто:
Втыкается в разъем COM
порта. Подается 5 вольт питания на схему, а затем замыкаешь Rx
на Tx
(у меня это зеленый и желтый провода).
Дальше открваешь любую терминалку, хоть Hyper Terminal
, цепляешься к порту и начинаешь посылать байты, они должны тотчас возвращаться обратно. Если этого не произошло — проверяй схему, где то косяк.
Если работает, то дальше все просто. Тот провод который идет от ножки 9 микросхемы MAX232 это передающий вывод , его заводи на ногу RxD контроллера. А тот который с ножки 10 — принимающий , его смело сажай на вывод TxD контроллера.
Микроконтроллеры в Arduino (ATmega328, 168, 2560) используют, кроме прочих интерфейсов, аппаратно реализованный последовательный интерфейс (UART). В МК ATmega2560 (Arduino Mega) реализовано сразу четыре UART. Интерфейс использует два провода - RX (прием) и TX (передача), где цифровой сигнал кодирует значения бит "0" и "1" напряжением на проводе. Значению "0" соответствует 0В, а значению "1" - рабочее напряжение интегральной схемы (5В или 3.3В, в зависимости от модели и режима работы МК). Такой тип кодирования также называют транзистор-транзисторной логикой (ТТЛ), т.к. напряжение на проводе напрямую влияет на состояние (открытое/закрытое) транзисторов, обеспечивающих приемо-передачу цифрового сигнала.
Последовательный порт компьютера (COM-порт), который все реже можно видеть в современных моделях компактных компьютеров, работает по старому телекоммуникационному стандарту RS232, где кодирование сигнала иное: значение "0" кодируется напряжением от +3В до +25В, а "1" - отрицательным напряжением от -3В до -25В. В COM-портах персональных компьютеров обычно встречается напряжение +13В и -13В.
Большая разница напряжений делает RS232 соединение более устойчивым к помехам, однако, в современных цифровых устройствах чаще используется ТТЛ-совместимый последовательный порт, либо USB - гораздо более современный и высокоскоростной интерфейс.
На приведенном рисунке для сравнения отображены сигналы TTL serial и RS 232, снятые при передаче значения одного байта.
Для преобразования сигнала RS232 в TTL и обратно необходимо его инвертировать (хотя это можно сделать и программно) и преобразовать напряжение. Обычно для этого используются микросхемы типа MAX232 . Иногда используют упрощенные самодельные схемы, обеспечивающие инверсию сигнала и преобразование напряжения или прибегают к программно-аппаратным решениям (программная инверсия, аппаратное изменение напряжения).
В случае с Arduino (Uno, Mega и пр.) используется USB-TTL serial контроллер, обеспечивающий работу с МК через ТТЛ-совместимый последовательный интерфейс. В старых моделях для этого использовался чип FTDI FT232, в новых - ATmega8U или ATmega16U. Выводы последовательного интерфейса МК так же доступны для прямого подключения. Для Uno это выводы D0, D1, а у модели Mega имеется сразу несколько последовательных интерфейсов. Подключать к этим выводам RS232 порт нельзя - корректно работать он не сможет из-за другого типа кодирования, а высокое напряжение может повредить МК.
Для подключения к ТТЛ-совместимому последовательному порту с компьютера удобно использовать USB-TTL serial адаптер . Однако, USB-TTL serial адаптеры общего назначения продаются только в специализированных магазинах и, нередко, по неоправданно высокой цене. При этом гораздо более популярны (и дешевы) USB-RS232 адаптеры. При ближайшем же рассмотрении, любой USB-RS232 адаптер содержит два основных компонента - микросхемы USB-TTL serial адаптера и RS232-TTL serial преобразователя.
У меня нашелся USB-RS232 адаптер, схема которого была спрятана в легко разбираемый корпус DB9 разъема (иногда корпус делают литым и добраться до схемы сложнее). Адаптер оказался построен на популярных чипах Prolific PL2303 (USB-TTL serial адаптер) и Zywyn ZT213 (RS232-TTL адаптер). Посмотрев на спецификацию PL2303 выяснил, что мне нужны выводы 1 (TX) и 5 (RX), к которым я подпаял провода, никак не меняя схему (так что RS232 часть осталась работоспособной). Землю взял с 5го контакта DB9, чтобы не трогать 7й вывод микросхемы.
В итоге получился дешевый и сердитый USB-TTL serial адаптер. На скриншоте: Serial monitor от Arduino IDE подключен по USB, а realterm - напрямую к D0,D1 через USB-TTL serial адаптер.
Слышал, что многие data-кабели для мобильных телефонов также содержат USB-TTL serial контроллеры, хотя все большее количество современных моделей подключаются к USB интерфейсу напрямую, не требуя специальных адаптеров. Многие микроконтроллеры снабжены USB интерфейсом, в частности ATmega8U и ATmega16U, которые используются в Arduino в качестве USB-TTL serial контроллеров, предоставляя доступ к ATmega328, который USB интерфейса не имеет.
Очень часто многие начинающие любители электроники встречаются с необходимостью сопряжения уровней, соединения com порта компьютера по rs232 с различными устройствами которые имеют различные TTL уровни передачи данных.
И очень часто собирая очередную схему происходят разочарования.
Ниже приведена полностью рабочая схема Com адаптера c описанием.
Использовать данное устройство можно при подключении маршрутизатора Dir300 через внутренний Com порт к различным устройствам имеющим разные уровни сигналов. Так же и при других сопряжениях устройств. Ресиверов с компьютерами, например. Сom адаптер всегда пригодится.
Для изготовления RS232-TTL понадобилась макетная плата, но в конечном итоге наводок не каких не проявлялось, все данные правильные и целостные.
Детали
Микросхема
MAX232 или её разновидность.
Резисторы
400 кОм.
5 кОм.
Конденсаторы
Выбираются под определенную маркировку микросхемы по таблице на первом рисунке.
Особенности
Не забывайте о подтягивающих резисторах. Самая распространенная ошибка. Также не стоит забывать соединять GND (заземление COM порта, микросхемы и подключаемого устройства в одну линию)
Фото изготовленных рабочих COM адаптеров
Другие статьи по разделу:
ДАТЧИК ПРЕПЯТСТВИЯ ИК БАМПЕР
Приходилось выводить данные из пакетов GGA и VTG на ЖКИ, что при максимальном размере пакета в 80 символов не очень удобно.
При отладке приходилось выводить данные из пакетов GGA и VTG на ЖКИ, что при максимальном размере пакета в 80 символов не очень удобно.
Такое безобразие происходило из-за того, что у меня был , который было неудобно использовать, в котором вечно что-то коротило и угрожало драгоценному COM порту на моем ПК. Захотелось сделать новенький-красивенький, в няшном корпусе и с красивыми проводками:) Была вытравлена платка, разводку которой можно скачать в конце заметки.
Далее на плату была установлена от ST Microelectronics (полный аналог ), но дешевле на пару гривен. Конечно, я уважаю Maxim, но совершенно не люблю переплачивать за тривиальные вещи. Конденсаторы в обвязке поставил на 1мкФ 16В танталовые, тип А.
Далее это все хозяйство запихнулось в корпус, который у меня валялся без дела с 13 лет. Провода от выдергивания защитил простым узлом. А мягкий кабель с разъемом для COM порта был позаимствован у старой мышки.
Была распечатана наклейка с обозначением проводков и наклеена на корпус, чтобы постоянно не вспоминать где плюс, а где минус:). От истирания ее защищает слой скотча. Теперь конвертер приобрел некоторое юзабилити, и им стало удобно пользоваться. Хорошего дня.
PL2303HX – это небольшой USB-Serial конвертер со встроенным приемопередатчиком RS232 (интерфейс UART). Микросхема создает на компьютере виртуальный COM — порт, через который можно прошить микроконтроллеры, а так же восстанавливать роутеры, приставки.
Технические параметры
Напряжение питания: 5В (от USB)
Интерфейс 1: USB
Интерфейс 2: TTL (от 0 до 5, Rx и Tx)
Выходное напряжении, В: 3.3 и 5 (отдельные вывода)
Размеры: 50мм x 15мм x 8мм
Поддержка операционных систем: Windows XP / 7 / 8 / 8.1 / 10.
Общие сведения о PL2303HX
Основная микросхема на модуль, это PL2303HX, которая до 2012 г. производилась компанией Prolific Technology. По сути, это конвертер интерфейса USB в UART с логическими уровнями ТТЛ, КМОП (0 В … +5 В). С одной стороны USB разъем, для подключения к компьютеру, а с другой пяти контактный разъем UART (RX, TX и выводы питания на +5В и +3.3В), для защиты от замыканий, модуль помещен в прозрачную термоусадочную трубку, принципиальная схема PL2303HX показана на рисунке ниже.
Назначение светодиодов:
P (Power) - питание (горит постоянно)
R (RxD) - принимаемые данные
T (TxD) - передаваемые данные
Из электрической схемы видно, что питание на выход +5В идёт напрямую с USB порта, без защитных элементов, а питание на вывод +3.3В идёт с внутреннего стабилизатора PL-2303, который может выдержит ток до 150 мА. Официальные драйвера Prolific для Windows 7, 8 и 10 не работает, так как. проверяет оригинальность чипа PL-2303, но возможно все исправить, посмотрев эту .
Тестирование
Для тестирования можно воспользоваться «Terminal1_9_b » , скачать данную программу можно в этой статье .
Устанавливаем, драйвер
Запускаем «Terminal1_9_b»
от имени администратор.
В верхнем углу, выбираем «COM Port
» (можно посмотреть в диспетчере устройств) и нажимаем «Connect
»
Внизу вводим произвольное значение и нажимаем «-> Send
«, кратковременно загорится светодиод TxD при каждом нажатии.
Замкните вывода TxD и RxD между собой и нажмите «-> Send»
, кратковременно загорятся два светодиода, TxD и RxD при каждом нажатии, так же в программе отобразится посланная команда.
Напряжение 3.3В и 5В можно проверить обычным мультиметром
Ссылки
Документация PL2303HX
Драйвер для