Re: uSB: uslcom: CP2102 weirdness when serial communication via cu/tip/cutecom
- In reply to: FreeBSD User : "uSB: uslcom: CP2102 weirdness when serial communication via cu/tip/cutecom"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 23 Nov 2023 19:40:12 UTC
Am Thu, 23 Nov 2023 20:37:26 +0100 FreeBSD User <freebsd@walstatt-de.de> schrieb: > Hello, > > I'm facing some strange behaviour when connecting to a CP2102 USB-UART bridge built-in into > a I2C-USB device (I2C is handled by an Amtel88, USB-UART is handled by an CP2102, see here: > > https://de.elv.com/pc-usb-i2c-interface-200958 > > for an sketch/overview. The device is recognised as > > uslcom0 on uhub6 > uslcom0: <ELV USB-I2C-Interface> on usbus0 > > for more details via usbconfig see below. > > Using FreeBSD CURRENT and 14-STABLE (both most recent) connecting to the device via > > cu -l /dev/cuaUX -s 115200 > > results in most cases in a stuck connection. The LED of the device is responding to every > keystroke made in the terminal, but I never see any output (which should). > In some rare cases disconneting and reconnecting the USB link and connecting via "cu" gives > the opportunity for a couple of seconds to enter "?" in the terminal which provides some > firmware data on the device - then the communications goes dark. This behaviour is erratic > and non predictable. > > I tried several platforms (hardware), all USB 3, tried FreeBSD 14-STABLE and CURRENT. On a > notebook (Lenovo T560) running 14-STABLE the very same situation, but trying the Lenovo with > Xubuntu 23.10 gives me a working "cu" and I'm able reading environmental data from the > device. > > Using the methusalem USB 2 port of a computer were available gives me a few seconds more on > FreeBSD, before the serial connection goes mute. > > In cases were possible I tried the same hardware with FreeBSD and Linux Xubuntu, FreeBSD > fails, Xubuntu prevails the task. At this point I was quite sure that FreeBSD's uslcom-driver > might be the culprit. > > Out of couriosity I tried a FSBD-13.2RELENG image for AARCH64 (PINE64 I have at hand) and > connected the same way, the same device acts as normal as I see under Linux Xubuntu. I'm able > to take environmental data as long as I please without a problem so far. > > Can someone hint me how to debug such a situation? I'm unwilling to use Linux since our > infrastructure is based on FreeBSD and ... well, no further explanation on that subject ;-) > > Thanks in advance, > > O. Hartmann Forgot this one: [...] usbconfig -d 0.7 dump_all_desc ugen0.7: <Silicon Labs ELV USB-I2C-Interface> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (500mA) bLength = 0x0012 bDescriptorType = 0x0001 bcdUSB = 0x0110 bDeviceClass = 0x0000 <Probed by interface class> bDeviceSubClass = 0x0000 bDeviceProtocol = 0x0000 bMaxPacketSize0 = 0x0040 idVendor = 0x10c4 idProduct = 0xea60 bcdDevice = 0x0100 iManufacturer = 0x0001 <Silicon Labs> iProduct = 0x0002 <ELV USB-I2C-Interface> iSerialNumber = 0x0003 <XXXXXXXXXXXXXXXXXXXXX> bNumConfigurations = 0x0001 Configuration index 0 bLength = 0x0009 bDescriptorType = 0x0002 wTotalLength = 0x0020 bNumInterfaces = 0x0001 bConfigurationValue = 0x0001 iConfiguration = 0x0000 <no string> bmAttributes = 0x0080 bMaxPower = 0x00fa Interface 0 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0000 bAlternateSetting = 0x0000 bNumEndpoints = 0x0002 bInterfaceClass = 0x00ff <Vendor specific> bInterfaceSubClass = 0x0000 bInterfaceProtocol = 0x0000 iInterface = 0x0002 <ELV USB-I2C-Interface> Endpoint 0 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0081 <IN> bmAttributes = 0x0002 <BULK> wMaxPacketSize = 0x0040 bInterval = 0x0000 bRefresh = 0x0000 bSynchAddress = 0x0000 Endpoint 1 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0001 <OUT> bmAttributes = 0x0002 <BULK> wMaxPacketSize = 0x0040 bInterval = 0x0000 bRefresh = 0x0000 bSynchAddress = 0x0000 -- O. Hartmann