Hallo,
Ich habe folgende Situation:
Ich habe ein kleines PC-Mainboard(samt Display, etc.), dass mit Batterie
betrieben wird (mobiles Gerät). An die USB Ports sind verschiedene
Endgeräte angehängt. Von den 5 USB Ports wird nur bei einem die
Spannungsversorgung abgeschaltet wenn der PC heruntergefahren wird. Die
anderen 4 Ports sind IMMER mit Spannung versorgt. Dies lässt sich auch
nicht über Jumper oder das BIOS ändern.
Nun habe ich folgendes Problem:
Die angehängten Geräte verbrauchen nun Strom (und zwar nicht gerade
wenig) obwohl der PC aus ist, was dazu führt, dass die Batterie
innerhalb 1 1/2 Tage von voll auf leer ist obwohl das Gerät
ausgeschalten ist.
Ich würde nun gern die Spannungsversorgung des abschaltenden USB Ports
dazu nutzen, die Stromleitungen der anderen USB Ports zu unterbrechen.
Ich habe schon nach Lösungen gesucht (auch hier) aber die meisten
Beiträge waren entweder sehr speziell auf ein anderes Problem
zugeschnitten oder hatten 10 Lösungenvorschläge, aber keine Antwort
welche benutzt wurde oder funktioniert hat. Bei den meisten Lösungen
waren auch FETs angegeben, die man zumindest nicht bei den üblichen
Verdächtigen (Conrad, Reichelt) bekommt.
Daher mache ich hier mal einen eigenen Thread auf und hoffe dass mir
jemand helfen kann. Es wäre schön wenn die Schaltung mit möglichst
wenigen Teilen auskommt und diese bei Conrad oder Reichelt bestellbar
wären.
Von dem was ich bei anderen Posts gelesen habe, wäre es wohl sinnvoll
die +5V Leitung mit einem FET zu unterbrechen. Ich hätte aber auch
nichts gegen einen günstigen Treiberbaustein, wenn es einen passenden
dafür gibt. Wichtig wäre mir, dass alle Ports die geschaltet werden,
trotzdem die vollen 500mA der USB-Spezifikation liefern können.
Viele Grüße,
Markus
Markus HatKeinenNachnamen schrieb:> Die angehängten Geräte verbrauchen nun Strom (und zwar nicht gerade> wenig)
Was sind das denn für Geräte? Beleuchtung und co? Wenn die sich an den
USB-Standard halten würden, müssten sie sich mit 2.5 mA begnügen.
Ansonsten könnte eine Lösung tatsächlich sein, in die Versorgungsleitung
jedes Geräts einen kleinen FET (halt irgendwas, das 500 mA schalten
kann, MOSFET-Übersicht). Die wiederum über die Versorgungsspannung
des schaltbaren Ports ansteuern. Logic Level N-Kanal oder falls die
Geräte noch irgendwie sonst untereinander verbunden sind und GND nicht
getrennt werden soll einen P-Kanal in die +5V-Leitung.
Ob das so sinnvoll ist, da außerhalb des Hosts allerhand
Querverbindungen zu bauen, weiß ich nicht. Evtl. stattdessen mit
Opto-MOSFETS arbeiten.
Alternativ: kann das System auf dem Host nicht vor dem Standby den
USB-Controller deinitialisieren und den Bus am BIOS vorbei ausschalten?
Sieh Dir mal die Power-Management-Funktionen des Betriebssystems an.
Hallo,
Danke schonmal für die Hinweise.
An den USB-Ports hängt eine Webcam, ein WLAN Stick und der
Touchcontroller für das Display. Diese sind immer verbunden. Der vierte
Port ist an eine USB-Buchse gelötet um beliebige Sachen anschliessen zu
können.
Bist du sicher dass der USB Standard im abgeschalteten Zustand nur 2,5
mA erlaubt. Alle Handys mit USB-Anschluss die ich kenne laden auch an
abgeschaltenen PCs und das sicherlich nicht mit 2,5 mA. Es kann
natürlich sein, dass die alle den Standard ignorieren.
Hast du eine Information oder einen Link dazu, wie man den
USB-Controller deinitialisieren kann und den Bus(bzw die
Stromversorgung) softwaremäßig lahm legt? Ich habe dazu nichts gefunden.
Viele Grüße,
Markus
Markus HatKeinenNachnamen schrieb:> Bist du sicher dass der USB Standard im abgeschalteten Zustand nur 2,5> mA erlaubt. Alle Handys mit USB-Anschluss die ich kenne laden auch an> abgeschaltenen PCs und das sicherlich nicht mit 2,5 mA. Es kann> natürlich sein, dass die alle den Standard ignorieren.
Ja, ja und ja :-)
War eher ein allgemeines Seufzen darüber, dass die meisten Devices da
sehr freizügig mit dem Stromverbrauch umgehen "weil es auch so
funktioniert".
Ein Verbundgerät (für den Host ein Hub mit diversen weiteren Geräten
dran) darf pro Komponente 2.5 mA ziehen, sollte auf Deine Geräte aber
nicht zutreffen. s. http://www.testusb.com/power_issue.htm letzter
Abschnitt
Das Problem ist, dass die meisten (Root)Hubs eben durchaus mehr Strom
liefern und sehr viele Geräte das gnadenlos ausnutzen. Sauber ist das
nicht.
Die einfachste Klasse solcher Geräte sind die Gadgets, die den USB auch
oder nur zur Stromversorgung nutzen, wie Beleuchtung, Ventillator,
Heizung, Tastaturstaubsauger, etc. die haben oft einfach alles fest an
die +5V/GND-Lines angeschlossen und überhaupt keinen Devicecontroller
drin, der sich ums Power-Management scheren könnte.
Die Dinger ziehen dann gerne auch mal mehr als 100 mA, was eigentlich
nur nach Aushandlung erlaubt ist oder auch mehr als 500 mA, was
eigentlich gar nicht erlaubt ist. Es geht halt oft gut.
Je nach Hub kann das allerdings auch zu einer overcurrent condition
führen und auch andere Devices am selben Hub werden ggFs. zurückgesetzt
oder kriegen einfach nicht mehr genug Saft.
Markus HatKeinenNachnamen schrieb:> Hast du eine Information oder einen Link dazu, wie man den> USB-Controller deinitialisieren kann und den Bus(bzw die> Stromversorgung) softwaremäßig lahm legt? Ich habe dazu nichts gefunden.
Sorry, hatte ich falsch im Kopf. Unter
http://marc.info/?l=linux-usb&m=127162615232234&w=2 gibt es ein
Testprogramm, das das theoretisch kann. Allerdings unterstützen die
meisten (Root)Hubs das leider hardwareseitig gar nicht.
Da es sich aber eben nicht um "dumme" Geräte handelt, könnte es klappen,
explizit den Suspend-Mode zu aktivieren, würde ich aber nicht allzuviel
drauf setzen, da passiert wahrscheinlich nicht mehr als eh schon, wenn
der Host im Standby ist. Das sollte unter Linux durch schreiben eines
kleinen Wertes in /sys/bus/usb/devices/usb*/power/autosuspend_delay_ms
gehen.
Ansonsten vielleicht doch eher die Variante mit externer Hardware.
Reicht ein Bus powered Hub aus, um alle drei Geräte zu versorgen? Dann
könnte man auch sowas nehmen und müsste nur die Versorgung des Hub
trennen statt einen Schalter für jedes der drei Geräte zu bauen. Oder
direkt mit einem Hub Controller nen eigenen Hub bauen, der das
implementiert.
Wenn der Schalter nicht direkt vor/im Hub sein kann oder soll, würde ich
eher die Variante mit OptoMOS nehmen, das vermeidet Ärger, nicht zuletzt
falls doch mal das zu schaltende Gerät an einem extern gespeisten Hub
hängt. PVG612 z.B. oder AQY212EH, 550 mA, bisschen knapp, sonst
AQY212GH. Conrad hat die AQY, aber anscheinen nur in DIP und ist nicht
ganz billig.
Oder das gute alte mechanische Relais...