Qinheng electronics hl 340 usb serial adapter что это

Обновлено: 06.07.2024

При подключении платформ разработки на базе Arduino к компьютеру, вы связываете между собой два мира: микроконтроллерный и микропроцессорный.

Стандартным интерфейсом плат Arduino на микроконтроллерах ATmega328P является UART, а у современных компьютеров используется USB. Чип USB-UART CH340G служит мостом между микроконтроллером и USB-портом компьютера, который позволяет загружать прошивку в плату, а также передавать между собой данные.

Список поддерживаемых плат

Зачем нужен драйвер?

При подключении любого устройства к USB-порту компьютера необходимо подсказать операционной системе, как с ним общаться. На стороне компьютера таким переводчиком является специальная программа, называемая драйвером. Например, драйвер преобразователя USB-UART работает в режиме эмуляции последовательного COM-порта. Т. е. при подключении вашей платы к компьютеру чип моста с помощью драйвера попросит операционную систему открыть виртуальный COM-порт, через который начнётся общение между платой и ПК.

Каждый производитель делает свои чипы с соответствующими драйверами. К сожалению, не все драйверы предустановлены в операционных системах по умолчанию. Когда нужного драйвера нет, ОС пытается найти его для нового подключённого устройства, не находит, и вместо виртуального COM-порта вы видите надпись «USB 2.0 SERIAL» или «Неизвестное устройство». Для решения проблемы скачайте и установите драйвер для вашей операционной системы.

Установка драйвера

Рассмотрим установку драйвера на примере платы Iskra Uno в операционной системе Windows. С остальными платами ситуация будет аналогичная.


Подключите плату к компьютеру по USB. Для коммуникации используйте кабель USB (A — B). Установите и настройте интегрированную среду разработки Arduino IDE. Скачайте и установите драйвер CH340 для Windows. Откройте диспетчер устройств Windows и раскройте вкладку «Порты (COM и LPT)».


Если во вкладке отображается пункт USB-SERIAL CH340 (COMx) — значит, всё получилось, и можно переходить к прошивке платформы. Если пункта не обнаружено или вкладка «Порты (COM и LPT)» вовсе отсутствует, следуйте дальнейшей инструкции.


В диспетчере устройств Windows раскройте вкладку «Другие устройства» и найдите пункт USB2.0-Serial .


Далее кликните правой кнопкой мыши по пункту USB 2.0 Serial и выберите раздел «обновить драйвер».


Выберите пункт «Выполнить поиск драйверов на этом компьютере».


Укажите путь к директории драйвера и нажмите кнопку «установить». В нашем случае: C: Program Files (х86) Arduino drivers


Откройте повторно вкладку «Порты (COM и LPT)» в диспетчере устройств. Если там отображается пункт USB-SERIAL CH340 (COMx) — значит, всё получилось, и теперь можно переходить к прошивке платформы.

Иногда возникает желание работать с устройством, подключенным по USB, не держа его на столе рядом с ноутбуком. У меня таким устройством является китайский гравёр с лазером на 500 мВт, штука довольно неприятная при близком контакте. Помимо непосредственной опасности для глаз, в процессе работы лазера выделяются токсичные продукты горения, поэтому устройство должно находится в хорошо проветриваемом помещении, и желательно изолированно от людей. А как же таким устройством управлять? Ответ на данный вопрос я случайно нашел, просматривая репозиторий OpenWRT в надежде найти достойное применение старенькому роутеру D-Link DIR-320 A2. Для подключения решил использовать описываемый на Хабре ранее USB over IP tunnel, однако все инструкции по его установке успели потерять актуальность, поэтому пишу свою.

OpenWRT — операционная система, не нуждающаяся в представлении, поэтому её установку расписывать не буду. Для своего роутера взял последний стабильный релиз OpenWrt 19.07.3, и подключил его к основной точке доступа по Wi-Fi в качестве клиента, выбрав режим lan, чтобы не мучать файрвол.

Серверная часть

Действуем согласно официальной инструкции. После подключения по ssh устанавливаем необходимые пакеты.


Далее подключаем к USB-порту роутера наше устройство (в моём случае устройства: USB-хаб, флешку, на которую смонтирована файловая система роутера (ввиду нехватки места на внутреннем накопителе), и, непосредственно, гравёр).

Пробуем вывести список подключенных устройств:

Путём гугления был найден виновник, им оказалась библиотека libudev-fbsd.
Вытаскиваем руками из репозитория последнюю рабочую версию libudev_3.2-1 из релиза OpenWRT 17.01.7 под свою архитектуру, в моём случае это libudev_3.2-1_mipsel_mips32.ipk. С помощью wget/scp загружаем её в память роутера и переустанавливаем


Китаец, подключенный в USB-хаб, получил bsuid 1-1.4. Запомнили.

Теперь запускаем демон:


и биндим китайца


Проверяем, что всё работает:


Чтобы далее биндить девайс автоматически, подредактируем /etc/rc.local, добавив перед exit 0 следующее:

Клиентская часть


Связано это с тем, что клиент не работает с сервером, собранным под ядро старше версии 3.14.
Сервер usbip под OpenWRT 19.07.3 собран на ядре 4.14.180.

Продолжая поиски, натыкаюсь на актуальную разработку виндового клиента на github. Ок, заявлена поддержка Windows 10 x64, но клиент исключительно тестовый, поэтому присутствует ряд ограничений.

Итак, сначала просят установить сертификат, притом дважды. Ок, помещаем его в Trusted Root Certification Authority и Trusted Publishers.

Далее необходимо перевести операционную систему в тестовый режим. Делается это командой


С первого раза у меня не получилось, помешал secure boot. Для его отключения необходимо перезагрузиться в UEFI, и выставить secure boot — disable. На некоторых моделях ноутбуков может потребоваться установка supervisor password.

После этого загружаемся в Windows и делаем bcdedit.exe /set TESTSIGNING ON
Винда говорит, что всё ок. Снова перезагружаемся, и видим в правом нижнем углу надпись Test Mode, версию и номер билда ОС.

Для чего же все эти манипуляции? Для установки неподписанного драйвера USB/IP VHCI. Сделать это предлагается, скачав файлы usbip.exe, usbip_vhci.sys, usbip_vhci.inf, usbip_vhci.cer, usbip_vhci.cat, и выполнив с правами администратора


либо второй способ, установка Legacy Hardware в ручном режиме. Я выбрал второй вариант, получил предупреждение об установке неподписанного драйвера и согласился с ним.

Далее проверяем, что у нас есть возможность подключиться к удаленному USB-устройству, выполняя команду:


получаем список устройств:


на ошибку usbip: error: failed to open usb id database не обращаем внимания, на работу не влияет.

Теперь биндим устройство:


Всё, винда обнаружила новое устройство, теперь с ним можно работать так, как будто оно физически подключено к ноутбуку.

С китайским гравёром пришлось немного помучаться, так как при попытке установить его драйвер CH341SER через прилагавшийся к гравёру инсталлятор (да, гравёр на Ардуино), USB/IP VHCI ронял винду в BSOD. Однако установка драйвера CH341SER до подключения устройства через usbip.exe решала проблему.

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

02 окт 2016, 12:19

Всем доброго времени суток. Вообщем, попался мне USB-COM переходник

На картинке - два одинаковых переходника. Разница угадывается только в небольшой "зеленоватости" левого переходника и более сильной "голубоватости" правого переходника. С левым переходником проблем нет, а вот с правым. Причем партия одна и та же, в системе определяются абсолютно одинаково..
Все дело в том, что у меня на работе касса работает на Linux Mint 17.3 Rosa. Сама программа кассы пашет на Net.Framework 4.0 через Wine 1.6. В Linux воткнут кассовый аппарат через такой USB-COM переходник. В Linux все вставало всегда без проблем, я просто добавлял юзера в группу dialout и tty. Затем пробрасывал в wine порт ttyUSB0 под именем com1. И все прекрасно работало. Пока не пришло это. Покупку делал я, в кол-ве 100 шт. И не пашет. Как объяснить шефу, что я купил 100 шт переходников, который не могу завести - даже не представляю себе)).
Вообщем, имею следующее:
1. Linux видит устройство: команда lsusb - "1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter"
2. Драйвер встал норм - команда dmesg | grep tty - "usb 2-1.2: ch341-uart converter now attached to ttyUSB0"

Пробрасываю его в wine - ln -s /dev/ttyUSB0

/.wine/dosdevices/com1
Все как обычно. но не работает.
Тестирую сей девайс на Win8 - переходник там прекрасно работает, драйвера в комплекте на Win завелись и встали норм, касса пашет норм на винде. Значит - проблема с драйверами на Linux.
Пошукав в просторах интернета, нашел такую инфу, что это, скорее всего, потому что этот переходник работает на специальном доработанном драйвере, который поддерживает асинхронные usb-com адаптеры. Нашел мануал:

Однако на первой же команде споткнулся, т.к. в указанной в команде папке нету такого архива.
плюнул дальше пошел вставлять строки в терминал. споткнулся на команде cp ch341.c ch341.c.orig - нет такого файла ch341.c
вообщем нужна помощь. пока не казнили мну)
Помогите переделать скрипт для Linux mint 17.3 Rosa.
uname -a выдает следующее Последний раз редактировалось пользователем 1 di_mok; всего редактировалось раз: 2

02 окт 2016, 13:52

sulpakneo писал(а): Однако на первой же команде споткнулся, т.к. в указанной в команде папке нету такого архива. это скорее описание того что надо сделать, а не точный набор команд и путей имхо )

02 окт 2016, 14:40

Сразу наводит на подозрение. Почему 3.19.0?

Ни когда ни чем подобным не занимался, но по логике сначало нужно посмотреть

Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)

02 окт 2016, 16:52

sulpakneo писал(а): sudo apt-get source linux-source-3.19.0 linux-headers-$(uname -r) Вообще да, притянуть source от определенной версии и хидеры для текущего ядра - первый глупый поступок, по остальному - надо бы попробовать.
sulpakneo писал(а): Тестирую сей девайс на Win8 - переходник там прекрасно работает, драйвера в комплекте на Win завелись и встали норм, касса пашет норм на винде. Значит - проблема с драйверами на Linux.

проверить бы сначала как он работает на линукс - попробуй опросить какуюнибудь железку через него без wine

У меня ситауция с usb2com девайсом была обратной в свое время, чтоб завести его под виндой надо было как-то вкрутить некий чудо-драйвер, который отказывался работать на системах выше xp, а в 11-м минте досточно было воткнуть его в usb и все работало искаропки

Изображение


Изображение

02 окт 2016, 17:43

У меня валяется ch-340. Заводится без проблем. В wine не пробрасывал. Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)

09 ноя 2016, 00:47

sulpakneo писал(а): Всем доброго времени суток. Вообщем, попался мне USB-COM переходник

На картинке - два одинаковых переходника. Разница угадывается только в небольшой "зеленоватости" левого переходника и более сильной "голубоватости" правого переходника. С левым переходником проблем нет, а вот с правым. Причем партия одна и та же, в системе определяются абсолютно одинаково..
Все дело в том, что у меня на работе касса работает на Linux Mint 17.3 Rosa. Сама программа кассы пашет на Net.Framework 4.0 через Wine 1.6. В Linux воткнут кассовый аппарат через такой USB-COM переходник. В Linux все вставало всегда без проблем, я просто добавлял юзера в группу dialout и tty. Затем пробрасывал в wine порт ttyUSB0 под именем com1. И все прекрасно работало. Пока не пришло это. Покупку делал я, в кол-ве 100 шт. И не пашет. Как объяснить шефу, что я купил 100 шт переходников, который не могу завести - даже не представляю себе)).
Вообщем, имею следующее:
1. Linux видит устройство: команда lsusb - "1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter"
2. Драйвер встал норм - команда dmesg | grep tty - "usb 2-1.2: ch341-uart converter now attached to ttyUSB0"

Пробрасываю его в wine - ln -s /dev/ttyUSB0

/.wine/dosdevices/com1
Все как обычно. но не работает.
Тестирую сей девайс на Win8 - переходник там прекрасно работает, драйвера в комплекте на Win завелись и встали норм, касса пашет норм на винде. Значит - проблема с драйверами на Linux.
Пошукав в просторах интернета, нашел такую инфу, что это, скорее всего, потому что этот переходник работает на специальном доработанном драйвере, который поддерживает асинхронные usb-com адаптеры. Нашел мануал:

Однако на первой же команде споткнулся, т.к. в указанной в команде папке нету такого архива.
плюнул дальше пошел вставлять строки в терминал. споткнулся на команде cp ch341.c ch341.c.orig - нет такого файла ch341.c
вообщем нужна помощь. пока не казнили мну)
Помогите переделать скрипт для Linux mint 17.3 Rosa.
uname -a выдает следующее

команда cp ch341.c ch341.c.orig подразумевает что вы делаете копию файла ch341.с с другим названием ch341.c.orig что бы если при компиляции с ним что нибудь произойдет
также логика подразумевает что вы находитесь в папке
/usr/src/linux-source-3.19.0/drivers/usb/serial


аналогично только в папке /lib/modules/$(uname -r)/kernel/drivers/usb/serial/

При подключении платформ разработки на базе Arduino к компьютеру, вы связываете между собой два мира: микроконтроллерный и микропроцессорный.

Стандартным интерфейсом плат Arduino на микроконтроллерах ATmega328P является UART, а у современных компьютеров используется USB. Чип USB-UART CH340G служит мостом между микроконтроллером и USB-портом компьютера, который позволяет загружать прошивку в плату, а также передавать между собой данные.

Список поддерживаемых плат

Зачем нужен драйвер?

При подключении любого устройства к USB-порту компьютера необходимо подсказать операционной системе, как с ним общаться. На стороне компьютера таким переводчиком является специальная программа, называемая драйвером. Например, драйвер преобразователя USB-UART работает в режиме эмуляции последовательного COM-порта. Т. е. при подключении вашей платы к компьютеру чип моста с помощью драйвера попросит операционную систему открыть виртуальный COM-порт, через который начнётся общение между платой и ПК.

Каждый производитель делает свои чипы с соответствующими драйверами. К сожалению, не все драйверы предустановлены в операционных системах по умолчанию. Когда нужного драйвера нет, ОС пытается найти его для нового подключённого устройства, не находит, и вместо виртуального COM-порта вы видите надпись «USB 2.0 SERIAL» или «Неизвестное устройство». Для решения проблемы скачайте и установите драйвер для вашей операционной системы.

Установка драйвера

Рассмотрим установку драйвера на примере платы Iskra Uno в операционной системе Windows. С остальными платами ситуация будет аналогичная.


Подключите плату к компьютеру по USB. Для коммуникации используйте кабель USB (A — B). Установите и настройте интегрированную среду разработки Arduino IDE. Скачайте и установите драйвер CH340 для Windows. Откройте диспетчер устройств Windows и раскройте вкладку «Порты (COM и LPT)».


Если во вкладке отображается пункт USB-SERIAL CH340 (COMx) — значит, всё получилось, и можно переходить к прошивке платформы. Если пункта не обнаружено или вкладка «Порты (COM и LPT)» вовсе отсутствует, следуйте дальнейшей инструкции.


В диспетчере устройств Windows раскройте вкладку «Другие устройства» и найдите пункт USB2.0-Serial .


Далее кликните правой кнопкой мыши по пункту USB 2.0 Serial и выберите раздел «обновить драйвер».


Выберите пункт «Выполнить поиск драйверов на этом компьютере».


Укажите путь к директории драйвера и нажмите кнопку «установить». В нашем случае: C: Program Files (х86) Arduino drivers


Откройте повторно вкладку «Порты (COM и LPT)» в диспетчере устройств. Если там отображается пункт USB-SERIAL CH340 (COMx) — значит, всё получилось, и теперь можно переходить к прошивке платформы.

Читайте также: