Re: problems with ch341 driver USB RS485 in Linux but not Windows

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Apr 23, 2022 at 03:51:46PM -0700, John Paul Morrison wrote:
> Hi Johan
> 
> This is the debugging output from the problem device - the chip version
> does not match and there's no break message or quirk flags.
> I compared the circuit boards and the problem device has a 12 MHz crystal
> and the chip is labelled  WCH CH340G.
> The working device doesn't have a crystal and the chip is unmarked or
> scrubbed. The circuit boards and construction appear the same.
> 
> Comparing datasheets the 340 requires an external crystal while the 341 can
> use an internal oscillator, so the working devices have a 341 of some sort.
> 
> I'll try a usbpcap/wireshark of the windows device - anything to look for?

Compare the control requests sent during probe and open with those of
the working device. In theory the bulk data could also packaged
differently but start with looking at the control requests.

You never answered my question on how this device is failing to work.
Is receive working at all? Do you see anything being transmitted even if
garbled?

> Another question - the CH340/341 datasheets list the maximum speed as 2
> Mbps, and the MAX485 line diver says it can do 2.5 Mbps.
> I have not been able to get them to work at 2 Mbps with either Linux or
> Windows but they work at 1.5 Mbps.
> Data is completely corrupted at 2 Mbps as if the baud rate is mismatched.
> Curious if anyone has these working above 1.5 Mbps.

I'm pretty sure we got both 2 Mbps and 3 Mbps to work accurately (at
least at TTL level). See commit 35714565089e ("USB: serial: ch341:
reimplement line-speed handling") that went into v5.5.

> [2419514.614782] usb 3-3.1: new full-speed USB device number 34 using
> xhci_hcd
> [2419514.821688] usb 3-3.1: New USB device found, idVendor=1a86,
> idProduct=7523, bcdDevice= 2.63
> [2419514.821694] usb 3-3.1: New USB device strings: Mfr=0, Product=2,
> SerialNumber=0
> [2419514.821697] usb 3-3.1: Product: USB2.0-Serial
> [2419514.831394] ch341 3-3.1:1.0: ch341-uart converter detected
> [2419514.831434] usb 3-3.1: ch341_control_in - (5f,0000,0000,2)
> [2419514.832185] usb 3-3.1: Chip version: 0x31

Note that the CH340G I have is here working correctly, but the chip
version is reported as 0x30 like your functioning device.

> [2419514.832190] usb 3-3.1: ch341_control_out - (a1,0000,0000)
> [2419514.832680] usb 3-3.1: ch341_control_out - (9a,1312,b282)
> [2419514.833181] usb 3-3.1: ch341_control_out - (9a,2518,00c3)
> [2419514.833685] usb 3-3.1: ch341_control_out - (a4,ffff,0000)
> [2419514.834987] usb 3-3.1: ch341-uart converter now attached to ttyUSB0

Johan



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux