Forum: FPGA, VHDL & Co. [Spartan 3e Starter Kit] - externe RGB-Led(s) anschließen


von Michi B. (bitschieber)


Lesenswert?

Hallo liebe uCMenschen,

ich bin Besitzer eines Spartan 3e Starter Kits in der Rev. D, besorgte 
mir dieses studienbegleitend für die Digitaltechnikpraktika an der Uni, 
da hdl fummeln mit einem Kaffee in der Hand und ein wenig Punk 
angenehmer ist als im sterilen UniLabor mit schlechten Öffnungszeiten 
und alter HW.

Nach dem Experimentieren und Testen von versch. Softcores und auch dem 
uClinux-microblaze core war schnell klar das man gerne mit externen 
Dingen spielen möchte die man an das Board anschließen kann.
Anfangs gedacht ist halt PWM Led cfoo in allen mgl Formen(klappt alles 
toll in vhdlpur und auch c), nur nun das kleine Problem...
(Sowas wie das Fnordlicht mit dem AVR, halt supersized mit einem fpga)

Habe es mit der Elektronik (noch) nicht so sehr, habe auf einem 
Steckbrett verschiedene Schaltungen aufgebaut um eine RGB-LED 
anzusteuern. Die Led besitzt 4 Beine, also ein gemeinsames Massebein. In 
meiner Denke bräuchte ich dazu einige Wiederstände und Transistoren. Ich 
habe hier eine Hand voll Standard BC547 npn und verschiedenste R.

Die (gerne erstmal eine) Led soll an 3 I/O Pins des Boards geschlossen 
[RGB] werden.
Auf einem Steckbrett habe ich verschiedene Transistor-Schaltungen 
aufgebaut und gemessen und gefummelt, und gemessen, und mich dann 
entschieden, da ich die Funktionsweise der ganzen verschiedenen 
Schaltungen nicht ganz verstanden habe, nicht so recht einordnen kann ob 
es nun pnp oder npn sein soll , sprich Grundprinzip, das Board doch 
nicht an die Schaltung anzuschliessen, da es nicht soooo günstig war und 
die Vorsicht dann doch mitspielt, nennt mich ruhig Feigling ;) .
(Die OptokopplerNummer muss es nicht sein).
Ein Transistor ist ja anscheinend mehr als ein einfacher Schalter.

Das Board liefert ~3.3 V, die Led hätte gerne 20mA, R(~2V) G(~3.5V) 
B(3.5V), zur Verfügung sind verschiedene Netzteile sowie 5V Bausteine.

Vielleicht findet sich jemand von Euch der mir das mal sinnvoll erklären 
kann und möchte und evtl. auch ein paar LED an seinen fpgastuff 
angeschlossen hat. Manchmal helfen 3 entscheidende Sätze mehr als 50 
Seiten Doku die es überall gibt.


Ich denke ich habe genug bei google, wiki und co gelesen um mal 
nachfragen zu können, da sich die meisten Schaltungen auf die 
verschiedensten uController beziehen, wenige Schaltungen direkt auf das 
Starter Kit, und zugegeben, die Hände sind immer ein wenig schwitzig 
beim hacken mit einem teuren Spielzeug. (Studis sind notorisch arm, 
versteht mich kurz ;) )

Nehmt mir bitte diesen aufgeblähten Transistor Fragezeichennebel vonne 
glotzn.

Arbeite mich grade in PSpice ein, wenn jemand eine passende Schaltung 
hat bitte posten.

Vielen Dank im voraus

Michi



von LED-Mensch (Gast)


Lesenswert?

LEDs kannst Du am FPGA direkt betreiben. Sollltest So um die 10-15mA 
ziehen. Bei 3,3V hast Du dann etwa 50% Wirkungsgrad: R=(3.3 - 1,7) / 
0,15

von Michi B. (bitschieber)


Lesenswert?

Ich möchte aber nicht eine oder ein paar LED anschliessen, sondern 
soviele LED wie ein FPGA/CPLD an freien Pins hat, also komme ich nicht 
um eine Schaltung herum um die Ströme zu handlen.
Ich denke bei so 50 LED die direkt angeschlossen werden kommt das aufm 
dem FPGA dann auch komisch von dem Verbrauch her oder ?!?

Danke

Michi

von Mike (Gast)


Lesenswert?

Am besten wäre wohl die BC547 in Emitterschaltung zu betreiben. Also 
Emitter an Masse, an den Kollektor das LED mit Vorwiderstand und die 
Basis über einen Widerstand an das FPGA anschliessen.

Für den Basiswiderstand brauchst du noch die Verstärkung des Transistors 
(ins Datenblatt schauen). Z.B. für Ausgangsstrom 10mA, Stromverstärkung 
100 müssen mindestens 0,1mA in den Transistor damit er vollständig 
durchschaltet.

@LED-Mensch: LEDs mit 3,5V Flussspannung wirst du kaum an 3,3V betreiben 
können.

von Mike (Gast)


Lesenswert?

Noch ein kleiner Nachtrag: 50 LEDs (Full RGB?) ergibt ziemlich viele 
Transistoren, Widerstände und Kabel. Wenn es deine PWM hergibt, dann 
wäre Multiplexen sehr sinnvoll.

von Falk (Gast)


Angehängte Dateien:

Lesenswert?

@Michi Bit

> Ich möchte aber nicht eine oder ein paar LED anschliessen, sondern
> soviele LED wie ein FPGA/CPLD an freien Pins hat, also komme ich nicht
> um eine Schaltung herum um die Ströme zu handlen.

Warum? Die IOs verkraften di Ströme. Und sie müssen so oder so irgendwie 
an die LEDs gebracht werden.

> Ich denke bei so 50 LED die direkt angeschlossen werden kommt das aufm
> dem FPGA dann auch komisch von dem Verbrauch her oder ?!?

Warum? Hast du eine Ahnung, welche Leistung so ein FPGA umsetzen kann 
wenn es richtig mit Logik vollgepackt ist und auf hohen Taktfreqeunzen 
läuft? Und dann noch ein paar fette RAMs dran, da kommt Hitze auf. Keine 
BAnge, das mit den LEDs passt schon.
Allerdings kannst du eben keine 3,5V LEDs mit 3,3V Ausgängen treiben. Da 
brauchts dann schon ne Treiberschaltung. Und MUXen ist prinzipiell im 
FPGA keine schlechte Idee.

Schau dir mal das Bild im Anghang an.
Dn AVR musst du dann durch das FPGA ersetzen.

MfG
Falk


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
Noch kein Account? Hier anmelden.