mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik USB 5V als Versorgungsspannung geeignet?


Autor: Thomas Pircher (tpircher) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin ein relativer Neuling in HW Design und entwerfe eine kleine 
Schaltung die als USB Device an den PC angeschlossen wird.

Dabei bin ich mir nicht sicher ob ich die +5V Versorgungsspannung von 
USB direkt an die Chips anschliessen kann. Versorgt werden sollen ein 
Atmel AT90USB162 und ein Altera MAX3000A beziehungsweise ein paar LEDs. 
Ich verwende weder DAC noch ADC und auch sonst brauche ich keine 
praezise Spannung, aber bin mir aber nicht sicher ob ich die 
Eingangsspannung getrost als Versorgung verwenden kann.

Das Bild im Anhang zeigt wie ich Vcc (Versorgungsspannung der Chips) 
erhalte: ich nehme die Spannung vom USB Stecker (X1), schalte in Serie 
ein Ferrite Bead von 5 Ohm (F1) und gegen Masse einen Tantalum 
Kondensator von 10uF (C13).

Muss ich mit dieser Beschaltung Stabilitaetsprobleme erwarten? 
Natuerlich kann ich die Spannung auf 3.3V herunterdrosseln, aber dann 
habe ich einen Chip mehr auf dem PCB und andererseits kann der AVR "nur" 
mit 8Mhz anstatt mit 16MHz gataktet werden.

Vielen Dank fuer alle Antworten.
Thomas

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wichtig ist vor allem dass die Schaltung den Anschluß nicht überlastet.

Zitat Wikipedia (USB): Der USB-Spezifikation entsprechende Geräte dürfen 
bis zu 100 mA oder 500 mA aus dem Bus beziehen, abhängig davon, wie viel 
der Port liefern kann, an den sie angeschlossen werden.

Autor: Benjamin S. (recycler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm lieber 100mA an, die 500mA dürfen erst nach der USB-Enumeration 
verwendet werden. Die LED ist toll, verbrät aber 5mA, dann sinds noch 
95mA.
Ich würde zusätzlich an die Slave Chips noch 100nF Abblockkondensatoren 
hinsetzen, aber sonst seh ich keine Probleme.

Autor: Nico (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arbeite einfach mit den 5V aus dem Port. Wenn du dahinter aber grössere 
Lasten hast (der M3000 kann laut Datenblatt auch recht viel Strom 
ziehen), dann solltest du die Sachen erst nach der Enumeration 
an-/zuschalten. Natürlich musst du dann auch bei der Enumeration angeben 
das du den entsprechenden Strom brauchst. Viele Devices machen es 
heutzutage aber so das sie einfach immer das Maximum von 500mA 
anfordern, ob sie es brauchen oder nicht.

Wenn du mit 3V3 arbeiten willst und nicht viel Strom brauchst, dann 
gibts bei den AT90USB einen "Trick". Schliess UVCC an die 5V vom USB an 
und greif die Versorgungs-Spannung für den AT90USB(VCC) und den Rest der 
Schaltung an UCAP ab. Das ist der Pin des internen 3V3 Reglers (an den 
muss dann auch noch ein kleiner Cap, Atmel empfiehlt 1µF). Laut 
Datenblatt kann man da "at least" 50mA ziehen.

Autor: Nico (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag:

Die Max3000 wohlen anscheinend eh 3V3 Volt als Versorgung. Also je 
nachdem wieviel Strom du ziehen willst, wirst du entweder einen externen 
Regler nutzen müssen, oder den im AT90USB162

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gibt es eigentlich kein Problem im Einschaltmoment bis C13 geladen ist? 
ich könnte mir vorstellen dass die USB-Spannung da einbricht!?

Autor: Stefan_KM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, es gibt keine Probleme beim Aufladen des C.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nö, gibt es kein Problem. C13 sollte nur nicht größer sein. Das Problem 
sind Schaltungen, die sofort nach dem Anstecken Strom ziehen, der in die 
Nähe von 100mA geht. Da gibt es dann u.U.Erkennungsprobleme, wenn der 
Port noch nicht enumeriert ist. In dem Fall sollte man die Verbraucher 
verzögert einschalten. Bei meinen Projekten mache ich es so, daß die 
USB-Bausteine vom USB-Port versorgt werden und der Rest der Schaltung 
aus einer separaten Versorgung. Bei kritischen Sachen baue ich zwischen 
die beiden Komponenten eine galvanische Trennung ein, um den Rechner zu 
schützen.

Autor: Guido Körber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Grundsätzlich dürfen nur USB Geräte Strom aus dem USB ziehen. Und ein 
USB Gerät ist nicht einfach eine Leuchtdiode mit einem Stecker dran, die 
meldet sich nämlich nicht beim System an. Es ist auf jeden Fall ein USB 
Microcontroller erforderlich, der sich beim Host anmeldet und falls er 
nicht konfiguriert wird in den Suspend Mode geht, in dem nicht mehr als 
2,5mA verbraucht werden dürfen.

Autor: Jörg S. (joerg-s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Es ist auf jeden Fall ein USB Microcontroller erforderlich, der sich
>beim Host anmeldet....
Wenn man mehr als 100mA haben will, aber die 100mA kommen doch auch ohne 
USB-µC. Jedenfalls hatte ich da noch nie Probleme mit.

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jörg S. wrote:
>>Es ist auf jeden Fall ein USB Microcontroller erforderlich, der sich
>>beim Host anmeldet....
> Wenn man mehr als 100mA haben will, aber die 100mA kommen doch auch ohne
> USB-µC. Jedenfalls hatte ich da noch nie Probleme mit.

An fast allen USB-Ports kriegst du auch 500mA oder 1A ohne Anmeldung.
Der zusätzliche FET zur Überstromabschaltung kostet mit Bestückung 
sicher einen extra-Cent, den man ohne wirklichen Nachteil für den Nutzer 
einsparen kann.
Stattdessen ist halt öfter mal ein 1 Ohm SMD-Widerstand als "Sicherung" 
verbaut, wenn überhaupt...

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jörg S. wrote:
>>Es ist auf jeden Fall ein USB Microcontroller erforderlich, der sich
>>beim Host anmeldet....
> Wenn man mehr als 100mA haben will, aber die 100mA kommen doch auch ohne
> USB-µC. Jedenfalls hatte ich da noch nie Probleme mit.

Es kommen auch mehr als 500mA aus USB, selbst ohne Anmeldung. Nur die 
wenigstens USB Controller sehen das wirklich so streng und schalten ab. 
Die meisten schalten erst irgendwo bei 1A oder irgendwas in der Richtung 
ab.
Aber es verstößt halt gegen die USB Specs, die zunehmend nicht mal mehr 
die Hersteller von USB Geräten zu interessieren scheinen.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guido Körber wrote:

> Grundsätzlich dürfen nur USB Geräte Strom aus dem USB ziehen.

Das ist eine sehr buchstäbliche Auslegung, mit der du zwar vermutlich
vom Papier her Recht hast, aber die ist kaum praxistauglich.

> Und ein
> USB Gerät ist nicht einfach eine Leuchtdiode mit einem Stecker dran,
> die meldet sich nämlich nicht beim System an. ...

Das muss sie auch nicht, sofern du keine Super-LED nimmst.  Man hat
nämlich bei der USB Spec daran gedacht, dass auch USB-Geräte ein
,,Leben vor der Geburt'' haben, d. h. sie benötigen bereits Strom
bis zu dem Zeitpunkt, da sie sich am Bus anmelden können.  Dafür hat
man ihnen einen Rahmen von maximal 100 mA zugestanden, die sie in
dieser Phase dem Bus bereits entnehmen dürfen.  Da es andererseits
keine Verpflichtung im USB-Standard gibt, dass sich das USB-Gerät
jemals auch wirklich anmeldet, kann man letztlich diese bis zu 100
mA dauerhaft entnehmen, ohne sonst irgendwie ein Stück USB-Protokoll
zu implementieren.

> Es ist auf jeden Fall ein USB Microcontroller erforderlich

Übrigens geht's auch ohne Controller bei Bedarf: Teile wie ein FT232
beherrschen genug vom USB-Protokoll, dass man damit auch mehr als die
100 mA nach dem Einrichten der Host-Seite entnehmen kann, und sie
haben einen extra Ausgang, der diese Zustand signalisiert (d. h. man
kann seine ,,schwergewichtigen'' Verbraucher damit steuern).

> und falls er
> nicht konfiguriert wird in den Suspend Mode geht, in dem nicht mehr als
> 2,5mA verbraucht werden dürfen.

Suspend mode hat nichts mit ,,nicht konfiguriert'' zu tun, allerdings
ist das ein gültiges Argument: im suspend mode stehen die 100 mA
natürlich nicht mehr zur Verfügung.  Wenn mich nicht alles täuscht,
müsste man das aber sogar mit einem retriggerbaren Monoflop erkennen
können.

Als ich letztens mit einem AT90USB1287 experimentiert habe, war es
mir aber nicht gelungen, den suspend mode von der Hostseite aus
irgendwie zu erreichen.  Wann wird der wirklich benutzt?  Ein
Suspend eines Windows-betriebenen Notebooks genügte jedenfalls nicht,
das hat dann gleich komplett den Bus abgeschaltet.

Autor: Thomas Pircher (tpircher) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank fuer die Antworten!

Ich werde meine Schaltung ein wenig umbauen muessen. Hier kurz eine 
Zusammenfassung meiner gesammelten Erkenntnisse:

1) AT90USB162 wird an VBUS (5V) angeschlossen, aber ueber den internen 
Spannungsregler mit 3.3V versorgt. So sind die I/O Pins 3.3V kompatibel. 
Sehr flexibel dieser Baustein!

2) alle anderen Chips werden mit einem Low-Dropout Regulator mit enable 
Pin (LP2981 oder Aehnliches) mit 3.3V versorgt, sobald die Enumerierung 
abgeschlossen ist.

Mit allen Chips duerfte der Verbrauch um 100mA liegen, deshalb duerften 
die 500mA nach Enumerierung locker ausreichen.

Und noch eine Frage zur Wahl eines Pull-down Widerstands.

Das Enable-Pin des Spannungsreglers werde ich vom AT90USB Chip steuern. 
Da die I/O Pins des AT90USB bei Reset als Eingang (ohne pull-up) 
geschaltet sind, muss ich diese Leitung nach GND ziehen. Sind 47kOhm ein 
guter Wert dafuer? Die Leckstroeme aller angeschlossenen Chips sind in 
diesem Zustand max 1uA und der Spannungsregler LP2981 gibt eine Minimum 
Slew Rate von 40mV/us an.

Viele Gruesse und Danke fuer die vielen guten Tips
Thomas

Autor: Termite (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Jörg Wunsch

Bitte die USB Speck noch einmal genau lesen.

100 mA darf ein Controller bis zum set Configuration entnehmen als Bus 
Powerd device. Erst danach dürfen mehr als die 100 mA gezogen werden. 
aber er hat auch eine zeitliche beschränkung. So hat ein USB Device nach 
ca 100 ms nach Attach am bus seinen Connect gegenüber dem Host zu 
signalisieren ( Wiederstand auf einer der D leitungen). weiter 100 bis 
200 ms danach ist auf die ersten host seitigen anfragen zu reagieren.

USB.org hat ein Tool mit dem man die ganzen Buszusände erzeugen kann. An 
einem Normalen PC ist meines wissen S3 oder S4 zu aktivieren um diesen 
Zustand simmulieren zu können.

Bei Start von Win XP werden angeschlossene MassMemory Devices irgendwann 
mal in den Suspend geschaltet. wann genau kann ich nicht sagen. ob 
zwischen Bios und Windows oder irgendwann mal beim Windows start.

und Solange du deinem Device kein USB Logo verpassen willst, kannst du 
prinzipell machen und tun was du willst.

gruss

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Termite wrote:

> Bitte die USB Speck noch einmal genau lesen.

Wenn das nur so einfach wäre...  Alle Information da drin ist so
schön breit gestreut zum Teil. :-/

> So hat ein USB Device nach
> ca 100 ms nach Attach am bus seinen Connect gegenüber dem Host zu
> signalisieren ( Wiederstand auf einer der D leitungen).

Tja, dieses Timing habe ich vergeblich gesucht.  Wo steht das in
der Spec?

> Bei Start von Win XP werden angeschlossene MassMemory Devices irgendwann
> mal in den Suspend geschaltet. wann genau kann ich nicht sagen.

Meins war aber CDC, und da ist es mir nicht gelungen, das Teil in
den suspended mode zu bekommen.  Ich wollte eigentlich meine
Implementierung gern mal dagagen testen.

> und Solange du deinem Device kein USB Logo verpassen willst, kannst du
> prinzipell machen und tun was du willst.

Naja, zumindest solange du solche Grenzen einhälst wie das 100-mA-
Limit.  Ja, sehe ich genauso.  Es gibt ja teilweise sogar Laderegler
(MAX1551/1555), die extra einen 5-V-Eingang für den USB haben, weil
sie von diesem garantiert nicht mehr als 100 mA entnehmen.  Damit
kann man dann einen einfachen LiIon-Lader mit USB-Stecker bauen.

Autor: Termite (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

auf Seite 150 in der USB Spezifikation (Universal Serial Bus 
Specification Figure 7-29. Power-on and Connection Events Timing) stehen 
die notwendigen Infos zum timing

Das tool heist "HS Electrical Test Tool" gibts hier: 
http://www.usb.org/developers/tools/

Interresant in der hinsicht ist auch die Battery Charging specification.

gruss

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Termite wrote:

> auf Seite 150 in der USB Spezifikation (Universal Serial Bus
> Specification Figure 7-29.

Danke, ja, das hatte ich wirklich mal gesucht.

Damit ist klar, dass ein Batterielader, der einfach nur 100 mA vom
USB zieht, nicht zertifizierungsfähig ist.  Andererseits: wo kein
Kläger ist, ist auch kein Richter.  Da der Host/Hub die 100 mA in
der Regel ohnehin ,,einfach so'' liefert, wird er das attach eines
Gerätes, das danach aber keinen connect durchführt, wohl kaum zur
Kenntnis nehmen.

> Interresant in der hinsicht ist auch die Battery Charging specification.

Ja und nein.  Auch sie setzt natürlich ein ,,ordentliches'' USB-Gerät
voraus, das zumindest nach Erreichen des "weak battery"-Zustands
willens und in der Lage ist, sich zu connecten.

Wer es zertifizierungsfähig haben will, muss also dann entweder zu
einem Controller greifen (low-speed in der Art der Software-Lösungen
auf Basis eines kleinen AVR würde ja genügen) oder aber halt einen
FT232/245 oder etwas Ähnliches benutzen.  Der Vorteil dort ist aber,
dass man danach bis zu 500 mA zur Verfügung hat.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
USB-Leuchten, -Ventilatoren und -Kaffewärmer fragen auch nicht, ob und 
wieviel Strom sie ziehen dürfen und funtionieren trotzem, obwohl sie 
keinen USB-Controller intus haben. Soviel mal zum Thema Anmeldung.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Travel Rec. wrote:
> USB-Leuchten, -Ventilatoren und -Kaffewärmer fragen auch nicht, ob und
> wieviel Strom sie ziehen dürfen und funtionieren trotzem, obwohl sie
> keinen USB-Controller intus haben.

Ja.  Der Punkt ist eben nur: sie sind nicht konform, und ein Host oder
Hub hat das Recht, sie außer Betrieb zu nehmen.  (Wobei ich mir bei
Kaffeewärmern schon vorstellen kann, dass sie sich anmelden, damit
sie sicher die 500 mA bekommen können.  Der Chip dafür kostet ja
nicht viel.  Habe aber noch keinen gehabt und auch keinen Bedarf dafür.)

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn die 100mA bis zur Anmeldung verwendet werden dürfen, die Devices 
sich aber mangels Intelligenz nie anmelden, dann passt es doch prima. 
;-)

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
A. K. wrote:
> Wenn die 100mA bis zur Anmeldung verwendet werden dürfen, die Devices
> sich aber mangels Intelligenz nie anmelden, dann passt es doch prima.
> ;-)

Im Prinzip ja, allerdings haben sie ein Recht darauf offiziell nur
für 100 ms.  Andererseits ist das natürlich sowieso ziemlicher
Kokolorus: niemand könnte es ihnen verbieten, nach diesen 100 ms
ab- und sofort wieder angesteckt zu werden und damit ein Anrecht
auf weitere 100 ms zu erwerben...

Abei einen USB-Kuckuck dürfen sie sich ohne aktive Hardware ganz
sicher nicht draufpappen.

Autor: Guido Körber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also Ignorieren des Spezifikation ist nicht unbedingt die beste 
Strategie um etwas zuverlässig zur Funktion zu kriegen. Das Thema Strom 
aus dem USB entnehmen haben wir regelmäßig im Forum der USB-IF.

Fazit aus dem Ganzen ist grundsätzlich, dass man sich natürlich daneben 
benehmen kann und oft davon kommt. Nur sollte man nicht erwarten eine 
zuverlässige Lösung ohne Einhaltung des Protokolls zu bekommen.

Entnimmt man ungefragt Strom aus einem USB Port, dann kann ggf. der Host 
entscheiden diesen Port abzuschalten (sofern der Hub dies zulässt). 
Entnimmt man munter so viel Strom wie man will,  so kann die Spannung am 
eigenen und anderen USB Ports zusammenbrechen, das Ergebnis reicht von 
Kurzschlussmeldung durch den Hub (was noch die schöne Variante ist weil 
man ja eine Fehlermeldung bekommt), über Absaufen eines Teiles des USB 
bis hin zu sporadischen Fehlern, die einen in den Wahnsinn treiben 
(Windows User sind ja halbwegs an solche Zustände gewöhnt).

Das Ignorieren des Suspend Zustandes kann bei Notebooks natürlich zu 
interessanten Effekten beim Batteriebetrieb führen.

Also auf jeden Fall einen Controller mit rein. Optionen gibt es dazu 
viele (das Monoflop geht übrigens nicht, inaktive Ports bekommen auch 
kein Bus-Signal), wenn es ohne eigenes Programmieren gehen soll bietet 
sich der IO-Warrior24PowerVampire an, der versucht 500mA zu kriegen, 
wenn er die nicht kriegt nimmt er halt 100mA und signalisiert das über 
ein paar Steuerleitungen nach Aussen.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ganz oben stand doch, dass der Thread-Starter einen AT90USB verwenden 
will. Damit kann er sich doch an alle Vorgaben des STandards halten. Nur 
um mal wieder auf den Ursprung zurück zu kommen....

Übrigens haben sich kleine Ferritperlen in der VBUS bewährt, die filtern 
die hochfrequenten Störungen weg, die eventuell nachfolgende Regler 
durcheinander bringen könnten.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guido Körber wrote:

> Entnimmt man ungefragt Strom aus einem USB Port, dann kann ggf. der Host
> entscheiden diesen Port abzuschalten (sofern der Hub dies zulässt).

Beim Überschreiten der 100 mA ist das klar.  Aber bei den 100 mA sehe
ich da kein Verhältnis von Aufwand zu Nutzen: man müsste ja das
Anstöpseln eines Geräts sicher identifizieren und dabei auch noch
sicher stellen, dass das Gerät nicht mehr als durchschnittlich 2,5 mA
entnimmt (denn dazu wäre es in jedem Falle befugt), man muss also
schon mal nicht nur den Strom messen, sondern auch noch fortlaufend
integrieren.  Die Entnahme von mehr als durschnittlich 2,5 mA bis
zu den ,,normalen'' 100 mA dann wiederum müsste zeitlich überwacht
werden, ob dem attach nach 100 ms ein connect folgt.

Selbst wenn diesen Aufwand wirklich jemand spendieren wollte: das
Gerät müsste nach 100 ms nur mal kurz die Stromentnahme unterbrechen,
damit ist es aus Sicht des Hubs detached, kann sich ja aber danach
sofort wieder attachen und damit die 100 ms neu zu zählen beginnen.
Hmm.  Die kurze Unterbrechung puffert man dann mit einem Elko...

Rein praktisch bleibt dem Host also gar nichts übrig als die 100 mA
pro Port dauerhaft verfügbar zu haben.

> das Monoflop geht übrigens nicht, inaktive Ports bekommen auch
> kein Bus-Signal

Ja, das wurde mir dann auch klar.

Bliebe immer noch die Frage, welcher Laptop mit welchem Betriebssystem
eigentlich wirklich den USB in den Suspend bringt (mit einem CDC dran),
denn das war mir noch nicht gelungen.  Beim Suspend des Laptops unter
WinXP war anschließend der komplette USB abgeschaltet.  (Ich hätte
gern die Suspend-Logik meiner Firmware mal verifiziert...)

Autor: Thomas Pircher (tpircher) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian R. wrote:
> Ganz oben stand doch, dass der Thread-Starter einen AT90USB verwenden
> will. Damit kann er sich doch an alle Vorgaben des STandards halten.

Stimmt, und das habe ich auch vor. In der Zwischenzeit hat der Thread 
aber eine Eigendynamik entwickelt und ist von meiner Ursprungsfrage 
ziemlich abgewichen. Meine urspruengliche Fragen sind beantwortet, die 
Diskussion hat mir aber ein paar andere Schwaechen in meinem 
Ursprungsdesign aufgezeigt.

> Übrigens haben sich kleine Ferritperlen in der VBUS bewährt, die filtern
> die hochfrequenten Störungen weg, die eventuell nachfolgende Regler
> durcheinander bringen könnten.

Yupp, so eine ist schon in meinem obigen Schaltplan vorgesehen. Zur 
Dimensionierung werde ich mir noch einmal "USB 2.0 Board Design and 
Layout Guidelines" 
(http://focus.tij.co.jp/jp/lit/an/spraar7/spraar7.pdf) genauer ansehen.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas Pircher wrote:

> Meine urspruengliche Fragen sind beantwortet, die
> Diskussion hat mir aber ein paar andere Schwaechen in meinem
> Ursprungsdesign aufgezeigt.

Und mir hat sie zu Erkenntnissen über USB verholfen, die ich vorher in
der Spec auch noch nicht gefunden hatte. ;-)

Das ist halt der Vorteil einer öffentlichen Diskussion.

> Zur
> Dimensionierung werde ich mir noch einmal "USB 2.0 Board Design and
> Layout Guidelines" [...] genauer ansehen.

Wobei du ja beim AT90USBxxx zumindest nicht mit dem UHF-Design für
Highspeed-USB geplagt bist.  Bei Fullspeed ist das Layout ja doch
ein wenig entspannter.

Autor: Michael Waiblinger (wiebel42)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da der Thread hier bisher schon so ertragreich war würde ich gernen noch 
eine Frage loswerden.

Wenn man einen FT323+EEPROM und den MAX1874 kombiniert, dann kann man 
sich ja ordnungsgemäss als High Power Device anmelden und anschliessend 
mit einem p-FET den MAX1874 mit 500mA aktivieren. (Der MAX1874 lässt 
sich zw. 100mA und 500mA umschalten.) Soweit so toll, aber es gibt ja 
auch Hubs die lediglich über den Bus bestromt werden, ergo gar nicht die 
500mA bringen können. Erfährt man sowas bei der Verhandlung mit dem USB 
Host? Kann das der FTDI Chip umsetzen, um dann einfach den MAX1874 in 
den 100mA Modus zu bringen?
Oder sind derartige HUBs am Ende gar nicht Spezifikationskonform?

Das Ziel ist natürlich einen Lader (+UART) zu haben der mit dem maximal 
möglichen Strom lädt. -wiebel

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael Waiblinger wrote:

> Soweit so toll, aber es gibt ja
> auch Hubs die lediglich über den Bus bestromt werden, ergo gar nicht die
> 500mA bringen können. Erfährt man sowas bei der Verhandlung mit dem USB
> Host?

Das geht nur, indem du mehrere Konfigurationen anbietest.  Der Host
geht diese in der Reihenfolge ihres Auftretens in den Deskriptoren
durch.  In diesem Falle müsste er dann die Konfiguration mit 500 mA
ablehnen.  Wenn das deine einzige mögliche Konfiguration war, kannst
du nicht eingebunden werden, wenn du danach noch eine mit 100 mA
liegen hast, kann er stattdessen diese auswählen.

> Kann das der FTDI Chip umsetzen, ...

Das weiß ich gerade nicht, da müsstest du in dessen Datenblatt
nachsehen.  Bei FTDI hat sich ja seit den ersten Exemplaren von
FT232/FT245 einiges getan, es gibt nun interne EEPROMs und internen
Oszillator, eine frei konfigurierbare "bit-bang"-Maschine, keine
Ahnung, ob da auch eine optionale zweite Konfiguration dabei ist.

Autor: Guido Körber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Bliebe immer noch die Frage, welcher Laptop mit welchem Betriebssystem
>eigentlich wirklich den USB in den Suspend bringt (mit einem CDC dran),
>denn das war mir noch nicht gelungen.  Beim Suspend des Laptops unter
>WinXP war anschließend der komplette USB abgeschaltet.  (Ich hätte
>gern die Suspend-Logik meiner Firmware mal verifiziert...)

Wer für die Entwicklung von USB Geräten einen Mac benutzt ist klar im 
Vorteil...

Was die freie Interpretation der Spec betrifft: Es ist natürlich jedem 
freigestellt sich ein Supportproblem zu bauen, ich persönlich bevorzuge 
den Ansatz auf Funktion zu designen und nicht zu testen. Der Unterschied 
ist halt wie häufig man im Gebrauch ein Problem lösen muss.

Autor: Guido Körber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Soweit so toll, aber es gibt ja
>auch Hubs die lediglich über den Bus bestromt werden, ergo gar nicht die
>500mA bringen können. Erfährt man sowas bei der Verhandlung mit dem USB
>Host? Kann das der FTDI Chip umsetzen, um dann einfach den MAX1874 in
>den 100mA Modus zu bringen?

Das hängt vom verwendeten Betriebssystem ab. MacOS sucht bei einem Gerät 
mit mehreren Konfigurationen die "beste" aus. Wenn also 500mA und 100mA 
angeboten werden, wird die mit dem höchsten verfügbaren Strom aktiviert. 
Dabei sollte die 500mA Konfiguration als erste drin stehen, einige 
Versionen von MacOS nehmen sonst die erste Konfiguration die passt und 
gucken keine weitere mehr an.

Bei Windows ist das deutlich einfacher: Windows guckt eh nur die erste 
Konfiguration an, wenn die nicht passt (500mA gewünscht, aber an 100mA 
Port angeschlossen) ist die Sache für Windows erledigt, das Gerät wird 
nicht konfiguriert.

Betreffs Linux müsste ich das mal wieder antesten, der letzte Stand dazu 
war, dass Linux mit mehreren Konfiguration garnicht klarkommt.

Mit einem FTDI Chip ist das wohl nicht zu lösen. Das war der Grund, 
wesshalb wir den IOW24PV entwickelt haben, was uns einige Korrespondenz 
mit den Entwicklern der verschiedenen Systeme gekostet hat um eine 
ordentliche Lösung zu schaffen.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guido Körber wrote:

> Wer für die Entwicklung von USB Geräten einen Mac benutzt ist klar im
> Vorteil...

Wir haben ja keine USB-Geräte entwickelt, sondern nur eine minimale
Beispielfirmware.  Wir haben daher weder die Finanzmittel, einen
ordentlichen USB-Analyzer mit Kompatibilitätsprüfung hinzustellen
noch beliebig viele Betriebssysteme.  Die Entwicklung dieses Firmware-
teils habe ich gegen einen Linuxrechner gemacht, da ich dort am besten
die Kernelseite gegen die Firmware vergleichen konnte (debug-printfs
in den Kernel), und am Ende habe ich nochmal einen Kollegen mit Windows
gebeten, einen Funktionstest über möglichst viele verschiedene
Zustände zu machen.  Zu Hause konnte ich noch gegen ein FreeBSD testen,
aber das war's dann.

Dass man damit kein USB-Produkt entwickeln kann, ist sonnenklar, aber
das war auch nicht die Absicht.

Autor: Master Snowman (snowman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bezüglich 100/500mA: ich habe auch schon gehört, dass es mainboards 
geben soll, bei denen die spannungsversorgungsleitung der USB-buchsen 
direkt mit dem netzteil verbunden sind... sprich: einen kurzschluss am 
USB lässt den rechner neu booten (sofern kein kurzschluss mehr). auf 
alle fälle könntest du an einem solchen USB-port ohne probleme mehrere A 
ziehen ^^ ..und das auch ohne enummeration :-P

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Master Snowman wrote:

> bezüglich 100/500mA: ich habe auch schon gehört, dass es mainboards
> geben soll, bei denen die spannungsversorgungsleitung der USB-buchsen
> direkt mit dem netzteil verbunden sind...

Naja, die meisten machen sich wohl wenigstens die Mühe, eine Polyfuse
dazwischen zu setzen.  Allerdings werden Mainboards wohl eher keinen
Bedarf haben, mehr als nur eine ,,brutale Überschreitung'' zu
erkennen.  Solche Vorkehrungen wirst du wohl eher bei Notebooks suchen
können, bei denen davon dann die Batterielebensdauer betroffen ist.

Autor: Warren Spector (jcdenton)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Master Snowman wrote:
> bezüglich 100/500mA: ich habe auch schon gehört, dass es mainboards
> geben soll, bei denen die spannungsversorgungsleitung der USB-buchsen
> direkt mit dem netzteil verbunden sind... sprich: einen kurzschluss am
> USB lässt den rechner neu booten (sofern kein kurzschluss mehr). auf
> alle fälle könntest du an einem solchen USB-port ohne probleme mehrere A
> ziehen ^^ ..und das auch ohne enummeration :-P

hab nen alten sockel A pc rumstehen mit nforce2 chipsatz, wenn man dort 
ein am usb zu hektisch rumsteckt weil man mehrere sachen wechselt macht 
der durchaus einfach so mal nen kaltstart.
find ich nen absolut unakzeptablen konstruktionsfehler.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warren Spector wrote:
> hab nen alten sockel A pc rumstehen mit nforce2 chipsatz, wenn man dort
> ein am usb zu hektisch rumsteckt weil man mehrere sachen wechselt macht
> der durchaus einfach so mal nen kaltstart.

Wobei sowas aber durchaus auch ein Treiberproblem sein kann.

Autor: Guido Körber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Windows hat in den Treibern eine Macke, die bei bestimmten Fehlern zu 
einem direkten Neustart führt. Ich muss mal in meiner Dokumentation 
nachsehen, irgendwann hatte ich mal eine Kombination gefunden, wie man 
mit einem fehlerhaften Descriptor im USB Gerät diesen Neustart direkt 
erzeugen kann wenn das Gerät angeschlossen wird.

Autor: Horst Schneider (Firma: privat) (kimondo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich benutze auch die 5V aus dem USb zur Versorgung eines kleinen ext. 
Gerätes (Eigenbau). Bleibt immer angesteckt, auch wenn das Notebook 
ausgeschaltet ist (vom Netz getrennt).
Frage 1:
Versorgt dann der interne Akku des Notebook weiterhin dei 5V am USB?
Frage 2:
Mein Gerät hat intern eine kleine Knopfzelle (auch Akku), kann es da bei 
ausgeschalteten Notebook Rückspeiseprobleme geben? Beide Akkus 
havarieren sich gegenseitig?
Die Datenleitungen sind nicht benutzt, nicht angeschlossen

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast mitbekommen, daß dieser Thread seit 3 Jahren nicht mehr aktiv 
war?

Ansonsten:
1) Hängt davon ab, wie das Notebook damit umgeht. Wenn es im 
Standby-Modus ist, kann es z.B. einer USB-Maus erlauben, es aufzuwecken. 
Ist es vollständig heruntergefahren, werden die USB-Anschlüsse aber 
höchstwahrscheinlich komplett deaktiviert sein.

2) Ja, das ist ein Problem. Eine Diode aber hilft, es zu lösen.

Autor: Michael Waiblinger (wiebel42)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn wir hier schon Tote wecken dann aber richtig. Bezüglich der 
100/500mA Enumeration gibt es neues und zwar hier:

http://dangerousprototypes.com/2012/02/28/ftdi-x-s...

das führt direkt zu der AppNote von FTDI:

http://www.ftdichip.com/Support/Documents/AppNotes...

da gibt es dann sogar was für 1A Dedicated Charging Ports.

- wiebel

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.