[Bug 287509] CH340 USB-serial converter wrong baud rate for 2400 and 1200 baud

From: <bugzilla-noreply_at_freebsd.org>
Date: Fri, 13 Jun 2025 19:47:01 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=287509

            Bug ID: 287509
           Summary: CH340 USB-serial converter wrong baud rate for 2400
                    and 1200 baud
           Product: Base System
           Version: 14.2-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: usb
          Assignee: usb@FreeBSD.org
          Reporter: pkk@spth.de

I have a USB-serial converter (AFAIR I bought it as a CH340G years ago), where
setting the baud rate to 2400 or 1200 results in it sending at 380 baud
instead. The problem is the same for FreeBSD 14.2 and Linux 6.12.27. But the
USB-serial converter works for OpenBSD 7.6.

FreeBSD dmesg when plugging it in:

ugen0.3: <vendor 0x1a86 USB2.0-Ser> at usbus0
uchcom0 on uhub1
uchcom0: <vendor 0x1a86 USB2.0-Ser, rev 1.10/2.54, addr 2> on usbus0
uchcom0: CH340 detected

lsusb -v output on GNU/Linux:

Bus 003 Device 027: ID 1a86:7523 QinHeng Electronics CH340 serial converter
root@notebook6:~# lsusb -s 3:27 -v

Bus 003 Device 027: ID 1a86:7523 QinHeng Electronics CH340 serial converter
Negotiated speed: Full Speed (12Mbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x1a86 QinHeng Electronics
  idProduct          0x7523 CH340 serial converter
  bcdDevice            2.54
  iManufacturer           0 
  iProduct                2 USB2.0-Ser!
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0027
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower               96mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      1 [unknown]
      bInterfaceProtocol      2 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0020  1x 32 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0020  1x 32 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               1
Device Status:     0x0000
  (Bus Powered)

-- 
You are receiving this mail because:
You are the assignee for the bug.