Hallo in die Runde. Ich habe eine Frage zur Bestückung des FPGA_DONE
Pins mit einer LED.
Ich nutze einen Spartan 6, Spannungen von 5V/3,3V/1,2V und eine LED, die
bei 3,3V@20mA ihr Optimum hat.
Da der DONE Pin des FPGAs ein Open-Drain ist,muss es logischerweis mit
einem Pull-Up Widerstand an Vcc angebracht werden (s. Bild).
Meine Kenntnis scheitert an dem Punkt,wo ich eine entsprechende Spannung
Vcc und einen passenden Widerstan R wählen muss.Ich habe bis jetzt zwei
Möglichkeiten durchdacht und möchte euch nach der "richtigen" Wahl
fragen.Vielleicht bin ich ja aber auch auf dem Holzweg und möchte mich
gerne belehren lassen;).
Meine zwei Optionen:
1)Wenn Vcc 3,3V und der DONE Pin High ist, dann sollten ja,damit die LED
bekommt,was sie braucht, die kompletten 3,3V an der LED abfallen. Ergo
soll kein Pull-Up Widerstand verwendet werden. Was aber wiederrum
entgegen der Open-Drain Schaltung geht.
2)Wenn Vcc 5V ist muss der Widerstand R 85Ohm betragen, um der LED
3,3V@20mA zu liefern. In diesem Falle habe ich einen Pull-Up Widerstand
eingesetzt, bei dem ich mir jedoch Sorgen mache,ob er nicht zu klein
gewählt ist und dadurch Open-Drain-Pin zuviel Strom gibt.
Welche der beiden Optionen hällt ihr für die bessere bzw. habt ihr
weitere Ideen?
Grüße,
Felix
> die kompletten 3,3V an der LED abfallen.
Welche Farbe hat deine LED?
Rote LEDs haben 1,5V Uf, Grüne etwa 2,3V.
Und LEDs brennen dir heutzutage mit 20mA das Auge raus... :-o
Also gehen wir mal von einer grünen LED aus ("alles im grünen Bereich").
Dann hast du noch 3,3-2,3V = 1V für den Widerstand.
Bei 2mA macht das dann einen Vorwiderstand von 1V/2mA = 500 Ohm.
Mit 470 Ohm bist du auf der sicheren Seite.
also ich hab von Open-Drain nicht so viel Ahnung, also weiss ich auch
nicht wie das mit dem Pull-Up aussieht. (Gibts nicht auch manchmal
zuschaltbare Pull-Ups?)
Jedoch würde ich an einem Output-Pin grundsätzlich keinen Pull-Up
anschließen, außer es wird im Datenblatt verlangt.
Die LED sollte einen Serienwiderstand bekommen, den du so auslegst, dass
der Strom auf 10 - 20 mA festgelegt wird.
Ausrechnen tut man das so: Du benötigst den Spannungsabfall an der LED
in Vorwärtsrichtung, z.B. 2,4V (steht im Datenblatt)
Dann: Spannung insgesamt über LED und Vorwiderstand = 3.3V.
Am Widerstand fallen dann 3.3V - 2.4V ab = 0.9V. Bei einem gewünschten
Strom von 20mA rechnest du also Widerstandswert R = 0.9V/20mA = 45 Ohm.
Ich würde etwas weniger als 20mA durch die LED schicken, die leuchtet
auch bei 10mA, halt etwas dunkler....
> Ich nutze einen Spartan 6, Spannungen von 5V/3,3V/1,2V und eine LED,> die bei 3,3V@20mA ihr Optimum hat.
Die 5V solltest du auch nicht ansatzweise in die Nähe des FPGAs bringen.
Also auch kein Pullup auf 5V. Denn sonst ist dein FPGA gleich mit
kaputt, wenn mal die LED abfackelt (oder bloß eine schlechte Lötstelle
hat)...
Also zunächst mal ist der DONE Pin ein open Drain. Willst du damit ein
High treiben, musst du das explizit beim Erstellen des Bitfiles als
Option angeben.
Als nächstes....VCC 5V wird überhaupt nix, wenn wenn DONE Low ist,
fließt kein Strom durch die LED, folglich hast du nahezu die gesamten 5V
auf dem DONE Pin stehen, das macht der nur einmal mit. Dann musst du mit
der VCCAUX Spannung an sich aufpassen:
1
If VCCO_2 is 1.8V, VCCAUX must be 2.5V. If VCCO_2 is 2.5V, VCCAUX can be either 2.5V or 3.3V.
> wenn DONE Low ist ... hast du die gesamten 5V auf dem DONE Pin
Krasse Logik. Mein Glückwunsch... ;-)
Wenn DONE low ist, das ist überhaupt der unkritische Fall (gegeben:
high-aktive Logik, Low=0V).
Gefährlich wird es nur, wenn die LED kaputt oder absent, und
gleichzeitig der DONE-Pin hochohmig ist.
also ich versteh das auch so, dass 5 Volt nicht unbedingt gut tuen an
einem 3.3V I/O PIN....
Über Low und Hochohmig usw. brauchen wir da gar nicht zu reden. Alles
Käse...
Ach Gott....das Wochenende muss kommen. Ich war in Gedanken einem Pullup
nach +5V da haben wir schon manchen Pin zerschossen.
Ich geh wohl besser nach Hause für heute :)
@ ein_unwissender
> Über Low und Hochohmig usw. brauchen wir da gar nicht zu reden.
Hast du das verstanden, was ich geschrieben habe? Es geht gar mir
nicht darum, was man nicht tun sollte, sondern darum, dass man versteht,
warum man es nicht tun sollte.
Zusammengefasst:
Die Schaltung vom OP wird mit einer LED bis zu einer Uf=3,3V (z.B. blau
& weiß) an 5V ganz problemlos funktionieren. Jede Spezifikation des
DONE-Pins wird eingehalten. Aber wenn die LED fehlt, kommen die 5V
direkt an den DONE-Pin... :-/
> Alles Käse...
Na bitte, wenigstens nicht das trocken Brot alleine... ;-)
Faszinierend, wie schnell hier geantwortet wird :-D!
Zur LED: Es ist eine grünleuchtende von Kingbright, PN: AA3020AZGC. Laut
Datasheet hat sie eine Vorwärtsspannung von 3,3V bei einen Vorwärtsstrom
von 20mA.
Da ich keine LED Vorkenntnisse habe und mich einfach an die Datasheets
halte, gehe ich davon aus, dass die LEDs NUR bei den gegebenen Werten so
leuchten werden,wie es der Hersteller sich gedacht hat.
Zur Versorgungsspannung: Ich werde auf alle I/O Banks 3,3V legen, weil
alle an das FPGA angeschlossenen Bauteile mit 3,3V arbeiten.
Deswegen viel meine LED-Wahl auch auf das Modell,welches ich benutzen
möchte.Wenn ich diese 3,3V@20mA LEDs an FPGA Pins lege,die ja alle mit
3,3V arbeiten, so umgehe ich die Notwendigkeit hier Vorwiderstände
einzusetzen. Habe es mir jedenfalls so gedacht^^.
@lkmiller:
1)Das 5V für den FPGA Pin schlecht sind, hätte ich selber wissen müssen.
Wer Datenblätter lesen kann,ist von Vorteil^^. Danke für den Hinweis.
2)Was ich noch nicht ganz nachvollziehen konnte ist,dass bei Vcc 3,3V
und dem Einsatz eines Pull-Up Widerstandes meine LED ja nicht das
bekommt,was sie haben möchte,weil ein Teil der Spannung bereits am
Pull-Up Widerstand abfällt. Ich denke noch strikt, dass die LED nur bei
3,3V@20mA funktionieren wird.
Danke für die schnelle Beantwortung:)
Grüße,
Felix
grundsätzlich bitte UNBEDINGT Vorwiderstand an die LED, da nur über den
Widerstand der maximale Strom eingeprägt wird. Die LED hat eben nur eine
feste Spannung und es würde sich ohne Vorwiderstand ein undefinierter
Strom einstellen, der möglicherweise zur Zerstörung führen könnte. Ich
meine übrigens keinen Pull-Up, sondern einen seriellen Widerstand.
In Datenblättern gibt es meistens Absolut max. Werte und typische Werte.
Dass 20mA erlaubt sind bei den meisten LEDs ist ja richtig, jedoch nicht
unbedingt ökonomisch sinnvoll. Ist halt ein typischer Wert. Der geneigte
Ingenieur/Entwickler hat halt auch Erfahrungswerte.
> Laut Datasheet hat sie eine Vorwärtsspannung von 3,3V> bei einen Vorwärtsstrom von 20mA.
Und sie hat eine kleinere Vorwärtsspannung bei einem kleineren Strom.
Ein kleinerer Strom bringt aber eine geringere Helligkeit mit sich. Ob
dir die Helligkeit dann noch ausreicht, steht auf einem anderen Blatt.
Aber wie gesagt: aktuelle LEDs sind mit 2mA schon recht hell. Auf solche
Status-LEDs wie die DONE-LED kommt bei mir nicht mehr drauf.
> Die Vorwärtsspannung der LED ist unabhängig vom Strom immer (annähernd)> gleich...
Im für die angegebene LED sinnvollen Bereich (1mA...50mA) haben wir da
immerhin 2,5V bis 3,5V.
> Wichtig ist das Timeingverhalten
Hoppla, das ist neu :-o
schmunzel natürlich schwankt die Spannung, aber beim Entwickeln einer
simplen Diode-Schaltung benutzt man üblicherweise ganz einfache
Abschätzungen. Dazu gehören nunmal simple Regeln und dass die Spannung
von der Diode im Arbeitspunkt stabil gehalten wird ist ja wohl allgemein
anerkannt. Übrigens: Du hast noch vergessen, dass die Temperatur noch
einen gewaltigen Einfluss hat, und schon wirds noch komplizierter.
Durch die Gedankenkette Weniger Spannung->weniger Strom->weniger
Lichtintensität habe ich mir mal die LED Verschaltung eines Spartan-3
Ev-Boards angeschaut. Die LEDs dort werden mit 7mA versorgt und liefern
ungefähr 0,4 mCd. Diese Helligkeit reicht nach meinem Geschmack aus.
Beim Durchschauen des Datenblattes meiner LED, habe ich erst jetzt
erkannt, dass sie mit mindestens 180mCd und max 500mCd daherkommt! Ich
kann jedoch nicht beurteilen,ob 180mCd viel zu stark wahrgenommen werden
und so eher störend wirken.
Einen Vorwiderstand werde ich folglich auf jedenfall einsetzen,wenn
nicht sogar das LED Modell wechseln.
Da sich die LED preislich im üblichen Rahmen befindet,wäre die starke
Helligkeit der einzige Grund, das LED Modell zu wechseln.Hat jemand
Erfahrungen mit solch hohen Werten?
@Rudolph
Die Xilinx Empfehlung betrachtet den Fall, dass man mit dem DONE Pin
eine LED UND einen Pin eines Xilinx Proms ansteuert. Ist bei mir jedoch
nicht der Fall
@Uwe Bonnes
Danke für den hinweisenden Link.