Hallo, ich verbinde ein STM32 per USB mit dem PC. WinUSB Treiber auf PC Seite und leicht abgewandelte vom Demoprojekt auf dem Mikrocontroller. Leider habe ich ein kleines Problem. Wie erkennt die Firmware, dass jemand das USB Kabel abgezogen hat? Bisher schaue ich nach dem SOF Frame, der jede Millisekunde kommen müsste. Wenn der für paar Sekunden ausbleibt, ist das Kabel halt ab und ich kann drauf reagieren. Leider hab ich nun hier ein USB Hub, der sich selbst scheinbar schlafen legt oder so und die SOF Frames nicht mehr weiter leitet. Welche Alternative hab ich nun? Was sieht die Norm normalerweise vor? Danke PS: Notlösung ist bisher, regelmäßig den PC was senden lassen.
Der Standardweg ist die Überwachung der VBus Leitung. Bei self powered zwingend erforderlich um korrekt auf Hot plug/unplug zu regieren.
Das Problem hierbei dürften schlampig designte* self-powered Hubs sein, wenn so etwas zwischen PC und Gerät hängt und die Verbindung zwischen PC und Hub gekappt wird, wird VBus am Gerät weiterhin vom Hub versorgt. *) also praktisch alle ...
Bietet die USB-Lib keine entsprechende Funktionalität, die das direkt abfängt?
Rufus schildert leider eines der Probleme. Ich glaube aber, dass ein Benutzer nicht den Hub abzieht sondern mein Gerät. Somit ist VBUS überwachen wohl die einzig richtige Lösung. Leider ist die Hardware bereits fest und vom Entwicklungskit abgenommen. Einzig eine Reset Steuerung hab ich. Im Nächsten Design wird dies berücksichtigt. Vielen Dank (;
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.