Конвертер USB-UART на CH340G: дорабатываем до RS232TTL, тестируем, сравниваем. Последовательный порт - TTL и RS232 Yp 02 usb to ttl описание

  • 09.04.2024

При разработке различного рода электронных устройств с использованием микроконтроллеров очень часто оказывается полезной возможность подключения их к персональному компьютеру через последовательный порт. Однако напрямую это сделать невозможно, поскольку по стандарту RS-232, сигнал передается уровнями -3..-15 В (логическая <1>) и +3..+15В (логический <0>). Для преобразования уровней RS-232 в стандартные логические уровни TTL обычно используют специальные микросхемы преобразователей. Однако далеко не всегда имеет смысл закладывать преобразователь уровней в схему проектируемого устройства, поскольку часто бывает так, что связь с компьютером нужна только на этапе изготовления и отладки устройства, а для конечного изделия в ней нет никакой необходимости. Логичным выходом в данной ситуации может послужить изготовление отдельного конвертера уровней RS-232 в TTL, схема одного из возможных вариантов которого приведена ниже:

Основу предлагаемого конвертера составляет широко распространенная микросхема преобразователя уровней MAX232A фирмы Maxim (U1), которая имеет также множество аналогов других производителей (Analog Devices, LG и др.). Данная микросхема рассчитана на напряжение питания 5В и имеет встроенные удвоитель и инвертор напряжения на переключаемых конденсаторах для получения напряжений +10 В, необходимых для работы с сигналами стандарта RS-232. Для работы микросхемы требуется 4 внешних конденсатора (C1, C2, C3, C4) емкостью 0.1 мкФ, которые используются в преобразователе напряжения. Кроме того, с целью упрощения использования данного конвертера в нем предусмотрена схема питания прямо от последовательного порта, что избавляет от необходимости использования внешних источников питания. Напряжение питания 5 В создается маломощным линейным стабилизатором напряжения LM78L05 (U2), вход которого подключен к накопительному конденсатору C6. Конденсатор C6 заряжается через диод от сигнала Data Terminal Ready (DTR, четвертый контакт 9-pin разъема RS-232). Диод D1 может быть любого типа (автор использовал диод в корпусе для поверхностного монтажа, выпаянный со сгоревшей материнской платы). Для нормальной работы такого преобразователя питания требуется, чтобы большую часть времени сигнал DTR имел значение логического нуля. Это должно обеспечиваться используемой терминальной программой или программой пользователя.

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

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
U1 ИС RS-232 интерфейса

MAX232A

1 В блокнот
U2 Линейный регулятор

LM78L05A

1 В блокнот
D1 Диод 1 В блокнот
С1-С5 Конденсатор 0.1 мкФ 5 В блокнот
С6 Электролитический конденсатор 4.7 мкФ 1

Почти все микроконтроллеры имеют на борту последовательный порт — 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 контроллера.

Наверное, кто-то уже прочитал на нашем форуме сообщения exmortis об изготовлении кабеля USB-TTL из подручных средств.

Мы решили оформить это, как отдельную статью-руководство. Спасибо exmortis за предоставленный материал.

Аннотация: Данная статья является дополнением к по последовательному интерфейсу, которую рекомендуется предварительно прочесть.

Как известно из вышеупомянутой статьи, приставку Ritmix RZX-50 можно подключить к компьютеру через uart ttl, но так как сигналы по вольтажу не совпадают со стандартом rs-232, то нужен переходник. В качестве готового решения можно воспользоватья специальным конвертером, например, или даже таким .

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

Однако, можно приспособить обычный кабель-переходник usb-rs232 (com), который продаётся в любом компьютерном магазине. Например, такой:

Кабель Gembird usb-rs232 uas111. Он удобен тем, контроллер спрятан в аккуратную коробочку. Правда, она запаяна, поэтому для вскрытия придётся либо её распиливать, либо срезать пластик паяльником.

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

Микросхема pl2303. Интересны прежде всего ноги 1 (TXD) и 5 (RXD), нумерация ног идёт против часовой стрелки от угла, отмеченного на самом чипе точкой.

Обратная сторона с чипом max213. Cигнал от 1-ой ноги pl2303 приходит на 6-ю ногу max’а, а сигнал от 5-ой — на 19-ю ногу «максимки».
В принципе, эта микросхема для uart-ttl не нужна, она даже может помешать. Поэтому её нужно аккуратно выпаять, и тем легче будет подпаиваться к контактным площадкам.

Микросхема max213 выпаяна. Красный провод припаян к сигналу TXD, жёлтый — к RXD, чёрный провод — земля. Впоследствии можно подключать по схеме Antony, присодиняя провода «перкрёстно», т.е. RXD контроллера к TXD приставки, а TXD к RXD соответственно.

Выводы последовательного интерфейса у Ritmix RZX-50.

Вторая немаловажная часть — непосредственное подсоединение к компьютеру и настройка соединения.
Ниже будет рассмотрена специфическая ситуация, когда на компьютере (ноутбуке) установлена W7 x64, а в виртуальной машине VirtualBox — Xubuntu 11.10 x32. Всё нижеописанное также справедливо для любых дистрибутивов linux.

Перепаянный как указано выше кабель подсоединяется к компьютеру (при этом rzx-50 НЕ подключена). Естественно, что драйвер системой не установится, но это и не требуется. Загружаем xubuntu в виртуальной машине, пробрасываем вовнутрь подсоединённое устройство (должно обозначаться как Prolific Technology Inc. USB-Serial Controller). После чего загружаем консоль и вводим dmesg. Одной из последних строчек должно оказаться определение подключённого устройства (pl2303) и его отражение на файловую систему — в данном случае это /dev/ttyUSB0. Запоминаем это имя.

Теперь надо установить minicom. Команда стандартная: «sudo apt-get install minicom». Запускаем настройку: «sudo minicom -s» и попадаем в меню конфигурации. В Serial port setup устанавливаем /dev/ttyUSB0 в качестве Serial Device, скорость потока устанавливается 56700 8N1, hardware и Software Flow Control выключается (No). Далее в Modem and dialing нужно стереть строки Init String и Reset String.

Выходим из настройки и запускаем minicom в обычном режиме (sudo minicom). Теперь можно протестировать кабель, замкнув провода от сигналов TXD и RXD. Если при нажатии любых клавиш в minicom на экране появляются соответствующие символы, значит кабель работает.

Теперь можно подсоединять приставку к проводам способом, указанным выше, и включить её, наслаждаясь выводом в окно эмулятора терминала. Когда выпадёт приглашение ввести пароль, следует ввести «root». Если при вводе и выводе символов периодически появляются мусорные или посторонние, значит что-то не так с землёй (скорей всего оборвана). В идеаля земля также никак не должна замыкаться с сигналами TXD и RXD.

От редакции: Я лично сразу вспомнил конец 90ых, когда началась эпоха Palm. В то время я был счастливым обладателем Handspring Visor Deluxe, мощнейшим, по тем временам КПК (слово «планшет» еще не придумали). Так вот, в силу дефицита USB портов (да! да!) приходилось самому изготавливать кабель RS232-TTL. Более того, поскольку сигналы у Visor были трехвольтовые, а микросхема Maxim, обеспечивающая нужный уровень сигнала была дефицитной — приходилось на ножку «выхода» вешать делитель напряжения с 5 до 3.3в, чтобы не спалить устройство.

Сейчас все гораздо проще, и можно сосредоточиться на более содержательной деятельности, например внести посильный вклад в создание альтернативной прошивки для RZX-50 🙂

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
Драйвер для

Микроконтроллеры в 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 интерфейса не имеет.