Hello, sending again in plain text mode..
On Tue, Apr 2, 2019 at 11:37 AM Antonio Santagiuliana <santantonios...@gmail.com> wrote: > > Hello, > thank you for the reply. > We transmit at 46800 bps from 16 devices to the UART side of the UART to USB > bridges ( at the moment cp2105 UART to USB bridges ) . > If we transmit from all of these devices at low throughput small packets of > some bytes ( 16 to 64 bytes ) let's say every 20 ms , at the receiver side > on the USB host device ( Raspberry PI ) we can follow all of the messages > from all of the 16 UART to USB bridges without any problem. > We can then activate a particular mode by which 1 of the devices connected to > one of the UART to USB bridges starts sending data still at the same > baudrate, but at much higher throughput, sending packets of 1460 bytes with > silence interval between packets of around 20 ms. > When this happens the normal messages from the other 15 devices appear to be > retrieved correctly while these longer messages from the high throughput mode > device sometimes miss some bytes , let's say I receive fewer bytes than > expected. > It doesn't appear the problem is the latency of the application layer as I > verified it wakes up with short delay. > if I connect only 1 or 2 devices rather than all of 16 and I activate this > high throughput mode on one device , then the system works perfectly. Problem > happens when all of the 16 devices are connected and high throughput mode on > one device is enabled. > So I was wondering if we got into a limitation of USB system due to polling > rate from the host linked to the fact that the buffers USB 2.0 specified > inside these UART-USB bridges are very limited in size ( I think 64 bytes and > 32 bytes on the two USB ports of the UART to USB dual bridge ) and the are > also translation buffers on the USB hub that could delay further the whole > thing. > I was wondering also if I could raise priority of USB polling that > particular device more frequently from the host rather than lopping to the > others and I was checking if it could be useful to log events so to see if I > can get some clues of what is going on. > any idea would be welcome. > thank you > > > > On Tue, Apr 2, 2019 at 8:56 AM Minas Harutyunyan > <minas.harutyun...@synopsys.com> wrote: >> >> Hi, >> >> On 4/1/2019 9:01 PM, Felipe Balbi wrote: >> > >> > Hi, >> > >> > (I can't answer private queries. Please, always Cc the public mailing >> > list) >> > >> > Antonio Santagiuliana <santantonios...@gmail.com> writes: >> > >> >> Hello >> >> I am using RaspberryPI for a project and we want to connect 16 USB to UART >> >> bridges ( at the moment we are using 8 dual UART cp2105 from Silicon Labs >> >> ). >> >> I have seen your page at : >> >> https://urldefense.proofpoint.com/v2/url?u=https-3A__dri.freedesktop.org_docs_drm_driver-2Dapi_usb_dwc3.html&d=DwIBAg&c=DPL6_X_6JkXFx7AXWqB0tg&r=cQBKt4q-qzNVC53rNAwuwplH23V61rHQhhULvdLA0U8&m=RfK-uhEeZZ8yf79ch5you3BpE1JNPDHRzgmOGkeLBss&s=rGrgFKpJ6-CEmAtR-hiae64T80Z7oCTx3r4xHn-lf4I&e= >> >> so I was trying to get tracefs output. >> >> Problem is that on the /t/events subfolder I cannot find the >> >> dwc3/enable because >> >> there is not any /dwc3 in /t/events. >> >> Because of this I cannot set echo 1 > /t/events/dwc3/enable >> >> as instead your page says I should do. >> >> I can only find */t/events/enable* should I activate that ? >> >> running usb-devices command I get this about the drivers loaded : >> >> >> >> T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 1 >> >> D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1 >> >> P: Vendor=1d6b ProdID=0002 Rev=04.14 >> >> S: Manufacturer=Linux 4.14.39 dwc_otg_hcd >> > >> > You're not using dwc3. That's dwc2, instead. Also, dwc3 tracepoints are >> > peripheral side only. Host side is a standard xhci, so you would use >> > xhci tracepoints for that. >> > >> > Still, you're using dwc2 from what I can tell. Minas is the maintainer >> > of that driver. >> > >> > >> It's not dwc2 driver. It's dwc_otg Synopsys reference driver which >> supplying along with HSOTG core. >> >> But what the issue? >> > >> > >> > >> > >> >> S: Product=DWC OTG Controller >> >> S: SerialNumber=3f980000.usb >> >> C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA >> >> I: If#=0x0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub >> >> >> >> T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 5 >> >> D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=02 MxPS=64 #Cfgs= 1 >> >> P: Vendor=0424 ProdID=9514 Rev=02.00 >> >> C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=2mA >> >> I: If#=0x0 Alt= 1 #EPs= 1 Cls=09(hub ) Sub=00 Prot=02 Driver=hub >> >> >> >> T: Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#= 3 Spd=480 MxCh= 0 >> >> D: Ver= 2.00 Cls=ff(vend.) Sub=00 Prot=01 MxPS=64 #Cfgs= 1 >> >> P: Vendor=0424 ProdID=ec00 Rev=02.00 >> >> C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=2mA >> >> I: If#=0x0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=ff Driver=smsc95xx >> >> >> >> T: Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#= 14 Spd=480 MxCh= 4 >> >> D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1 >> >> P: Vendor=0409 ProdID=005a Rev=01.00 >> >> C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=100mA >> >> I: If#=0x0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub >> >> >> >> T: Bus=01 Lev=03 Prnt=14 Port=00 Cnt=01 Dev#= 15 Spd=12 MxCh= 0 >> >> D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 >> >> P: Vendor=10c4 ProdID=ea70 Rev=01.00 >> >> S: Manufacturer=Silicon Labs >> >> S: Product=CP2105 Dual USB to UART Bridge Controller >> >> S: SerialNumber=008714B9 >> >> C: #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=100mA >> >> I: If#=0x0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=vcpsilabs >> >> I: If#=0x1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=vcpsilabs >> >> >> >> T: Bus=01 Lev=03 Prnt=14 Port=01 Cnt=02 Dev#= 16 Spd=12 MxCh= 0 >> >> D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 >> >> P: Vendor=10c4 ProdID=ea70 Rev=01.00 >> >> S: Manufacturer=Silicon Labs >> >> S: Product=CP2105 Dual USB to UART Bridge Controller >> >> S: SerialNumber=0086F956 >> >> C: #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=100mA >> >> I: If#=0x0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=vcpsilabs >> >> I: If#=0x1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=vcpsilabs >> >> >> >> T: Bus=01 Lev=03 Prnt=14 Port=02 Cnt=03 Dev#= 17 Spd=12 MxCh= 0 >> >> D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 >> >> P: Vendor=10c4 ProdID=ea70 Rev=01.00 >> >> S: Manufacturer=Silicon Labs >> >> S: Product=CP2105 Dual USB to UART Bridge Controller >> >> S: SerialNumber=00870FBD >> >> C: #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=100mA >> >> I: If#=0x0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=vcpsilabs >> >> I: If#=0x1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=vcpsilabs >> >> >> >> T: Bus=01 Lev=03 Prnt=14 Port=03 Cnt=04 Dev#= 18 Spd=480 MxCh= 4 >> >> D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1 >> >> P: Vendor=0409 ProdID=005a Rev=01.00 >> >> C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=100mA >> >> I: If#=0x0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub >> >> >> >> T: Bus=01 Lev=04 Prnt=18 Port=00 Cnt=01 Dev#= 19 Spd=12 MxCh= 0 >> >> D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 >> >> P: Vendor=10c4 ProdID=ea70 Rev=01.00 >> >> S: Manufacturer=Silicon Labs >> >> S: Product=CP2105 Dual USB to UART Bridge Controller >> >> S: SerialNumber=00870E54 >> >> C: #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=100mA >> >> I: If#=0x0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=vcpsilabs >> >> I: If#=0x1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=vcpsilabs >> >> >> >> T: Bus=01 Lev=04 Prnt=18 Port=01 Cnt=02 Dev#= 20 Spd=12 MxCh= 0 >> >> D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 >> >> P: Vendor=10c4 ProdID=ea70 Rev=01.00 >> >> S: Manufacturer=Silicon Labs >> >> S: Product=CP2105 Dual USB to UART Bridge Controller >> >> S: SerialNumber=00870B3F >> >> C: #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=100mA >> >> I: If#=0x0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=vcpsilabs >> >> I: If#=0x1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=vcpsilabs >> >> >> >> T: Bus=01 Lev=04 Prnt=18 Port=02 Cnt=03 Dev#= 21 Spd=12 MxCh= 0 >> >> D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 >> >> P: Vendor=10c4 ProdID=ea70 Rev=01.00 >> >> S: Manufacturer=Silicon Labs >> >> S: Product=CP2105 Dual USB to UART Bridge Controller >> >> S: SerialNumber=0086F938 >> >> C: #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=100mA >> >> I: If#=0x0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=vcpsilabs >> >> I: If#=0x1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=vcpsilabs >> >> >> >> T: Bus=01 Lev=04 Prnt=18 Port=03 Cnt=04 Dev#= 22 Spd=12 MxCh= 0 >> >> D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 >> >> P: Vendor=10c4 ProdID=ea70 Rev=01.00 >> >> S: Manufacturer=Silicon Labs >> >> S: Product=CP2105 Dual USB to UART Bridge Controller >> >> S: SerialNumber=00870981 >> >> C: #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=100mA >> >> I: If#=0x0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=vcpsilabs >> >> I: If#=0x1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=vcpsilabs >> >> >> >> T: Bus=01 Lev=02 Prnt=02 Port=03 Cnt=03 Dev#= 23 Spd=12 MxCh= 0 >> >> D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 >> >> P: Vendor=10c4 ProdID=ea70 Rev=01.00 >> >> S: Manufacturer=Silicon Labs >> >> S: Product=CP2105 Dual USB to UART Bridge Controller >> >> S: SerialNumber=0086E7E6 >> >> C: #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=100mA >> >> I: If#=0x0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=vcpsilabs >> >> I: If#=0x1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=vcpsilabs >> >> >> >> >> >> >> >> >> >> thank you very much for your page , very interesting. >> >> >> >> >> >> Kind Regards >> >> Antonio Santagiuliana >> > >> >> Thanks, >> Minas