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
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.
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.
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.
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
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.
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.
>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.
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...
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.
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.
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
@ 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
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.
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
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.
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.
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.)
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.
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.
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.
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...)
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.
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.
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
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.
>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.
>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.
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.
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
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.
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.
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.
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.
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
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.
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