I am using a BeagleBone Black to interface between a weather station and radio 
modem. I am using two USB to serial converters and am experiencing USB system 
crashes which I have not yet been able to solve. I am thinking there may be 
some type of a conflict with the drivers when using both adapters. Details 
below...

--Hardware--
I am using an FTDI CHIPI-X10 USB to RS232 Serial converter to connect with the 
radio modem and an FTDI USB-RS232-WE-1800-BT_0.0 Wire Ended USB to RS232 Serial 
converter to connect to the weather station. Both converters plug into a Tripp 
Lite U225-004-R 4-port USB hub, which is then connected to the BeagleBone Black 
USB connection.

Both the weather station and radio/modem are externally powered so the only USB 
power consumption is that of each of the converters and the 4-port hub. The hub 
was originally powered directly from the BeagleBone Black but I am now powering 
it externally.

I believe the BBB is a Revision B board but I will have to double check that. 
The board is powered from a 12 volt step down converter which I adjusted to 5 
volt output. With the system powered I measure 4.98 volt to 5.00 volt with a 
multi-meter.

--Software--
I am running Debian 8 (Jessie) on the internal eMMC storage. The image was the 
newest when I downloaded it around May. The OS is up to date as of Monday using 
apt-get upgrade. The kernel has been upgraded from 4.4.54-ti-r53 to 
4.9.44-ti-r55. I have disabled the software that directly talks to the radio 
modem, and am using a combination of a python script I wrote and minicom to 
read data from the weather station.

--Issue and Troubleshooting--
With both converters connected, when reading the 1Hz rate data sent from the 
weather station, the USB system will crash within 2 seconds to 2.5 hours with a 
ftdi_sio error shown in dmesg. The error most often is: "ftdi_sio ttyUSB0: 
usb_serial_generic_read_bulk_callback - urb stopped: -32". After upgrading the 
kernel the error was different, similar to "failed to get modem status: -71". 
As I have switched around the order the converters are plugged into the hub the 
ttyUSBx port the crash occurs on changes, but I believe it is always the one 
connected to the weather station as that is the one always being accessed for 
testing.

In my online research I have found many mention of the 
"usb_serial_generic_read_bulk_callback" fault in Raspberry Pi related 
discussions and the most often suggested and working fix is to add the 
parameter "dwc_otg.speed=1" to /boot/cmdline.txt which forces USB to revert 
back to USB1.1. Although I have no need for USB2.0 speeds, it appears this is 
not able to be done with the BBB, in addition to /boot/cmdline.txt not existing.

There is also many instances of current draw being too great causing the issue, 
hence my latest step of externally powering the USB hub. After doing this I am 
no longer seeing the "-71" fault and only seeing the original "ftdi_sio 
ttyUSB0: usb_serial_generic_read_bulk_callback - urb stopped: -32" one.

When I was first building and testing the system on my bench I had what turns 
out to be the same issue, although I did not pursue it. At the time I was using 
a Prolific chip based USB to Serial adapter for the radio modem which I 
suspected was the culprit. Once I replaced it with the CHIPi-X10 I had no 
further trouble until installing the entire system this weekend.

In my troubleshooting I completely disconnected the CHIPI-X10, connected to the 
radio modem, and accessed the converter connected to the weather station. In 
this test I was able to read the data for nearly 24 hours without issue until I 
stopped it for more troubleshooting. I have not conducted a similar test with 
the adapters reversed, although I saw no signs during my earlier bench testing.

System information below. The dmesg output was from after the crash occurred 
and I filtered it to show only USB related lines.

========
uname -a
========
Linux norman 4.9.44-ti-r55 #1 SMP PREEMPT Fri Aug 18 00:16:25 UTC 2017 armv7l 
GNU/Linux

========
lsusb
========
Bus 001 Device 004: ID 0403:6015 Future Technology Devices International, Ltd 
Bridge(I2C/SPI/UART/FIFO)
Bus 001 Device 003: ID 0403:6001 Future Technology Devices International, Ltd 
FT232 USB-Serial (UART) IC
Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

========
lsusb -v
========
Bus 001 Device 004: ID 0403:6015 Future Technology Devices International, Ltd 
Bridge(I2C/SPI/UART/FIFO)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x0403 Future Technology Devices International, Ltd
  idProduct          0x6015 Bridge(I2C/SPI/UART/FIFO)
  bcdDevice           10.00
  iManufacturer           1 FTDI
  iProduct                2 Chipi-X
  iSerial                 3 FTV8G1V7
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower               90mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              2 Chipi-X
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 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     0x0040  1x 64 bytes
        bInterval               0
Device Status:     0x0000
  (Bus Powered)

Bus 001 Device 003: ID 0403:6001 Future Technology Devices International, Ltd 
FT232 USB-Serial (UART) IC
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x0403 Future Technology Devices International, Ltd
  idProduct          0x6001 FT232 USB-Serial (UART) IC
  bcdDevice            6.00
  iManufacturer           1 FTDI
  iProduct                2 USB-RS232 Cable
  iSerial                 3 FT0AMSW7
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              300mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              2 USB-RS232 Cable
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 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     0x0040  1x 64 bytes
        bInterval               0
Device Status:     0x0000
  (Bus Powered)

Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         1 Single TT
  bMaxPacketSize0        64
  idVendor           0x1a40 Terminus Technology Inc.
  idProduct          0x0101 4-Port HUB
  bcdDevice            1.11
  iManufacturer           0
  iProduct                1 USB 2.0 Hub
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval              12
Hub Descriptor:
  bLength               9
  bDescriptorType      41
  nNbrPorts             4
  wHubCharacteristic 0x0000
    Ganged power switching
    Ganged overcurrent protection
    TT think time 8 FS bits
  bPwrOn2PwrGood       50 * 2 milli seconds
  bHubContrCurrent    100 milli Ampere
  DeviceRemovable    0x00
  PortPwrCtrlMask    0xff
 Hub Port Status:
   Port 1: 0000.0100 power
   Port 2: 0000.0103 power enable connect
   Port 3: 0000.0103 power enable connect
   Port 4: 0000.0100 power
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed (or root) hub
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0001
  Self Powered

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         1 Single TT
  bMaxPacketSize0        64
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0002 2.0 root hub
  bcdDevice            4.09
  iManufacturer           3 Linux 4.9.44-ti-r55 musb-hcd
  iProduct                2 MUSB HDRC host driver
  iSerial                 1 musb-hdrc.1
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval              12
Hub Descriptor:
  bLength               9
  bDescriptorType      41
  nNbrPorts             1
  wHubCharacteristic 0x0011
    Per-port power switching
    No overcurrent protection
    TT think time 8 FS bits
  bPwrOn2PwrGood        5 * 2 milli seconds
  bHubContrCurrent      0 milli Ampere
  DeviceRemovable    0x02
  PortPwrCtrlMask    0xff
 Hub Port Status:
   Port 1: 0000.0507 highspeed power suspend enable connect
Device Status:     0x0001
  Self Powered

========
dmesg (Only USB related items)
========
[   24.112116] usbcore: registered new interface driver usbserial
[   24.112211] usbcore: registered new interface driver usbserial_generic
[   24.112320] usbserial: USB Serial support registered for generic
[   24.164740] usbcore: registered new interface driver ftdi_sio
[   24.164857] usbserial: USB Serial support registered for FTDI USB Serial 
Device
[   24.165130] ftdi_sio 1-1.2:1.0: FTDI USB Serial Device converter detected
[   24.165370] usb 1-1.2: Detected FT232RL
[   24.196446] usb 1-1.2: FTDI USB Serial Device converter now attached to 
ttyUSB0
[   24.203043] ftdi_sio 1-1.3:1.0: FTDI USB Serial Device converter detected
[   24.203360] usb 1-1.3: Detected FT-X
[   24.215399] usb 1-1.3: FTDI USB Serial Device converter now attached to 
ttyUSB1
...
[  316.858089] ftdi_sio ttyUSB0: usb_serial_generic_read_bulk_callback - urb 
stopped: -32

A possible next step would be to unplug the adapter to the weather station and 
access only the radio modem to eliminate a possible issue with the CHIPI-X10 
itself. To date I have only seen the issue arise when both adapters are 
connected to the BBB.

Thank you in advance for any help, and please reply with any requests for 
additional information or troubleshooting steps.

Reply via email to