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
gibt es eigentlich kein Problem im Einschaltmoment bis C13 geladen ist? ich könnte mir vorstellen dass die USB-Spannung da einbricht!?
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.)
Wenn die 100mA bis zur Anmeldung verwendet werden dürfen, die Devices sich aber mangels Intelligenz nie anmelden, dann passt es doch prima. ;-)
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.
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-series-chips/ das führt direkt zu der AppNote von FTDI: http://www.ftdichip.com/Support/Documents/AppNotes/AN_175_Battery%20Charging%20Over%20USB%20with%20FTEX%20Devices.pdf da gibt es dann sogar was für 1A Dedicated Charging Ports. - wiebel
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.