Конвертер USB-UART на базе CH340G

Сегодня приехали означенные конвертеры. Сами микросхемы (CH340G), присутствующие в заказе, в бандерольке почему-то отсутствовали. Буду разбираться.

Крайне недорогое производство, плата защищена толстой термоусадочной трубкой. Не, ну а что вы хотели за 60 рублей?!

IMG_0305

Джампер позволяет выбирать питание 3.3В или 5.0В.

IMG_0306

Очень недорогой, бюджетный USB-UART.

При подключении в USB-гнездо сразу загорелся светодиод

IMG_0307

Ubuntu-10.04 LTS девайс увидела, но не «подхватила»

CH430G-0

Ну и ладно! Попробуем девайс как USB-порт

CH340G-1

USB-порт на месте. Хорошо.

А как на счет последовательного порта, проброшенного через USB?

CH340G-2

Хм, живой!

Ладно. А что если что-нибудь послать в порт? Под рукой (в текущем директории) оказался обычный текстовый файл pipes.c, вот его-то мы и скопируем в порт.

CH340G-3

При этом на плате загорелся синий светодиод

IMG_0308 IMG_0309

Ну дак — отлично!

Теперь давайте что-нибудь примем обратно в комп. Самое простое закоротить Tx и Rx контакты, сотворив тем самым «локальное эхо».

Для этого открываем вторую консоль и в ней даем команду на копирование потока из порта на консоль:

$ cat /dev/ttyUSB0

Возвращаемся в первую консоль и еще раз даем команду на копирование файла в порт. На этот раз на плате загораются два синих светодиода — один на прием, другой на передачу.

IMG_0310

а в консолях видим процесс эха

ch340G-4

— Вжик! — сказала пила.
— Ух ты! — сказали суровые лесорубы.

Ну, работает скотина. Ну что еще от нее надо?!

Микросхемы CH340G мне обошлись чуть дороже 20 рублей. Но если более тщательно поискать, то можно найти даже по 17 рублей. Ниже я не видел.

Для организации канала общения микроконтроллера с компом, по моему, ничего более разумного не придумать.

Микросхема упакована в «человеческий» корпус SOP16, что для большинства применений можно считать, что это есть SOIC16. К микросхеме нужен кварцевый резонатор и несколько резисторов-конденсаторов. А-а, да! Разъем еще нужен! И это всё! Припаять и подключить.

Как видите, даже в не самом последнем дистрибутиве Линукса ни каких дополнительных драйверов ставить не пришлось. Всё поднялось само собой.

Конечно, сейчас найдутся товарищи, которые костьми лягут и будут доказывать преимущества FT232R. Обращаюсь к ним:

Ребята, не дергайтесь! CH340G не предназначена для ваших задач.

Ее основное назначение — организовать недорогой канал USB-UART. И всё! Если вам для ваших поделок нужен бит-бэнгиг, то покупайте то, что использовали и раньше.

Для моих же задач нужна недорогая микросхема, с не очень мелким шагом выводов, и мне совсем не нужен бит-бэнгинг. И я ее нашел. Каждому своё!

И пусть никто не уйдет обиженным! (с) А. и Б. Стругацкие

UPDATE 20.05.2015

Ну, вот, обещанная мною схема этого китайского свистка:

USB-UART.CH430G

На сколько я понял, пин 4 (V3) — это выход внутреннего стабилизатора на 3.3 В.

Коннектор K1 выбирает рабочее напряжение девайса. То есть напряжение для питания CH340G и соответственно напряжение логических уровней. Джампер вешается либо на контакты 1-2, либо на 2-3.

Так вот, если джампера нет, то есть контакт 2 коннектора никуда не подключен, то на пине 4 CH340G присутствует напряжение +3.3В.

Теперь, если замкнуть контакты 1-2 на коннекторе, то рабочее напряжение будет равно 5.0В, и питание будет осуществляться непосредственно от USB.

Если замкнуть контакты 2-3 на коннекторе, то рабочее напряжение будет равно 3.3В. Питание микросхемы при этом будет понижено за счет падения напряжения на двух диодах типа 4148.

У микросхемы пины с 9-го по 15-ый на плате никуда не подключены.

Что еще интересно отметить, выход TX (пин 2) доступен для внешнего мира только через резистор 1.5 кОм. Значение на мой взгляд великовато, учитывая то, что Микросхема может «впахивать» на скорости 2 мегабода.

К стати, я проверил работоспособность микросхемы на нескольких скоростях (не на всех!). Попробовал работать на крайних значениях. В общем, доступна сетка стандартных скоростей от 75 бод до 2 мегабод включительно. Проверял в Убунте 10.04 и в Дебинане 8.0.

Микросхема вполне адекватно ведет себя и в том, и в другом дистрибутиве, хотя установки по умолчанию в дистрибутивах несколько отличается друг от друга. Но это не существенно.

Драйвер микросхемы называется ch341.ko, и по умолчанию находится в

/lib/modules/<версия ядра>/kernel/drivers/usb/serial/

Номиналы резисторов на схеме указаны в соответствие с их реальным значениями, кторые на них написаны. А вот номиналы конденсаторов я не измерял, а взял из рекомендаций на эту микросхему. Конденсатор на 10 мкФ — тоже керамический.

Далее, кто юзает KiCAD, вот библиотека изображения микросхемы:

EESchema-LIBRARY Version 2.3  Date: Ср 20 май 2015 17:47:54
#encoding utf-8
#
# CH340G
#
DEF CH340G U 0 40 Y Y 1 F N
F0 &quot;U&quot; 500 150 60 H V C CNN
F1 &quot;CH340G&quot; 400 -900 60 H V L CNN
F2 &quot;SOP16&quot; 550 -1000 60 H V C CNN
F3 &quot;~&quot; 600 -750 60 H V C CNN
DRAW
S 300 100 850 -800 0 1 20 N
X GND 1 0 0 300 R 50 50 1 1 W
X TXD 2 0 -100 300 R 50 50 1 1 O
X RXD 3 0 -200 300 R 50 50 1 1 I
X V3 4 0 -300 300 R 50 50 1 1 U
X UD+ 5 0 -400 300 R 50 50 1 1 B
X UD- 6 0 -500 300 R 50 50 1 1 B
X XI 7 0 -600 300 R 50 50 1 1 I
X XO 8 0 -700 300 R 50 50 1 1 O
X CTS# 9 1150 -700 300 L 50 50 1 1 I L
X DCR# 10 1150 -600 300 L 50 50 1 1 I L
X RI# 11 1150 -500 300 L 50 50 1 1 I L
X DCD# 12 1150 -400 300 L 50 50 1 1 I L
X DTR# 13 1150 -300 300 L 50 50 1 1 O V
X RTS# 14 1150 -200 300 L 50 50 1 1 O V
X R232 15 1150 -100 300 L 50 50 1 1 I
X VCC 16 1150 0 300 L 50 50 1 1 W
ENDDRAW
ENDDEF
#
#End Library

Всё, что вам надо — это тупо закопипастить код отсюда в файл ch340g.lib и указать путь к этому файлу в своих проектах.

Ну вот, кажись на данный момент всё!

20 responses to “Конвертер USB-UART на базе CH340G

  1. С этой микросхемой ещё не работал. А вот FT232RL, точнее собранный на ней конвертер недавно имел несчастье прикупить. Раньше юзал BL, с ней вроде всё для себя прояснил. А тут… В общем трабла следующая. Всё определяется, порт есть, посылаю стандарную Modbus посылку, к примеру прочитать значения каких-нить дискретных входов, приходит эхо в виде отосланных байтов. При чем что интересно, это касается только пакетов для работы с регистрами. В спецификации Modbus есть команда запроса ID, я её использую, она всего о четырёх байтах, удобно сканировать сеть на предмет появления новых контроллеров. Так вот, на эту команду, не подключенный никуда кроме USB конвертер, отвечает длинной строкой какой-то отсебятины, примерно на пару килобайт. При этом, если ничего не шлёшь, а только принимаешь — и на приём работает правильно. В общем дурь какая-то. Пока отложил её, хотя уже и перепрошивал эту микросхему, есть там какой-то программатор для них. Всё остаётся.

  2. Попробуйте с внешним тактированием на вход X1.

    • Подозреваю, что если бы с тактированием были траблы, то небыло бы обмена по USB. А он есть.

      • Михаил, вы не поняли сути моей просьбы: проверить, заведется ли в конфигурации с внешним клоком, а не с кварцем.

  3. А, так это предложение поэкспериментировать просто🙂 Пардоньте, нет на это ни времени ни гены. Я тут маненько в другую страну переехал🙂

    • Свалили-с?🙂

      • Эваукация-с🙂

      • Ну, будем надеяться, что Александ этот вариант попробует.
        Изначально-то просьба была к нему.

      • Если я правильно понял, Вы хотите узнать как поведет себя CH340G, если ее попробовать затактировать от внешнего кварца, например от кварца, подключенного к МК?

        Я не хочу касаться самой идеи сэкономить на кварцевом резонаторе, но мне кажется, что «поиграться» в этом направлении можно. Даже если CH430G не «увидит» тактовые импульсы, то можно сделать наоборот — затактировать МК от CH340G.

        Я надеюсь, мы все понимаем, что амплитуда колебаний и смещение среднего у разных тактовых генераторов разные. Причем, я допускаю, что может случиться даже такое — у меня такая схема заработает, а кого-то нет. Не хватит каких-нибудь 100 мВ сигнала или смещения нуля.

      • Ширше мыслим: да, можно от кварца на МК. А можно и от генератора с TTL/CMOS выходом. Идея, в целом, сводится не к экономии кварца, а к экономии места.

      • Дак ведь, внешний осцияллятор тоже место занимает. Кроме того, к нему еще и питание нужно подвести, кондёрами по питанию обвесить и т.д.

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

      • Прикол заключается в наличии дополнительной степени свободы при проектировании не переходника, а набортного интерфейса.

      • Да, я вроде бы о том же говорю — использовать ch430g для связи разрабатываемого девайса на МК с хостом (с компом). Грубо говоря, как недорогая замена относительно более дорогому решению на FT232RL.

      • Дык я кагбе в курсе, ага.

        Просто при наличии на плате нескольких тактируемых устройств как-то сама собой приходит мысль об одном, общем на всех клоке (если нет каких-то особых требований по частотам).

  4. Существует такое понятие: стандарт RS232 (уровень логического нуля и единицы). Как с этим делом проблем нет? Или «нам это пофиг», поскольку стандарты нам ни к чему, мы их все равно не знаем.

    • Извините, Владимир, боюсь, что я ваш вопрос не понял. Попробуйте как-нибудь выразить свою мысль иначе? Что Вас беспокоит?

  5. Беспокоит то, что это UART, но его выходные сигналы не соответствуют стандарту RS232. У стандарта RS232 выходной уровень логического нуля («0») равен +3V (и более). Уровень логической единицы («1») равен -3V (и менее). У этого чипа CH340G уровень выходного логического нуля равен +5V, а уровень логической единицы равен 0V. Я сам сдуру купил на EBAY пару таких «шнурков» USB-COM по смешной цене 1,5USD, но они мне не подошли, поскольку было нужно прохождение сигналов на расстояние 30 метров. Для полной реализации связи по стандарту RS232 требуется другая модификация чипа — это CH340R (20 pin) в сочетании с MAX213. И только в этом случае реализуется полноценный COM-порт с уровнями электрических сигналов по стандарту RS232.
    P.S. хотя возможно и CH340G в сочетании с MAX213 сможет обеспечить полный стандарт RS232 (возможно зависит от уровня входного сигнала на pin.15 = R232), но к сожалению китайцы именно на эту модификацию чипа CH340 (CH340G =16 pin) даташит не предоставляют.

    • Владимир, простите меня за занудство!

      Вы всё правильно сказали: UART — это не RS232. Отличаются эти два интерфейса только уровнями сигналов логической единицы и логического нуля. Ну, если быть более строгим в определениии, то есть еще такие понятия как «полный» RS232 и «усечённый».

      Полный RS232 — это когда имеются в наличие еще и такие сигналы как RI, RTS, CTS, DTR, … Усеченный вариант вариант RS232 — это когда наличествуют только TxD и RxD.

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

      А вот, чтобы получить из интерфейса UART интерфейс RS232 как раз и необходимо установить преобразователь уровней. Это может быть микросхема MAX232 (или других производителей) для 5-вольтовых схем или MAX3232 — для схем, в которых напряжение питания составляет +3.3 В.

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

      А вот тут:

      >> У этого чипа CH340G уровень выходного логического нуля равен +5V, а уровень логической единицы равен 0V.

      я не могу с Вами согласится. Вы немного заблуждаетесь. В режиме паузы (в режиме останова) UART находится в состоянии логической единицы. Начало передачи осуществляется со стартового бита, который является логическим нулем. Стоповый бит — это бит логической единицы. CH430G находится в полном соответствии со стандартом UART.

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

      Владимир, искренне желаю Вам стать уважаемым специалистом!

  6. Всё правильно говорите, но вот я столкнулся с непоняткой одной, ранее юзал подобные переходники USB-COM без проблем, а недавно прикупил по дешёвке на али переходник CH340G (по крайней мере серия точно 340, точнее идентифицировать не могу, сам чип под кляксой залит), дрова встали без проблем, COM в системе определяется, заворот с Tx на Rx в терминале работает, а вот с девайсами не получается общаться и при этом в режиме покоя на Tx нет лог еденицы, вообще ни на одном пине не вижу высокого уровня, снова пробую заворот — в терминале эхо отрабатывает чётко как и должно. Сами девайсы рабочие и с другим переходником работают. Прозвонил тестером всё, что можно- ничего не нашёл, шнурок целый.

    • Всё нормально, Слава!

      Оба ваших коммента получены. Второй, дублирующий коммент, я удалю. Вы, видимо, впервые пишите коменты ко мне в блог или не находитесь св числе подписчиков. Короче, систем Вас не знает. Поэтом «новых» людей система отправляет ко мне на идентификацию.

      В данный момент я не имею физической возможности Вам ответить. Нахожсь в творческом потоке, пишу статью по mspdebug. Но через несколько часов, я думаю, я смогу уделить Вам время. Мои извинения!

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s