Bei einer LED-Matrix hat man ja in "Zeilen" die Schalter (auch
Pull-Stufe) gegen GND und in "Spalten" die Schalter (Push-Stufe) gegen
VCC (oder umgekehrt, versteht sich). Gegen GND gibt es diverse ICs z.B.
TLC5921 (Schieberegister) oder UDN2903 (Darlington-Array). Eine ganze
Liste solcher ICs findet man auch im Wiki-Artikel auf
mikrocontroller.net.
Allerdings finde ich keine Quelle für den VCC-Teil. Klar, man kann
Transistoren nehmen. Aber gibt es keine ICs für diesen Zweck? (Natürlich
gibt es Schieberegister mit Push-Pull-Stufe, aber deren Belastbarkeit
reicht höchstens für 2-4 normale LEDs.)
Weil die Wärmeverluste für ICs zu hoch werden, da fließen dann schonmal
über 5A durch.
P-FETs haben dazu noch ne 3 mal schlechtere Transistorkonstante als
N-FETs.
Bei meinem 4x16 Display aus 16Seg Anzeigen wollen 8,3A geschalten
werden.
@Hannes,
ein Spaltreiber muss mehr als 500mA pro Kanal können.
500 mA würden reichen, maximal 16 Spalten mit maximal je 20 mA. Das ist
also nicht so wild, bloss dass ich im Gegensatz zur Pull-Seite keine
prakischen ICs gefunden habe.
Willste jeweils nur eine LED leuchten lassen?
Irgendein Treiber (Spalte/Zeile) bekommt ordentlich Strom ab, wegen
Multiplex und vielen LEDs.
Mal für 8x8 durchrechnen (Zeile auf GND und Spalten zusammengeschalten
auf VCC).
Durchs Multiplexen 8:1 muss schonmal der 8 fache Strom durch die LEDs,
damit diese einem noch so hell vorkommen wie einzeln angesteuert (8x20mA
= 0,16A).
Jetzt hängen am Spaltentreiber aber 8LEDs zu 0,16A -> 1,28A UPS, sind ja
mehr als 0,5A ;)
Also rück mal mit mehr Infos zur Größe etc rüber.
Ne Kombi aus 2903 und 281 wird also nüscht ;)
Der 2903 kann auch nur 120mA bei allen 8 Kanälen und nicht 160 (gleicht
sich durch Mittelwertbildung aber wieder aus).
Martin Wende schrieb:> Durchs Multiplexen 8:1 muss schonmal der 8 fache Strom durch die LEDs,> damit diese einem noch so hell vorkommen wie einzeln angesteuert (8x20mA> = 0,16A).> Jetzt hängen am Spaltentreiber aber 8LEDs zu 0,16A -> 1,28A UPS, sind ja> mehr als 0,5A ;)
Das Array wird tatsächlich auch im Multiplexbetrieb mit 20 mA pro LED
angesteuert, nicht mehr. Ich habe auch etwas gestaunt, allerdings war
der Prototyp wirklich ordentlich hell für den angestrebten Zweck.
Der 2903 kommt in der Tat nicht in Frage, der schafft zu wenig. Ich
tendiere jetzt aber zu einer Lösung mit TLC5921 und UDN2981 bzw. dem
kompatiblen A2982. Bei maximal 16 x 16 und 20 mA Pulsstrom pro LED
sollte das doch gehen?
Hi,
und Du hast den Prototypen auch wirklich unter den gleichen
Voraussetzungen betrieben? Also nur 1/16 der Zeit 20mA auf die LEDs?
Bei meinem letzten Matrix-Projekt habe ich sogar aus einer eigentlich
12x12 Matrix eine 24x6 gemacht, weil mir bei 1/12 die LEDs (blau,
superhell) schon zu dunkel waren, und das trotz höherem Strom (100mA
wenn ich mich richtige erinnere)...
Für die 24 Spalten, in meinem Fall die Low-Side, hatte ich dann 3x
ULN2803 genommen, für die High-Side (6 Zeilen) 6x P-FETs (IRF5305)...
etwas überdimensioniert, aber egal :-)
Grüße
Markus
Hey Markus,
ich habe das Timing mal angehängt. Ca. alle 0,5ms wird ein Burst (SCKx)
von 16Bit (Zeile+Spalte) gesendet. Anschließend wird mit dem
Latch-Signal die LED-Zeile aktiv geschaltet. Dann wird die nächste Zeile
geschrieben. Das ganze für 8 Zeilen. Nach 8 Zeilen geht es wieder von
vorne los(8x8 Matrix). Also ist das Verhältnis eher 1/8.
Das Senden der 16 Bit erfolgt Interrupt gesteuert mit der USI-HW des
msp430g2452 von TI, also mehr oder weniger ohne SW :-)
http://www.ti.com/product/msp430g2452
Ich kenne ja Deine Schaltung und Spannungen nicht. Bei den FETs muss man
immer darauf achten, dass die GS- oder Drain-Source-Spannung richtig
demensioniert wird, sonst sind die nicht niederohmig genung und es wird
dunkel :-).
Gruß, G.L.