Ich versuche, einen USB 3.0-Stick über ein OTG-Kabel mit meinem Board zu verbinden. Aber er ist immer im High-Speed-Modus und nicht im SuperSpeed-Modus verbunden. Als Betriebssystem verwende ich Android Marshmallow.
Unten sind meine Protokolle, wenn ich den USB-Stick mit einem OTG-Kabel an USB 3.0 angeschlossen habe.
[ 1180.791471] init: Starting service 'wfdservice'...
[ 1180.817831] init: Service 'wfdservice' (pid 2617) exited with status 1
[ 1180.823813] init: Service 'wfdservice' (pid 2617) killing any children in process group
[ 1184.996960] android_work: android_work: sent uevent USB_STATE=SUSPENDED
[ 1185.060843] healthd: battery l=50 v=0 t=20.0 h=3 st=3 c=0 chg= 1970-01-01 00:19:54.036257626 UTC
[ 1185.076653] healthd: battery l=50 v=0 t=20.0 h=3 st=3 c=0 chg= 1970-01-01 00:19:54.052092939 UTC
[ 1185.164381] dwc3 6a00000.dwc3: request ffffffc033964b00 was not queued to ep0out
[ 1185.164898] msm-dwc3 6a00000.ssusb: DWC3 in low power mode
[ 1185.170838] android_work: android_work: sent uevent USB_STATE=DISCONNECTED
[ 1185.174512] read descriptors
[ 1185.174607] read strings
[ 1185.204638] init: Starting service 'wfdservice'...
[ 1185.224892] init: Service 'wfdservice' (pid 2622) exited with status 1
[ 1185.230521] init: Service 'wfdservice' (pid 2622) killing any children in process group
[ 1186.179483] init: Untracked pid 2610 exited with status 0
[ 1190.193860] init: Starting service 'wfdservice'...
[ 1190.221855] init: Service 'wfdservice' (pid 2623) exited with status 1
[ 1190.227396] init: Service 'wfdservice' (pid 2623) killing any children in process group
[ 1191.243877] msm-dwc3 6a00000.ssusb: DWC3 exited from low power mode
[ 1191.247675] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[ 1191.256338] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 3
[ 1191.256745] xhci-hcd xhci-hcd.1.auto: irq 804, io mem 0x06a00000
[ 1191.257437] healthd: battery l=50 v=0 t=20.0 h=3 st=3 c=0 chg= 1970-01-01 00:20:00.232274447 UTC
[ 1191.268358] usb usb3: New USB device found, idVendor=1d6b, idProduct=0002
[ 1191.268401] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1191.268426] usb usb3: Product: xHCI Host Controller
[ 1191.268459] usb usb3: Manufacturer: Linux 3.18.20-g9c6c034-dirty xhci-hcd
[ 1191.268483] usb usb3: SerialNumber: xhci-hcd.1.auto
[ 1191.273544] healthd: battery l=50 v=0 t=20.0 h=3 st=3 c=0 chg= 1970-01-01 00:20:00.249013562 UTC
[ 1191.282095] hub 3-0:1.0: USB hub found
[ 1191.282262] hub 3-0:1.0: 1 port detected
[ 1191.284426] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[ 1191.285214] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 4
[ 1191.286168] usb usb4: New USB device found, idVendor=1d6b, idProduct=0003
[ 1191.286179] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1191.286187] usb usb4: Product: xHCI Host Controller
[ 1191.286194] usb usb4: Manufacturer: Linux 3.18.20-g9c6c034-dirty xhci-hcd
[ 1191.286200] healthd: battery l=50 v=0 t=20.0 h=3 st=3 c=0 chg= 1970-01-01 00:20:00.261711635 UTC
[ 1191.288879] healthd: battery l=50 v=0 t=20.0 h=3 st=3 c=0 chg= 1970-01-01 00:20:00.264407364 UTC
[ 1191.302832] usb usb4: SerialNumber: xhci-hcd.1.auto
[ 1191.306483] hub 4-0:1.0: USB hub found
[ 1191.306575] hub 4-0:1.0: 1 port detected
[ 1191.864273] usb 3-1: new high-speed USB device number 2 using xhci-hcd
[ 1192.015270] usb 3-1: New USB device found, idVendor=0781, idProduct=5590
[ 1192.015332] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1192.015370] usb 3-1: Product: Ultra
[ 1192.015400] usb 3-1: Manufacturer: SanDisk
[ 1192.015430] usb 3-1: SerialNumber: 4C531001571111109275
[ 1192.027256] usb-storage 3-1:1.0: USB Mass Storage device detected
[ 1192.033546] scsi host1: usb-storage 3-1:1.0
[ 1193.047251] scsi 1:0:0:0: Direct-Access SanDisk Ultra 1.00 PQ: 0 ANSI: 6
[ 1193.147859] sdg: sdg1
[ 1194.613417] usb 3-1: USB disconnect, device number 2
[ 1195.244878] init: Starting service 'wfdservice'...
[ 1195.275236] init: Service 'wfdservice' (pid 2628) exited with status 1
[ 1195.281284] init: Service 'wfdservice' (pid 2628) killing any children in process group
[ 1195.644491] xhci-hcd xhci-hcd.1.auto: remove, state 4
[ 1195.644627] usb usb4: USB disconnect, device number 1
[ 1195.663814] xhci-hcd xhci-hcd.1.auto: USB bus 4 deregistered
[ 1195.667451] xhci-hcd xhci-hcd.1.auto: remove, state 4
[ 1195.667632] usb usb3: USB disconnect, device number 1
[ 1195.679791] healthd: battery l=50 v=0 t=20.0 h=3 st=3 c=0 chg= 1970-01-01 00:20:04.655197622 UTC
Ich möchte meinen USB-Stick im SuperSpeed-Modus verwenden. Mein USB 3.0-Treiber ist dwc3. Sind dafür Änderungen am Treiber oder an der DTS-Datei erforderlich?
Antwort1
Wie Sie sagen, verfügt Ihr „Board“ über einen USB 3.0 Micro-B-Anschluss. Daher ist das Board kein offiziell anerkanntes „OTG“-Gerät (auch bekannt als „Dual-Data-Role“-Anschluss), da der Board-Anschluss im OTG-Fall vom Typ Micro-A/B sein muss. Daher ist die Verwendung Ihres „Boards“ als USB-Host nicht vom Benutzer vorgesehen. Es kann mindestens drei Gründe geben, warum Ihr Sandisk-Flash nicht mit USB 3.0 SuperSpeed verbunden werden kann:
Der USB-Stick ist im SS-Modus grenzwertig/fehlerhaft;
Für den normalen OTG-Modus muss der Steckverbinder vom Typ uA (quadratisches Gehäuse) sein. Um den Port in den Host-Modus zu schalten, müssen Sie daher das „OTG-Kabel“ mit uB-Ende verwenden, was nach dem USB-Standard formal illegal ist und daher nicht für die USB-IF-Zertifizierung in Frage kommt. Nicht zertifizierte USB-Kabel können sehr schlampig hergestellt sein und eine sehr schlechte Signalintegrität aufweisen. Sie funktionieren möglicherweise nicht mit grenzwertigen Geräten und fallen in den USB 2.0-Modus zurück.
Die Tatsache, dass die „Platine“ im Host-Modus funktioniert, bedeutet nicht, dass sie alle USB-Modi unterstützen muss/wird. Die häufigste Verwendung des USB 3.0-Anschlusses an tragbaren Geräten im OTG-Modus erfolgt zu Debug-Zwecken (ADB-Modus im UART-Stil), und die „Platine“ kann auf Firmware-Ebene nur teilweise konfiguriert werden und unterstützt nur die Datenrate von USB 2.0.
Ihr Protokoll scheint darauf hinzuweisen, dass das Sandisk-Laufwerk angeschlossen war und dann aus irgendeinem Grund nach 1,5 Sekunden die Verbindung trennt.