Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   Energieklassifizierung von USB-Geräten (https://www.delphipraxis.net/163561-energieklassifizierung-von-usb-geraeten.html)

messie 4. Okt 2011 16:44

Betriebssystem: Win 7

Energieklassifizierung von USB-Geräten
 
Moin,

ich bin auf der Suche nach Informationen über die Energieklassifizierung von USB-Geräten.

Das Problem: wir benutzen einen gängigen USB -> RS485/RS422/RS232 Konverter (ADAM-4561), der den weit verbreiteten Prolific-Chipsatz nutzt. Es wird auch deren Treiber dafür angeboten. Nun sagt ein gängiger USB-> RS232-Konverter, dass er 100mA braucht. Der Mehrfachwandler sagt, dass er 500mA braucht.
Unter Windows 7/64 funktioniert der Mehrfachkonverter nur noch teilweise: er macht ein RS232- und ein RS422-Signal, beim RS485-Ausgang kommt nix. Sieht also so aus, als würde Win7/64 dem Wandler einfach den Strom begrenzen. Damit geht er nur noch ein bisschen.

Wo bekommt Windows solche Informationen her? Ich kann mir vorstellen, dass man die Sache mit dem patchen einer INF-Datei oder der registry in den Griff bekäme.

Grüße, Messie

himitsu 4. Okt 2011 16:53

AW: Energieklassifizierung von USB-Geräten
 
Schau mal, was USBView sagt

http://www.delphipraxis.net/163510-a...ml#post1127911


Wobei oftmals die Erkenntnis kommt, daß die USB-Controller nur Mist erzählen. (jedenfalls stimmt dieser Wert leider recht selten)



Mit der INF wirst du vermutlich nicht weit kommen, denn dein USB-Hostcontroler wird da schon einschreiten, bevor das Windows was davon mitbekommt.

Union 4. Okt 2011 17:00

AW: Energieklassifizierung von USB-Geräten
 
Liste der Anhänge anzeigen (Anzahl: 1)
Und man sollte die Energiersparoptionen mal kontrollieren:

hathor 4. Okt 2011 17:01

AW: Energieklassifizierung von USB-Geräten
 
Schau Dir die Daten an, die USBVIEW liefert.

http://www.ftdichip.com/Support/Utilities/usbview.zip

Der Strombedarf ist in den USB-Chips der angeschlossenen Geräte gespeichert und muss nicht der Realität entsprechen. Es ist völlig egal, was da drin steht.

Beispiele:
USB-Stick 16GB
bmAttributes: 0x80 (Bus Powered )
MaxPower: 0x64 (200 Ma)
---
USB-Stick 4GB
bmAttributes: 0x80 (Bus Powered )
MaxPower: 0x32 (100 Ma)
---
USB-Stick 2GB
bmAttributes: 0x80 (Bus Powered )
MaxPower: 0x19 (50 Ma)

Es ist in hex offensichtlich immer die Hälfte des dez-Wertes, weil man sonst mit einem 8-Bit-Wert nicht den Maximalstrom von 500mA bei USB2.0 darstellen kann.

messie 5. Okt 2011 09:58

AW: Energieklassifizierung von USB-Geräten
 
Moin,

ein Vergleich zwischen dem Mehrfachkonverter und dem billigen (beide melden sich als prolific 2303) ergibt:
1.
bmAttributes: 0xA0 (Bus Powered Remote Wakeup)
MaxPower: 0xFA (500 Ma)
2.
bmAttributes: 0xA0 (Bus Powered Remote Wakeup)
MaxPower: 0x32 (100 Ma)

Und bei Wikipedia finde ich im Kleingedruckten:
Zitat:

Der USB-Standard sieht vor, dass Geräte zunächst im Low Power-Mode (100 mA oder 150 mA) starten und bei höherem Strombedarf diesen erst vom Host anfordern, bevor sie den höheren Strom verbrauchen. Dies können bei USB 2.0 bis zu weiteren 4x 100 mA sein, bei USB 3.0 bis zu weiteren 5x 150 mA sein. Schlägt diese Anforderung fehl, hat sich das Gerät abzuschalten.
Da es bei XP funzt und ich im Web nur Probleme mit 64bit-Versionen (Vista/Win7) finde, stellt sich die Frage:
kann man den high-power-mode bei Win7/64 irgendwo abschalten? Oder ist das ein Bug?

Grüße, Messie

himitsu 5. Okt 2011 10:08

AW: Energieklassifizierung von USB-Geräten
 
Zitat:

Code:
bmAttributes:        0xA0 (Bus Powered Remote Wakeup)
MaxPower:            0xFA (500 Ma)
2.
bmAttributes:        0xA0 (Bus Powered Remote Wakeup)
MaxPower:            0x32 (100 Ma)

Die Frage ist, ob diese Werte auch stimmen?
Und ob sich die Geräte auch daran halten. (nimm mal die vielen USB-Lüfter und Lämpchen, welche ohne Anfrage einfach mal 500 mA ziehen)
Meine kleine HDD benötigt angeblich nichmal 100 mA und ist (laut dem USB-Descriptor) Self-Powered (es gibt aber keinen Stromanschluß).

Ich hätte das auch schon lange gemacht.
USB-Port überwachen und wenn sich wer nicht an die Regeln hält, ihm einfach den Saft abdrehn. :roll:

messie 5. Okt 2011 10:12

AW: Energieklassifizierung von USB-Geräten
 
Zitat:

Zitat von himitsu (Beitrag 1128526)
Ich hätte das auch schon lange gemacht.
USB-Port überwachen und wenn sich wer nicht an die Regeln hält, ihm einfach den Saft abdrehn.

Dafür gibt es meine Zustimmung, nur dokumentiert sollte es sein. :roll:

hathor 5. Okt 2011 12:06

AW: Energieklassifizierung von USB-Geräten
 
Zitat:

Zitat von himitsu (Beitrag 1128526)
...Die Frage ist, ob diese Werte auch stimmen?
Und ob sich die Geräte auch daran halten. (nimm mal die vielen USB-Lüfter und Lämpchen, welche ohne Anfrage einfach mal 500 mA ziehen)

Diese Geräte haben keine logische Verbindung, nur Plus und Minus.
Das Betriebssystem kriegt davon nichts mit, weil der Embedded Controller autonom den Stromverbrauch überwacht: Die elektronische Sicherung schlägt bei ca. 600 mA erbarmungslos zu.
RESET: Shutdown, Netzteil ab, Akku raus für einige Minuten.

messie 5. Okt 2011 13:26

AW: Energieklassifizierung von USB-Geräten
 
Zitat:

Zitat von hathor (Beitrag 1128561)
Diese Geräte haben keine logische Verbindung, nur Plus und Minus.
Das Betriebssystem kriegt davon nichts mit, weil der Embedded Controller autonom den Stromverbrauch überwacht: Die elektronische Sicherung schlägt bei ca. 600 mA erbarmungslos zu.
RESET: Shutdown, Netzteil ab, Akku raus für einige Minuten.

Hm.
Ich habe da bei microcontroller.net eine Beschreibung gefunden:
Zitat:

Beim Einstecken wird jedes USB-Gerät erstmal enumeriert, d.h. am Bus
angemeldet und dem PC bekannt gemacht. In dieser Phase darf das Gerät
maximal 100mA ziehen - USB-Spezifikation. In der Enumerationsphase wird
u.a. auch abgefragt, wieviel Strom das Gerät ziehen wird, wenn es
angemeldet ist. Aus dieser Information kann der PC rausrechnen, ob das
Gerät normal betrieben werden darf oder ob es durch das "volle"
Einschalten den Bus überlasten würde, wenn noch andere Teilnehmer dran
sind. Dafür ist das PWREN-Signal. Es wird erst aktiv werden, wenn vom PC
die Meldung kommt, dass sich das Gerät voll einschalten darf. Mit diesem
Signal wird dann eben ein FET gesteuert, der den Rest der Schaltung mit
Spannung versorgt.
Macht das alles der Chipsatz unabhängig vom Betriebssystem? :shock:

Grüße, Messie

messie 6. Okt 2011 15:48

AW: Energieklassifizierung von USB-Geräten
 
Sooo, jetzt habe ich nochmal einen Testrechner aus alten Teilen zusammengeworfen und Windows 7 (ging nur 32bit) aufgespielt. Das Resultat: identisch mit den Win7/64-Notebooks. Damit kann ich ausschließen, das es zufällig an der Kombination von relativ neuen Notebooks mit Win7/64 lag.

Nachdem, was ich sehe, mag ich nicht mehr glauben, dass es keinen Einfluss des Betriebssystems auf die Benutzung des USB-Ports gibt.
Denn, wieder geht nur ein Port, der stromfressende RS485-Port bleibt stumm.

Beachtet man das im microcontroller-zitat genannte Verhalten, dass sich eine Schaltung erstmal mit 100mA low Power anmelden muss und dann ein GO für das Zuschalten des stärkeren Schaltungsteil wartet, verhält sich der Mehrfachwandler genau richtig. RS232 geht auch mit 100mA, die anderen werden nicht zugeschaltet, weil es das Freigabesignal nicht gibt. Es muss also einen Einfluss des Treibers hierbei geben. Und der scheint unter Win7 nicht richtig zu funktionieren.

Zitat:

Zitat von Sir Rufo
Kaum macht man's richtig - schon funktioniert's :mrgreen:

Das wäre hiermit widerlegt :-D

Ich vermute, über das Problem wäre viel mehr bekannt, wenn alle Produkte mit Prolific-Chipsatz so ordentlich nach Vorschrift funktionieren würden :wink:

Grüße, Messie


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:22 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz