WCH CH9102F USB to UART bridge controller.

MrMcChip
Posts: 4
Joined: Tue Dec 14, 2021 6:08 pm

WCH CH9102F USB to UART bridge controller.

Postby MrMcChip » Tue Dec 14, 2021 7:03 pm

Hello All,
I have a WCH CH9102F USB to UART bridge controller that is not seen by Linux 5.4.1.
The controller is on a TTGO T display dev board with an ESP32-DOWDQ6-V3 and a USB type-C connector.
The same dev board with a CP 2102 connects to my stock build Linux Chromebook without the need to install any additional drivers.
Other dev boards with CP2104 and CH340C also connect to my system and are seen/enumerated when running "LSUSB".
My question is do I have a bad board? Or do I need to install an additional driver to see this particular controller? Thanks in advance!

ESP_Sprite
Posts: 9746
Joined: Thu Nov 26, 2015 4:08 am

Re: WCH CH9102F USB to UART bridge controller.

Postby ESP_Sprite » Wed Dec 15, 2021 1:30 am

As far as I can see, the standard CDC-ACM class should pick up that chip. CDC-ACM devices are detected as /dev/ttyACMx, not as /dev/ttyUSBx. Perhaps that's the issue; you're looking for the wrong device node?

MrMcChip
Posts: 4
Joined: Tue Dec 14, 2021 6:08 pm

Re: WCH CH9102F USB to UART bridge controller.

Postby MrMcChip » Thu Dec 16, 2021 12:24 pm

ESP_Sprite,
Thank you for your reply. I am a newbie here, my HP Chromebook runs Debian 10. I am aware of CDC-ACM driver through my web searches but I am unable to locate driver / module file on my system? WCH CH9102F data sheet states the CH9102F is fully compliant to the CDC Standard and will work with a standard CDC-ACM driver.

Based on my web searches, LILYGO TTGO has substituted the CH9102F in place of the CP2104 as a "drop-in replacement". My other TTGO development board with a CP2104 is discovered when plugged into the USB and a pop-up a prompts "CONNECT TO LINUX". The" lsusb" command lists the device (Bus 001 Device 018: ID 10c4:ea60 CP2102). Arduino IDE shows "PORT: /dev/ttyUSB0". Chromebook settings shows:

"Manage USB devices
Give Linux apps permission to access USB devices. Linux won't remember a USB device after it's removed.
Only supported devices are shown.
CP2104 USB to UART Bridge Controller"

This is Plug & Play with no need to install any additional drivers or any other procedures. The same is true for the CP2104 & the CH340C.

This is my first and only board with the CH9102 chip, so the question remains do I have a bad board? bad chip? or as my system not configured properly?

A magnified visual inspection of the board looks okay, Ohm meter trace appears to follow schematic, and voltmeter verifies 3.3 volts and a silicone controlled 1.6 k-ohm resister to the Data Plus. I am trying to run USBVIEW (currently not loading showing error message) to see if it would show anything? Plugging in this board initiates nothing other than charging the on board battery & my system generates no message AKA "error device driver not found".

Again, thank you for your reply. I greatly appreciate your time and consideration. Have a good day!

MrMcChip
Posts: 4
Joined: Tue Dec 14, 2021 6:08 pm

Re: WCH CH9102F USB to UART bridge controller.

Postby MrMcChip » Thu Dec 16, 2021 9:38 pm

Additional info...I'm not sure how to interpret this output:

colddog1964@penguin:/sys/bus/usb/drivers$ ls -l
total 0
drwxr-xr-x 2 nobody nogroup 0 Dec 16 13:43 cdc_acm
drwxr-xr-x 2 nobody nogroup 0 Dec 16 13:43 ch341
drwxr-xr-x 2 nobody nogroup 0 Dec 16 13:43 cp210x
drwxr-xr-x 2 nobody nogroup 0 Dec 16 13:43 ftdi_sio
drwxr-xr-x 2 nobody nogroup 0 Dec 16 13:43 hub
drwxr-xr-x 2 nobody nogroup 0 Dec 16 13:43 keyspan
drwxr-xr-x 2 nobody nogroup 0 Dec 16 13:43 pl2303
drwxr-xr-x 2 nobody nogroup 0 Dec 16 13:43 usb
drwxr-xr-x 2 nobody nogroup 0 Dec 16 13:43 usbfs
drwxr-xr-x 2 nobody nogroup 0 Dec 16 13:43 usbhid
drwxr-xr-x 2 nobody nogroup 0 Dec 16 13:43 usbserial_generic
drwxr-xr-x 2 nobody nogroup 0 Dec 16 13:43 usb_serial_simple
drwxr-xr-x 2 nobody nogroup 0 Dec 16 13:43 usb-storage

colddog1964@penguin:/sys/bus/usb/drivers$ cd cp210x
colddog1964@penguin:/sys/bus/usb/drivers/cp210x$ ls -l
total 0
--w------- 1 nobody nogroup 4096 Dec 16 15:27 bind
--w------- 1 nobody nogroup 4096 Dec 16 13:43 uevent
--w------- 1 nobody nogroup 4096 Dec 16 15:27 unbind
colddog1964@penguin:/sys/bus/usb/drivers/cp210x$ cd ..

colddog1964@penguin:/sys/bus/usb/drivers$ cd cdc_acm
colddog1964@penguin:/sys/bus/usb/drivers/cdc_acm$ ls -l
total 0
--w------- 1 nobody nogroup 4096 Dec 16 13:46 bind
-rw-r--r-- 1 nobody nogroup 4096 Dec 16 13:46 new_id
-rw-r--r-- 1 nobody nogroup 4096 Dec 16 13:46 remove_id
--w------- 1 nobody nogroup 4096 Dec 16 13:43 uevent
--w------- 1 nobody nogroup 4096 Dec 16 13:46 unbind
colddog1964@penguin:/sys/bus/usb/drivers/cdc_acm$

cp2110x works
nothing listed for ch9102
cdc_acm dosent seem to step-in ?

ESP_Sprite
Posts: 9746
Joined: Thu Nov 26, 2015 4:08 am

Re: WCH CH9102F USB to UART bridge controller.

Postby ESP_Sprite » Fri Dec 17, 2021 4:50 am

Okay, let's go back a bit, aside from the driver thing it may indeed also be bad hardware. Do you see anything extra pop up in your 'lsusb' output after you plug in the device? If not, we can rule out anything else as you have a bad device (as lsusb works for any usb device, independent of if there's a driver for it or not). If you do, we can go trouble-shoot from there. If you don't, you should look at your hardware. (You don't happen to be using a charge-only usb cable? That sometimes catches people out.)

Wrt driver: CDC-ACM devices do not need a chip-specific driver; they use the standard class driver and you seem to have that installed, so I'd expect a node /dev/ttyACM0 to pop up if you plug in the device, given your hardware is good.

MrMcChip
Posts: 4
Joined: Tue Dec 14, 2021 6:08 pm

Re: WCH CH9102F USB to UART bridge controller.

Postby MrMcChip » Fri Dec 17, 2021 8:17 am

Thank you for the reply.
The port & data cable were verified & ruled out. That left the device (pcb & chip) and my system config (drivers). Learning more about "lsusb" & its low level scanning capabilities independent of drivers has really been a big help troubleshooting. Thank you for confirming that.
Currently, I don't have another CH9012F device to A/B & verify my system & config. I have a "USB to TTL adapter" with a WCH CH9012F ordered. It seems that this chip & derivative CH9012X are becoming a more popular (cheaper) option to the CP210x family.
I have to note that a lot of my readings has directed me to the CDC-ACM driver but on my Debian 10 sys the file is underscored "cdc_acm".
Focus will now shift on deeper component level troubleshooting. The board runs the factory installed code but will not mount to accept an upload.
I verified that the ch9012 does provide a 1.6 k ohm silicon pull-up resistor to DATA PLUS when powered... that's part of the confusion as to why it did not at least flag an error message or a notable change to lsusb output when plugged in?
Thank you again for your reply & assistance both are greatly appreciated. Have a great day!

Who is online

Users browsing this forum: No registered users and 107 guests