AVR - USB Device Anfrage auf Stromerhöhung

Gast #1011435
Moin Leute,
nach längerem Suchen hier im Forum hab ich leider keine konkrete Antwort 
auf meine Frage gefunden, deswegen poste ich jetz selber mal eine =).

Es geht um folgendes:
Ich hab einen ATMEL USB-Controller (AT90USB1287) in meinem Gerät im 
Einsatz. Da die Applikation durch einen Akku versorgt wird, möchte ich 
den natürlich so effizient wie möglich aufladen. Der Ladevorgang findet 
während dem USB-Betrieb des Geräts statt. Laut USB-Spec darf ich ja 
während des Enumerationsprozesses nur 100mA ziehen und später evtl. auf 
500mA erhöhen. Und genau dieses "evtl." stellt meine Problematik dar. An 
normalen USB-Ports des Rechners sollte das ja kein Problem sein, aber an 
Bus-powered Hubs darf ich die 500mA ja nicht ziehen.
Meine Frage bezieht sich jetz auf die Vorgehensweise der "Stromanfrage" 
an den Host. Bzw. möchte ich eigentlich nur wissen ob das, was ich mir 
ausgedacht habe auch funktioniert bevor ich mir antu in der ATMEL 
Firmware rumzuprogrammieren.

Meine Idee:
Funktioniert es, dass ich anstatt einen Konfigurationsdeskriptor für 
mein Device zwei schicke, die bis auf bMaxPower gleich sind und halt 
einmal die 100mA und einmal die 500mA beinhalten? Also würde der Host 
mir dann im SET_CONFIGURATION Befehl die Konfiguration schicken mit dem 
maximal erlaubten Strom? (Also an Ports 500mA und an Bus-Powered Hubs 
100mA)

Schonmal vielen Dank für die Hilfe!
Greez,
Ryi
Moderator Persönliche Seite
Probieren geht über studieren, würde ich mal sagen.

Ich sehe es zumindest so, dass es genau für solche Dinge die
Möglichkeit gibt, mehrere Konfigurationen zu hinterlegen.  Ich würde
allerdings die Konfiguration mit der 500-mA-Anforderung als erste
hinlegen und die 100-mA-Alternative als zweite.  Ich gehe einfach
davon aus, dass die Hostsoftware wohl die möglichen Konfigurationen
von 1 beginnend ausprobiert, bis sie eine findet, die akzeptabel
ist.

Wäre mal interessant, wenn du zu dem Thema was rausgefunden hast.
Ich habe mich auch eben ein wenig mit AT90USB1287s rumschlagen
müssen.
------------------------------------------------------------------------ 
---Probieren  geht über studieren, würde ich mal sagen.

Ich sehe es zumindest so, dass es genau für solche Dinge die
Möglichkeit gibt, mehrere Konfigurationen zu hinterlegen.  Ich würde
allerdings die Konfiguration mit der 500-mA-Anforderung als erste
hinlegen und die 100-mA-Alternative als zweite.  Ich gehe einfach
davon aus, dass die Hostsoftware wohl die möglichen Konfigurationen
von 1 beginnend ausprobiert, bis sie eine findet, die akzeptabel
ist.

Wäre mal interessant, wenn du zu dem Thema was rausgefunden hast.
Ich habe mich auch eben ein wenig mit AT90USB1287s rumschlagen
müssen.
------------------------------------------------------------------------ 
---
Ich musste mich auch mal damit beschäftigen. Ich habe noch in Erinnerung 
dass zuerst die Anzahl der Konfigurationen abgefragt wird und dann die 
einzelnen Konfigs an sich zum Host geschickt werden. Von denen sucht er 
sich dann die 0er Konfig aus oder der Treiber gibt eine andere Konfig 
vor. Genaues kann ich Euch aber Sonntag schreiben wenn ihr das 
braucht...

cu,
olly...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.