Hello ,
I bought the CH341a and wanted to use it with Realteram. The problem is that it is not recognized as COM_Port in the device manger. In the device manger it can be found under interface, with the name "USB-EPP/I2C.... CH341A".
With the program "USB Device Tree Viewer" I have the following data about the device:
=========================== USB Port1 ===========================
Connection Status : 0x01 (Device is connected)
Port Chain : 1-1
Properties : 0x01
IsUserConnectable : yes
PortIsDebugCapable : no
PortHasMultiCompanions : no
PortConnectorIsTypeC : no
ConnectionIndex : 0x01 (Port 1)
CompanionIndex : 0
CompanionHubSymLnk : USB#ROOT_HUB30#4&29fe64cb&0&0#{f18a0e88-c30c-11d0-8815-00a0c906bed8}
CompanionPortNumber : 0x11 (Port 17)
-> CompanionPortChain : 1-17
========================== Summary =========================
Vendor ID : 0x1A86 (Nanjing Qinheng Microelectronics Co., Ltd.)
Product ID : 0x5512
USB Version : 1.1
Port maximum Speed : High-Speed (Companion Port 1-17 supports SuperSpeed)
Device maximum Speed : Full-Speed
Device Connection Speed : Full-Speed
Self powered : no
Demanded Current : 96 mA
Used Endpoints : 4
======================== USB Device ========================
+++++++++++++++++ Device Information ++++++++++++++++++
Device Description : USB-EPP/I2C... CH341A
Device Path 1 : \?\USB#VID_1A86&PID_5512#5&1bde3aaf&0&1#{a5dcbf10-6530-11d2-901f-00c04fb951ed} (GUID_DEVINTERFACE_USB_DEVICE)
Device Path 2 : \?\USB#VID_1A86&PID_5512#5&1bde3aaf&0&1#{5446f048-98b4-4ef0-96e8-27994bac0d00}
Kernel Name : \Device\USBPDO-4
Device ID : USB\VID_1A86&PID_5512\5&1BDE3AAF&0&1
Hardware IDs : USB\VID_1A86&PID_5512&REV_0304 USB\VID_1A86&PID_5512
Driver KeyName : {77989adf-06db-4025-92e8-40d902c03b0a}\0001
Driver : \SystemRoot\System32\Drivers\CH341W64.SYS (Version: 2.30.2022.3 Date: 2022-06-19)
Driver Inf : C:\WINDOWS\inf\oem307.inf
Legacy BusType : PNPBus
Class : WCH
Class GUID : {77989adf-06db-4025-92e8-40d902c03b0a}
Service : CH341_A64
Enumerator : USB
Location Info : Port_#0001.Hub_#0002
Location IDs : PCIROOT(0)#PCI(1400)#USBROOT(0)#USB(1), ACPI(SB)#ACPI(PCI0)#ACPI(XHC_)#ACPI(RHUB)#ACPI(HS01)
Container ID : {3421f80b-0d52-11ee-a677-04d4c4e73c79}
Manufacturer Info : wch.cn
Capabilities : 0xA4 (Removable, SilentInstall, SurpriseRemovalOK)
Status : 0x0180600A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_REMOVABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code : 0
Power State : D0 (supported: D0, D3, wake from D0)
---------------- Connection Information ---------------
Connection Index : 0x01 (Port 1)
Connection Status : 0x01 (DeviceConnected)
Current Config Value : 0x01 (Configuration 1)
Device Address : 0x15 (21)
Is Hub : 0x00 (no)
Device Bus Speed : 0x01 (Full-Speed)
Number Of Open Pipes : 0x03 (3 pipes to data endpoints)
Pipe[0] : EndpointID=2 Direction=IN ScheduleOffset=0 Type=Bulk wMaxPacketSize=0x20 bInterval=0
Pipe[1] : EndpointID=2 Direction=OUT ScheduleOffset=0 Type=Bulk wMaxPacketSize=0x20 bInterval=0
Pipe[2] : EndpointID=1 Direction=IN ScheduleOffset=0 Type=Interrupt wMaxPacketSize=0x8 bInterval=1 -> 196 Bits/ms = 24500 Bytes/s
Data (HexDump) : 01 00 00 00 12 01 10 01 FF 00 02 08 86 1A 12 55 ...............U
04 03 00 00 00 01 01 01 00 15 00 03 00 00 00 01 ................
00 00 00 07 05 82 02 20 00 00 00 00 00 00 07 05 ....... ........
02 02 20 00 00 00 00 00 00 07 05 81 03 08 00 01 .. .............
00 00 00 00 ....
--------------- Connection Information V2 -------------
Connection Index : 0x01 (1)
Length : 0x10 (16 bytes)
SupportedUsbProtocols : 0x03
Usb110 : 1 (yes, port supports USB 1.1)
Usb200 : 1 (yes, port supports USB 2.0)
Usb300 : 0 (no, port not supports USB 3.0) -> but Companion Port 1-17 does
ReservedMBZ : 0x00
Flags : 0x00
DevIsOpAtSsOrHigher : 0 (Device is not operating at SuperSpeed or higher)
DevIsSsCapOrHigher : 0 (Device is not SuperSpeed capable or higher)
DevIsOpAtSsPlusOrHigher : 0 (Device is not operating at SuperSpeedPlus or higher)
DevIsSsPlusCapOrHigher : 0 (Device is not SuperSpeedPlus capable or higher)
ReservedMBZ : 0x00
Data (HexDump) : 01 00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 ................
---------------------- Device Descriptor ----------------------
bLength : 0x12 (18 bytes)
bDescriptorType : 0x01 (Device Descriptor)
bcdUSB : 0x110 (USB Version 1.1)
bDeviceClass : 0xFF (Vendor Specific)
bDeviceSubClass : 0x00
bDeviceProtocol : 0x02
bMaxPacketSize0 : 0x08 (8 bytes)
idVendor : 0x1A86 (Nanjing Qinheng Microelectronics Co., Ltd.)
idProduct : 0x5512
bcdDevice : 0x0304
iManufacturer : 0x00 (No String Descriptor)
iProduct : 0x00 (No String Descriptor)
iSerialNumber : 0x00 (No String Descriptor)
bNumConfigurations : 0x01 (1 Configuration)
Data (HexDump) : 12 01 10 01 FF 00 02 08 86 1A 12 55 04 03 00 00 ...........U....
00 01 ..
------------------ Configuration Descriptor -------------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x02 (Configuration Descriptor)
wTotalLength : 0x0027 (39 bytes)
bNumInterfaces : 0x01 (1 Interface)
bConfigurationValue : 0x01 (Configuration 1)
iConfiguration : 0x00 (No String Descriptor)
bmAttributes : 0x80
D7: Reserved, set 1 : 0x01
D6: Self Powered : 0x00 (no)
D5: Remote Wakeup : 0x00 (no)
D4..0: Reserved, set 0 : 0x00
MaxPower : 0x30 (96 mA)
Data (HexDump) : 09 02 27 00 01 01 00 80 30 09 04 00 00 03 FF 01 ..'.....0.......
02 00 07 05 82 02 20 00 00 07 05 02 02 20 00 00 ...... ...... ..
07 05 81 03 08 00 01 .......
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00 (Interface 0)
bAlternateSetting : 0x00
bNumEndpoints : 0x03 (3 Endpoints)
bInterfaceClass : 0xFF (Vendor Specific)
bInterfaceSubClass : 0x01
bInterfaceProtocol : 0x02
iInterface : 0x00 (No String Descriptor)
Data (HexDump) : 09 04 00 00 03 FF 01 02 00 .........
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x82 (Direction=IN EndpointID=2)
bmAttributes : 0x02 (TransferType=Bulk)
wMaxPacketSize : 0x0020 (32 bytes)
bInterval : 0x00 (ignored)
Data (HexDump) : 07 05 82 02 20 00 00 .... ..
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x02 (Direction=OUT EndpointID=2)
bmAttributes : 0x02 (TransferType=Bulk)
wMaxPacketSize : 0x0020 (32 bytes)
bInterval : 0x00 (ignored)
Data (HexDump) : 07 05 02 02 20 00 00 .... ..
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x03 (TransferType=Interrupt)
wMaxPacketSize : 0x0008 (8 bytes)
bInterval : 0x01 (1 ms)
Data (HexDump) : 07 05 81 03 08 00 01 .......
-------------------- String Descriptors -------------------
------ String Descriptor 0 ------
bLength : 0x04 (4 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language ID[0] : 0x0409 (English - United States)
Data (HexDump) : 04 03 09 04 ....
Hi Yazan,
I would like to share my experience with you.
I there are several different USB to RS485 converters, many of them are based on the CH341 chip.
Mine is transparent blue and has a 5 screw connector: 5V GND GND B A
I installed a windows driver for this CH341 based converter. The driver sets up an old fashioned COM port, (eg COM5)
So, I believe the windows driver for the CH341 chip needs to be installed first.
Then do a port scan within Realterm. Don't forget to click the change button
I Was able to see an LED flashing inside the converter when pressing keys in the terminal.
On a low baudrate (110 or 300 baud) the flashes are longer and easier to see.
After each change, please press the change button in order for the changes to take effect.
greetings, Peter
Hi Peter,
Thank you for your detailed information! I have a CH341A and a CH341T USB converter, and I want to send and receive I2C messages using Realterm. I have successfully set up a COM port, and when I set the adapter to UART, the LED blinks when I press a button in Realterm. However, it doesn't work when I set the adapter to I2C&SPI.
Could you let me know if it's possible to transmit I2C messages with these adapters using Realterm? If so, could you please explain how I can do that? Attached are pictures of my adapter.
Thanks in advance!
Yazan