Я уже затрагивал тему преобразования компьютерного интерфейса USB в последовательный интерфейс UART – стандартный интерфейс любого современного микроконтроллера. В частности сделал обзор модуля PL2303 USB UART BOARD. Показал насколько просто с помощью этого модуля подключать к USB порту компьютера устройства с интерфейсами UART, COM, RS232.
К существующим на рынке мостам USB-UART не так давно добавилась китайская микросхема CH340G (изготовитель – компания WCH). Не просто добавилась, а претендует на то, чтобы стать самым популярным компонентом сопряжения интерфейсов USB и UART.
Этому способствует:
- Низкая цена микросхемы. По моей партнерской программе на момент написания статьи (январь 2017г.) микросхему CH340G можно купить всего за 40 руб., а модуль CH340 продается по цене 90 руб.
- Удобный корпус SO-16. Маленький корпус с небольшим числом выводов и минимум внешних компонентов значительно облегчают применение микросхемы. Если раньше я отдавал предпочтение модулям USB-UART, то сейчас задумываюсь об установке микросхемы CH340 непосредственно на плате устройства.
- Неслучайно практичные китайцы в большинстве своих клонов плат Ардуино используют именно эту микросхему. И это еще один фактор способствующий распространению конвертера CH340. У многих на компьютере уже установлен для него драйвер.
В серию китайских микросхем CH340 входят:
Название | Корпус | Назначение | Официальная техническая документация |
CH340T | SSOP-20 | Мост USB - UART | CH340.pdf |
CH340R | SSOP-20 | Мост USB - IrDA | |
CH340G | SO-16 | Мост USB - UART | CH340G.pdf |
Техническую информацию о микросхемах CH340T и CH340R можно загрузить в формате PDF по этой ссылке CH340.pdf.
Но последний вариант из таблицы – микросхема CH340G оказался наиболее удачным благодаря корпусу с меньшим числом выводов. Именно он получил широкое распространение. Его я и буду описывать. Технические характеристики и параметры я взял из официальной документации производителя – китайской компании WCH. Информацию можно загрузить в формате PDF по этой ссылке CH340G.pdf.
На базе этой микросхемы разработан модуль - преобразователь интерфейсов. О нем я расскажу в следующей публикации.
Мост USB-UART CH340G.
Микросхема предназначена для преобразования интерфейса USB в UART. Позволяет создать на компьютере дополнительный UART порт. Подробно о технологии конвертирования интерфейсов USB и UART можно прочитать по этой ссылке.
Микросхема CH340G:
- Поддерживает полную скорость спецификации USB 2.0.
- Требует минимум внешних компонентов. Только кварцевый резонатор и 4 конденсатора.
- Создает виртуальный последовательный порт, который эмулирует все функции реального COM порта.
- Позволяет использовать все существующие приложения для COM портов без изменения и доработок.
- Аппаратная часть поддерживает последовательный дуплексный интерфейс с внутренним буфером FIFO. Скорость обмена от 50 бит в сек, до 2 Мбит в сек.
- Поддерживает полный контроль сигналов управления передачей данных RTS, DTR, DCD, RI, DSR и CTS.
- При использовании внешних преобразователей уровней поддерживает интерфейсы RS23, RS422, RS485.
- Может работать с сигналами уровней 5 и 3,3 В.
- Конструктивно микросхема выполнена в корпусе SO-16.
Назначение выводов.
Вывод | Обозначение | Направление | Описание |
1 | GND | Питание | Общий провод (земля). Должен быть соединен с общим проводом шины USB. |
2 | TXD | Выход | TXD сигнал UART. |
3 | RXD | Вход | RXD сигнал UART. |
4 | V3 | Питание | Внутреннее опорное напряжение для USB интерфейса. При питании 3,3 В вывод должен быть соединен с Vcc. При напряжении питания 5 В, к нему необходимо подключить относительно земли блокировочный конденсатор емкостью 4,7 – 20 нФ. |
5 | UD+ | Аналог. | D+ сигнал USB. |
6 | UD- | Аналог. | D- сигнал USB. |
7 | XI | Вход | Вход кварцевого генератора. К нему подключается кварцевый резонатор и конденсатор. |
8 | XO | Выход | Выход кварцевого генератора. К нему подключается кварцевый резонатор и конденсатор. |
9 | CTS# | Вход | CTS сигнал UART. |
10 | DSR# | Вход | DSR сигнал UART. |
11 | RI# | Вход | RI сигнал UART. |
12 | DCD# | Вход | DCD сигнал UART. |
13 | DTR# | Выход | DTR сигнал UART. |
14 | RTS# | Выход | RTS сигнал UART. |
15 | R232 | Вход | Включение инверсии входа RXD. Активный уровень – высокий. Вход имеет внутренний резистор, подключенный к земле. |
16 | VCC | Питание | Питание. |
Предельно-допустимые параметры.
Превышение значений этих параметров может привести к выходу из строя микросхемы.
Обозначение | Название | Минимальное значение | Максимальное значение | Единица измерения |
Ta | Рабочая температура | - 40 | 85 | °C |
Ts | Температура хранения | -40 | 125 | °C |
Vcc | Напряжение питания (относительно вывода GND) | - 0,5 | 6,5 | В |
Vid | Напряжение на цифровых выводах (относительно вывода GND) | - 0,5 | Vcc + 0,5 | В |
Параметры постоянного тока.
Обозначение | Название | Мин. | Тип. | Макс. | Ед. изм. | |
Vcc | Напряжение питания | Питание 5 В | 4,5 | 5 | 5,5 | В |
Питание 3,3 В | 3,3 | 3,3 | 3,8 | В | ||
Icc | Потребляемый ток | 12 | 30 | мА | ||
Islp | Потребляемый ток в режиме сна | Питание 5 В | 150 | 200 | мкА | |
Питание 3,3 В | 50 | 80 | мкА | |||
Vil | Входное напряжение низкого уровня | - 0,5 | 0,7 | В | ||
Vih | Входное напряжение высокого уровня | 2,0 | Vcc + 0,5 | В | ||
Vol | Выходное напряжение низкого уровня | 0,5 | В | |||
Voh | Выходное напряжение высокого уровня | Vcc – 0,5 | В | |||
Iup | Ток внутренней подтяжки к питанию | 3 | 150 | 300 | мкА | |
Idn | Ток внутренней подтяжки к земле | - 50 | - 150 | - 300 | мкА | |
Vr | Напряжение сброса по питанию | 2,3 | 2,6 | 2,9 | В |
Динамические характеристики.
Обозначение | Название | Мин. | Тип. | Макс. | Ед. изм. |
Fclk | Тактовая частота | 11,98 | 12 | 12,02 | мГц |
Tpr | Время сброса по включению питания | 20 | 50 | мс |
Подключение микросхемы CH340G.
Микросхема CH340G содержит внутренние подтягивающие резисторы для шины USB и цепи подавления отраженного сигнала. Поэтому выводы UD+ и UD- должны быть подключены непосредственно к соответствующим сигналам USB (выводам разъема USB).
Микросхема имеет встроенную логику сброса по включению питания.
Для нормальной работы микросхемы необходимо сформировать на выводе XI сигнал частотой 12 мГц.
- Обычно это обеспечивается подключением кварцевого резонатора частотой 12 мГц между выводами XI и XO. Также необходимо подключить нагрузочные конденсаторы между этими выводами и землей. Формирование тактового сигнала при такой схеме включения обеспечивает внутренний генератор.
- Можно использовать внешнюю тактовую частоту. В этом случае тактовый сигнал необходимо подать на вывод XI, а вывод XO оставить неподключенным.
Микросхема поддерживает два напряжения питания: 5 В и 3, 3 В.
- При питании 5 В необходимо подключить блокировочный конденсатор емкостью 4,7-20 нФ между землей и выводом V3.
- В режиме питания 3,3 В вывод V3 должен быть соединен с выводом Vcc.
Конвертер CH340G поддерживает все сигналы управления передачей данных стандартного интерфейса RS233: CTS, DSR, RI, DCD, DTR, RTS. Программное обеспечение также поддерживает все эти сигналы.
С помощью вывода R232 можно включить инверсию сигнала RXD. Инверсия включается высоким уровнем на входе R232. Состояние сигнала запоминается при включении питания. Вход R232 имеет внутренний резистор, поэтому если в режиме инверсии RXD нет необходимости, то можно оставить вывод R232 неподключенным.
Типовая схема использования CH340G в преобразователе интерфейсов USB – UART выглядит так.
Микросхема получает питание 5 В от интерфейса USB. При питании от напряжения 3,3 В необходимо соединить выводы Vcc и V3.
Режимы работы конвертера CH340G.
У микросхемы CH340G есть встроенный буфер типа FIFO.
CH340G поддерживает симплексный, полудуплексный и полнодуплексный асинхронные режимы обмена.
Микросхема поддерживает все стандартные режимы передачи данных:
- 1 стартовый бит и 5-8 битов данных;
- 1 или 2 стоповых битов;
- бит паритета с проверкой на четность или нечетность.
Скорость обмена может быть выбрана из следующих значений:
Скорость обмена, бод | |||
50 | 900 | 19 200 | 128 000 |
75 | 1 200 | 28 800 | 153 600 |
100 | 1 800 | 33 600 | 230 400 |
110 | 2 400 | 38 400 | 460 800 |
134,5 | 3 600 | 56 000 | 921 600 |
150 | 4 800 | 57 600 | 1 500 000 |
300 | 9 600 | 76 800 | 2 000 000 |
600 | 14 400 | 115 200 |
- Ошибка временных параметров передачи данных не превышает 0,3 %.
- При приеме допустимо отклонение временных характеристик до 2 %.
Микросхема полностью эмулирует работу стандартного COM порта. Все приложения для реальных COM портов работают с конвертером интерфейсов CH340G без изменения кода. Подробнее о технологии виртуальных COM портов моно прочитать по этой ссылке.
С помощью CH340G можно подключать существующие периферийные устройства к компьютерам, не имеющим COM портов. Для реализации таких распространенных интерфейсов как RS232, RS422 и RS485 достаточно добавить преобразователи уровней сигналов.
Вот пример схемы для подключения устройств с интерфейсом RS232.
CH340G может быть использована для реализации USB инфракрасного адаптера (интерфейс IrDA). Типовая схема USB - IrDA адаптера выглядит так.
В следующей публикации я расскажу о модуле CH340, созданном на базе этой микросхемы.
Также приведу последовательность операций для установки драйвера моста USB-UART на персональном компьютере.
добрый день. Эдуард какой программой рисуете схемы?
Здравствуйте! ORCAD Как-то привык к этому пакету.
sp план скорей всего
Здравствуйте! Как можно применить китайский адаптер USB-COM на СН340 для подключения программатора микроконтроллеров PIC & Atmel?
Здравствуйте!
Надо смотреть на конкретные типы программаторов. Если они допускают подключение через мост USB-UART, то можно.
Здравствуйте!
Без использовании какое либо данных на выходах RTS и DTR уровни напряжения 0 или 5?
Здравствуйте!
Высокий уровень 5 В.
Не подскажите,как изменить VID и PID этой микросхемы?
Здравствуйте! Я не знаю. У меня такой задачи никогда не возникало.
логический уровень передаваемого сигнала какой? на TXD
никак не пойму, 3.3 или 5 вольт?
или же оно будет совпадать с напряжением питания?
просто вот смотрю готовые преобразователи, там по умолчанию перемычка стоит, с vcc на 3.3v.
т.е. при этом будет на TXD уровень 3.3 вольта значит?
Здравствуйте!
Уровни выходных сигналов зависят от напряжения питания. Посмотрите схему модуля в следующей статье из раздела «Электронные компоненты».
спасибо) то что надо
Здравствуйте.
А что такое режим сна Sleep,как в него переводить?
Здравствуйте!
Не знаю. Могу только предположить, что это режим с отключенным тактированием. Если используется внешние тактовые импульсы, от они отключаются.
Здравствуйте как изменить скорость ком порта больше стандартной ?
Добрый день.
Схема для преобразования USB-IrDA будет работать с электросчетчиками?
Здравствуйте!
Не знаю, надо разбираться. В IRDA обычно укороченные импульсы.
«сигналы управления передачей данных стандартного интерфейса RS233: CTS, DSR, RI, DCD, DTR, RTS»
А что это за сигналы и для чего они нужны? Или где это можно посмотреть?
Знаю только что если сигнал DTR,его можно завести на reset и не нужно каждый раз нажимать вручную нажимать reset при перепрошивке.
Здравствуйте!
Это сигналы управления потоками данных (запрос-готов). В уроке 51 есть таблица с назначением сигналов.
По прямому назначению их используют редко. Часто применяют, как универсальные входы и выходы, управляемые программно. DTR и RTS — выходы, DSR и CTS — входы. Вы сами привели пример, как используется выход DTR. Программа Arduino IDE в нужный момент формирует на выходе импульс, который сбрасывает плату Ардуино.
Здравствуйте.
Можно ли в CH340 произвольно перешить имя , которое будет отображаться в диспетчере устройств? Чтобы в диспетчере среди СОМ портов было название не типа » USB-to-Serial (COM5)», а например «Kofemolka(COM5)»?
Как подсказывает datasheet, — это возможно только для CH340B . Но в то же время, CH340B, CH340C, CH340E — имеют на борту кварц, т.ч. можно обойтись без внешнего.
Доброго времени суток. Вопрос. В моем случае сигнал надо подать на контакт DSR его в схеме нет вывода как быть? При подачи на RxD устройство — переходник мигают светодиоды но дальше нет на ноуте сигнал не видит. Спасибо заранее. Удачи.
Здравствуйте!
Такой сигнал есть на микросхеме CH340. Можно припаять вывод к нему или поискать модуль с таким сигналом.
Спасибо дорогой Эдуард. В завтра попробую подпаять к выводу проводок а вдруг заработает. с меня могорыч. Мне надо подключится к машине в диагностическом разъеме.
Купил USB to TTL on CH340G. Пробывал программировать JDY-40. Команда ив Ардуино и в терминале идут плохо, одна из десяти. Пробывал разные драйвера и на трех конверторах. Все одинаково. В чем может быть причина? Пробывать другие задачи не разобравшись с этой считаю безсмысленно.
Здравствуйте!
Попробуйте с другим USB. Возможно модуль CH340 неисправный. Я встречался и с тем и с другим. Попробуйте PL2303, правда, среди них тоже попадаются те, что сбоят.
У меня их три! И все работают одинаково. В итоге, я запрограммировал, но понимаю, что на каждую команду должен быть отклик. А не на одну из десяти. Когда первый модуль получил, заказал еще 2. Неужели вся партия? Хочу разобраться до конца.
Пробывал на 2 компьютерах и в разной среде — одинаково.
У нас была вся партия сбойных PL2303. Они работали, но периодически начинали сбоить, особенно на длинных пакетах.
А плату Ардуино вы пробовали? Обычно там установлены CH340.
Спасибо, разобрался! Плохо заземлил ножку CS на модуле JDY-40. Когда подключал СH340 без перемычки шло возбуждение модуля из-за плохого питания и он отвечал, но редко. При хорошем питании модуль вообще не отзывался. Стал проверять и нашел причину. Все три конвертера работают исправно и в ардуино и в терминале!
Кстати, перемычку на модуле я вообще снял. Но тестером замерил напряжение питания Vcc-3.76 вольта.
Здравствуйте, не могли бы посоветовать.
С моего устройства приходят сигналы уровней TTL. Мне нужно посчитать их количество с временной меткой прихода. Могу ли я сделать это с использованием, описанной Вами микросхемы?
Спасибо.
Здравствуйте!
Считает импульсы не микросхема CH340, а программа. Я так понял, что вы собираетесь использовать для этого компьютер.
Тогда вопрос формулируется, можно ли считать состояние сигнала TTL через конвертер CH340 на компьютере?
Да, можно. Есть 2 стандартных для COM-интерфейса сигнала DSR и CTS. Они доступны для чтения компьютером. Остается вопрос частоты поступления ваших импульсов. Успеет ли компьютер их обработать.
Эдуард, огромное спасибо за ответ. Вы совершено правильно сформулировали задачу. Да я хочу заменить контроллер CAMAC где это возможно. Но сначала хочу научиться работать с USB портом. Частота, которую я ожидаю — порядка десятка КГц.
Я делал когда то подобное с LPT, там было всё проще. Но не всё работало так, как это мне нужно сейчас.
Здравствуйте!
Тяжело будет на компьютере считать импульсы с довольно высокой частотой. Компьютер не совсем система реального времени. Он прерывается на другие задачи.
Я думаю вам лучше написать программу для платы Ардуино. Она будет считать импульсы и передавать их через последовательный интерфейс на компьютер
Здравствуйте, Эдуард.
Спасибо за рекомендацию.
Я попробую, но к своему стыду я очень плохо знаком с Ардуино. Почитаю.
Еще раз огромное спасибо.