Hallo, ich versuche aus LED-Matrix die Variante "Multiplexansteuerung mit Special-ICs" nachzubauen: 2 Zeilen x 55 Spalten, die Zeilen werden per IRF7401 geschaltet, die Spalten per TLC5940, Zeilenfrequenz: 1kHz. Ansteuerung über einen ATMega 168, der mit 16MHz läuft. Prinzipiell funktioniert auch alles (incl. Grayscale PWM des TLC5940), allerdings glimmen bei mir inaktive LEDs einer Zeile, wenn die zugehörige LED in der anderen Zeile aktiv ist. Zur Fehlersuche habe ich meine Schaltung auf den angehängten Schaltplan reduziert. LED_ROW0_COL0 soll leuchten und LED_ROW1_COL0 soll aus bleiben. LED_ROW0_COL0 leuchtet auch wie gewünscht, allerdings ist LED_ROW1_COL0 nicht komplett aus, sondern glimmt leicht. Ich hab schon an dem Timing herumgespielt (bis zu 1024 nops nach dem Abschalten der Zeilentreiber), aber LED_ROW1_COL0 glimmt munter weiter vor sich hin. Mir gehen jetzt die guten Ideen aus, woher das Glimmen kommen kann :-( Habt ihr noch Tipps, was ich untersuchen kann? Leider beschränkt sich mein Messgeräte-Equipment auf ein Multimeter und einen simplen Parallelport-Logic-Analyzer. Nun noch ein paar erklärende Worte zu Schaltung und Programm: Die Schaltung folgt dem LED-Matrix Artikel, verwendet statt dem TLC5921 aber einen TLC5940. Das zusätzliche GSCLK-Signal für die PWM der Konstantstromsenken erzeuge ich mit dem timer/counter 2 des AVR. Die IRF 7401 Mosfets zum Schalten der Zeilen steuere ich über einen ICL 7667 an. Die ganze Schaltung läuft mit 5V. Wenn ich mich mit den Datenblättern nicht vertan habe, müssten sowohl der ICL7667, als auch der IRF7401 mit 5V ordentlich laufen. Zum Testen ist der Strom, den der TLC5940 aufnimmt durch den 2kOhm Widerstand an IREF auf 20mA beschränkt. Als LEDs verwende ich weiße Osram LUW-T6SG, die verkraften dauerhaft 20mA. Wenn die Matrix sauber läuft, will ich den Strom auf 60mA erhöhen, dann brauchen sie aber zwischenzeitlich eine Pause. Bei 60mA passen Spannungsabfall am TLC5940 (1V) und Spannungsabfall an der LED (4V) so gerade zur Versorgungsspannung von 5V. Der Code wird durch die Dokumentation hoffentlich gut erklärt, spannend ist hier nur die Funktion ISR(TIMER2_OVF_vect) ab Zeile 127. Der Rest ist Initialisierung. Der TLC5940 erwartet pro Ausgang 12 Bit, diese stehen für Zeile 0 in dem Array gsdata_row0 (Zeile 65) und für Zeile 1 in dem Array gsdata_row1 (Zeile 72). Momentan soll in Zeile 0 die an OUT0 angeschlossene LED mit der niedrigsten PWM-Intensität des TLC5940 leuchten. D.h. nach einem Puls an GSCLK soll sie wieder verlöschen. Das heißt, der Ausgang OUT0 müsste schon durch den TLC5940 lange abgeschaltet worden sein, bevor ISR(TIMER2_OVF_vect) das nächste Mal die Zeilen umschaltet. Ich hoffe auf wertvolle Tipps, wie ich dem Glimmen auf den Grund gehen kann (bzw. woher es kommt) und es der Schaltung austreiben kann. Oder darauf, dass ich blind bin und einen offensichtlichen Fehler nicht erkenne ;-) Danke für Eure Hilfe im Voraus! P.S.: Die LED-Matrix soll in einer Word Clock zum Einsatz kommen. Hinter der Diffusor-Schicht sollte das Glimmen nicht mehr auffallen. Ich habe aber Bedenken, dass die LEDs durch das Glimmen nie ganz aus sind. Bei den geplanten 60mA pro LED vertragen sie aber nur noch einen Duty Cycle von 0.5 laut Datenblatt. Und ich wollte nicht nach ein paar Monaten die vorschnell gealterten LEDs der Uhr austauschen :-/
Ich bin etwas weiter gekommen: Ich habe an die Drain-Anschlüsse des IRF7401 jewils noch eine LED mit 1k Vorwiderstand nach Masse angeschlossen (LED2 und LED3 im Schaltplan). Jetzt glimmt LED_ROW1_COL0 nicht mehr. Das riecht mir jetzt nach einer ungewollten Kapazität, die sich vorher über LED_ROW1_COL0 und den TLC 5940 entladen hat, wenn dieser für ROW0 eingestellt war. Woher kann diese Kapazität kommen? Verkabelung (momentan ist alles auf einem Steckbrett aufgebaut)? Oder liegt das daran, dass der IRF7401 im Testaufbau momentan nur 20mA schaltet und dafür hoffnungslos überdimensioniert ist? Grüße Heiko
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.