Hallo. Ich verwende das USB Modul vom xmega und frage mich jetzt, wie ich erkennen kann, ob das USB-Kabel an einem Host (also kein Ladegerät) eingesteckt ist. Ich möchte nämlich nur dann die USB-Routinen aktivieren, da die ziemlich stromschluckend sind. Der xmega darf während dessen nämlich offenbar nicht in den power-save sleep gehen, sondern maximal in den idle. Bei einem batteriebetriebenem Gerät geht das aber nicht dauerhaft. Leider habe ich keinen Messpunkt für VBus. Kann ich irgendwie an D+ und D- erkennen, ob ein Host angeschlossen ist?
Vlt. so: Du wertest die 5V vom Host aus und wartest z.B. 10sec, ob sich ein connected-Status einstellt. Falls nicht deaktivierst Du Deine USB-Routinen und wartest bis zur nächsten Flanke 5V erkannt. Ja, etwas hintenrum, aber das sind die typischen Infos, die man vom Treiber ohne großen Aufwand bekommt. Ah, sehe gerade, Du hast keinen Messpunkt für die 5V - zu spät gelesen. Aber dann baue Dir doch einen, muss ja nicht analog sein.
:
Bearbeitet durch User
Der Host zieht üblicherweise beide Datenleitungen über 15k nach GND. Wenn bei deinem Chip D+ und D- als Portpins verwendbar sind könnte man das auswerten. Ist der Connect Widerstand bei dir per Software zuschaltbar?
Thomas Z. schrieb: > Der Host zieht üblicherweise beide Datenleitungen über 15k nach GND. > Wenn bei deinem Chip D+ und D- als Portpins verwendbar sind könnte man > das auswerten. > Ist der Connect Widerstand bei dir per Software zuschaltbar? Ja. Und noch interne PUs und PDs mit jeweils 25k. Man könnte evtl. schauen, ob ein PU von den Host 15k unter die digitale Schaltschwelle gezogen wird. Schön ist das nicht, aber könnte funktionieren.
Hans schrieb: > Und noch interne PUs und PDs mit jeweils 25k Die werden wohl schaltbar sein oder? Solange der Host keinen Connect Widerstand an D+ sieht lässt er die Datenleitungen in Ruhe. Aufpassen musst du etwas mit Ladegeräte, viele haben irgendwelche Widerstände an den Datenleitungen verschaltet wegen der Lade Modi. Edit: bei Ladegeräten spielt es wohl keine Rolle ob deine Usb Funktion aktiviert wird, Stron hast du zu diesem Zeitpunkt wohl ausreichend
:
Bearbeitet durch User
Hans schrieb: > Ich verwende das USB Modul vom xmega und frage mich jetzt, wie ich > erkennen kann, ob das USB-Kabel an einem Host (also kein Ladegerät) > eingesteckt ist. Dann richte dich danach, ob sich dein xmega im enumerierten Zustand befindet oder nicht. W.S.
W.S. schrieb: > Dann richte dich danach, ob sich dein xmega im enumerierten Zustand > befindet oder nicht. Wenn er die USB Schnittstelle zum Strom-Sparen abgeschaltet hat, wird keine Enumerierung stattfinden. So kann er nicht erkennen, ob das USB Kabel eingesteckt wurde.
Stefan ⛄ F. schrieb: > Wenn er die USB Schnittstelle zum Strom-Sparen abgeschaltet hat, wird > keine Enumerierung stattfinden. So kann er nicht erkennen, ob das USB > Kabel eingesteckt wurde. Dann zieht dad Gerät aber seinen Strom vom USB und entleert nicht die Batterie. Das ist dann vergleichbar mit dem Anstecken an ein Ladegerät. W.S.
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.