Ich möchte eine ganz bestimmte Frage zur USB-Energieverwaltung stellen.
Zunächst werde ich das Design meines Geräts skizzieren. Es ist ein symmetrischer Signalleitungstreiber mit einem eingebauten Audio-Codec für mein DIY-Lautsprechersystem. Das Gerät ist intern in zwei meist unabhängige Blöcke unterteilt: den Leitungstreiber mit steuernder MCU und den Audio-Codec (TMs PCM2706). Beide benötigen eine USB-Datenverbindung (über einen FT232R für den Treiberblock) und das gesamte Gerät sollte über einen Bus mit Strom versorgt werden. Die beiden Blöcke werden durch einen USB-Hub-Chip miteinander verbunden, wodurch eine einzige Uplink-USB-Verbindung zum PC entsteht. Ich erwarte einen Verbrauch der Treiberstufe zwischen 100 und 200 mA (definitiv mehr als eine Ladeeinheit).
Hier kommt das Problem: Gemäß der USB-Spezifikation kann ein Bus-Hub nur eine Einheit pro Downstream-Port bereitstellen, während maximal 5 Einheiten vom Upstream gezogen werden. Ich würde gerne wissen, was der Hub tun würde, wenn ich zwei Einheiten über den FT232 für die Treiberphase anfordern würde. Das 5-Einheiten-Upstream-Limit wird nicht erreicht (1 Einheit für den Hub, 1 Einheit für den Codec und zwei für den Treiber), sodass der Computer diesen Strom physisch liefern kann.
Für den Hub-Chip habe ich http://www.ti.com/lit/ds/symlink/tusb2036.pdf überprüft . Es gibt eine Option für den "ganged" Stromversorgungsmodus. Wäre dies eine Hilfe? Oder würde der Chip es einfach ablehnen, dem Fahrer zwei Einheiten zu gewähren? Und in diesem Fall gibt es eine schmutzige Problemumgehung?
Mir ist die Anforderung bekannt, dass Hochleistungsgeräte während der Aufzählung auch maximal 100 mA ziehen müssen. Dies ist kein Problem, da der FT232 den Treiber unmittelbar nach der Aufzählung einschalten kann. Der Hub schaltet die Bühnen auch unabhängig voneinander ein.
Hoffe ich habe mein Problem klar genug formuliert und danke für deine Zeit im Voraus :)
AKTUALISIEREN:
Ich habe mehr über den TUSB2036-Chip recherchiert. Der Überstromschutz kann über den / OCPROT-Pin ausgeschaltet werden. Der Hub meldet dann dem Root-Controller, dass er keinen Überstrom erkennen kann. Das Datenblatt enthält eine Warnung, dass die USB 2.0-Spezifikation einen OC-Schutz erfordert - dies ist für mich nicht wichtig, ich benötige nur 1.1 Full-Speed. Der Root-Hub des PCs sollte dann IMO 500 mAm für das gesamte Gerät liefern. Somit könnte ich den FT232 des Treibers so einstellen, dass er nur 100 mA benötigt, und der Hub würde nie wissen, ob ich den Grenzwert überschritten hätte (natürlich unter Berücksichtigung der 500 mA vom PC). Kann jemand sagen, ob das funktionieren könnte?
Ich habe ein Board um diesen Hub herum entworfen.
In meiner Anwendung wurde der Zugriff auf einen FT232 und einen FT245 ermöglicht.
Wenn sich alles auf Ihrer eigenen Platine befindet, würde ich empfehlen, dass Sie die gesamten Überstromschutzsysteme vollständig ignorieren. Wenn etwas auf Ihrer Leiterplatte ausfällt, muss das Ganze funktionieren. Daher ist es eine Art Streitpunkt, das Gerät in die Lage zu versetzen, einen Teilausfall zu behandeln.
In meiner Situation habe ich den TUSB festgeschnallt, um die vollen 500 mA anzufordern und den Überstromschutz zu deaktivieren, und einfach alles direkt vom USB 5.0v ausgeführt. Dies wurde erreicht, indem der Hub gezwungen wurde, sich beim Upstream-Host als eigenständig zu melden.
Ich habe ein paar Boards ohne wirkliche Probleme erstellt, daher scheint es eine perfekt praktikable Strategie zu sein. Es wurde auch mit mehreren verschiedenen Computern verwendet, daher würde ich mich ziemlich sicher fühlen, es so zu verwenden, wie es ist.
Wenn es sich um ein Produktionsgerät handelt, nicht um ein persönliches Projekt oder ein Testgeschirr (was in meinem Fall der Fall ist), ist das natürlich ein ganz anderes Problem.
(Siehe den Hinweis auf dem Schaltplan)
Für das, was es wert ist, können Sie die meisten modernen USB-Anschlüsse oft ohne allzu große Probleme schrecklich missbrauchen. Viele von ihnen können ohne allzu große Probleme viel mehr Strom liefern als die 500 mA, für die sie ausgelegt sind.
Außerdem liefern die meisten von ihnen (alle, die ich getestet habe, abgesehen von einigen Laptops ) gerne die vollen 500 mA, ohne dass ein Gerät überhaupt aufzählen muss.
Dies variiert jedoch von Motherboard zu Motherboard, je nachdem, wie der USB-Host ausgelegt ist. Ihr Kilometerstand kann variieren.
quelle
Könnte etwas schmutzig sein: Der TUSB2036 ermöglicht die Auswahl des Downstream-Ports (p3 NPINT1-0 auf 10 eingestellt). Schließen Sie dann Ihr Gerät an zwei (physische) Ports an, damit Sie zwei Einheiten parallel zeichnen können.
quelle