Hallo, ich habe eine 8x8 LED Matrix nach dem LED-Matrix Artikel aufgebaut erst mal in der Version mit den UDN2981a und ULN2803a Treibern. Hier ist der Link dazu: http://www.mikrocontroller.net/articles/LED-Matrix#Treiber Die Matrix soll im Multiplexverfahren arbeiten und die LEDs sollen auch per pwm gedimmt werden. Da ich mit FPGA und Mikrocontroller üben möchte, würde ich die LEDs erst mal mit dem FPGA ansteuern und später soll der Mikrocontroller die Berechnung übernehmen und dem FPGA über einen seriellen BUS (spi, i2c) Steuerbefehle geben. Habe aber ein Verständnisproblem, wie ich die ganzen Bildwiederholfrequenzen berechne. Habe mir diese LEDs für die Matrix gekauft: http://www.reichelt.de/LEDs-super-ultrahell/LED5-43-24000-WS/3/index.html?;ACTION=3;LA=5000;GROUP=A5332;GROUPID=3019;ARTICLE=126474;START=0;SORT=user;OFFSET=500;SID=11T9jPF38AAAIAAGE0K-00d3ad9028045a5c31903d2a8957452f0 Im Datenblatt dazu sind diese Werte. Maximale Werte Forward Voltage [VF] = 3.3V Continuous Forward Current [IF] = 25mA (Test Condition sind 20mA) Peak Forward Current [IFM] = 100mA Duty Ratio = 0.1% Pulse Width = 10us Wie dimensioniert man jetzt Die Bildwiederholfrequenz der ganzen Matrix? Sagt man z.B. man möchte das der volle Bildaufbau 100Hz hat, damit das Bild nicht flackert und dann rechnet man das auf die gegebene Matrix um? 1/100Hz = 0,01s Bei einer Matrix mit N Spalten soll jede Spalte 1/N der Zeit für einen vollen Bildaufbau an sein. 0.01s * (1/8) = 0,00125s = 1,25ms Für das LED Dimmen soll die Multiplexzeit einer Spalte gleich der PWM-Periodendauer sein. Die LEDs können laut Datenblatt mit 100mA geplust werden, ich denke ich sollte da auch nicht drüber gehen, sonst würde die Lebenserwartung der LEDs schneller sinken. Was ich nicht verstehe ist, wie kriege ich dieses Duty Ratio und Pulse Width mit der Spaltenmultiplexzeit zusammen. Ist Duty Ratio das gleiche wie Duty Cycle? Ist es so das die 10us Pulse Width, nur 0,1% (Duty Ratio) der gesamten Periode entsprechen, und man dann die gesamte Periode so ausrechnet: T = 10us * 1000 = 10ms (LED – Periodendauer = PWM - Periodendauer ), * 1000 um auf die vollen 100% zu kommen. Wie kriegt man jetzt diese LED-PWM-Periodendauer mit der Multipexzeit zusammen? Die Auflösung der PWM z.B. 8 Bit, wird damit dann die ganze PWM Periodendauer in 256 Abschnitte eingeteilt oder nur der Puls? Gruß
@ bernd olsen (predator7) >Duty Ratio und Pulse Width mit der Spaltenmultiplexzeit zusammen. Ist >Duty Ratio das gleiche wie Duty Cycle? Ja. >T = 10us * 1000 = 10ms (LED – Periodendauer = PWM - Periodendauer Streng genommmen stimmt das. Praktisch hält sich keiner dran und die LEDs überleben das ganz gut. D.h. du kannst deine LEDs auch 1,25ms mit 100mA Pulsstrom betreiben. >Die Auflösung der PWM z.B. 8 Bit, wird damit dann die ganze PWM >Periodendauer in 256 Abschnitte eingeteilt oder nur der Puls? Wo ist für dich der Unterschied? Beim Multiplexen ohne PWM wird jede Spalte mit hier im Beispiel 1,25ms pulsartig eingeschaltet, das ist gleichbedeutentd mit 100%. Mit PWM muss man die 1,25ms nochmals unterteilen, um die Helligkeit verringern zu können. Die PWM hat also 800 Hz, daran sieht man, warum sowas meist mit Hardwareunterstützung machen muss, weil Soft-PWM hier meist an die Grenzen des sinnvoll machbaren stößt.
> Wie dimensioniert man jetzt Die Bildwiederholfrequenz der ganzen Matrix? Dafür sind eher die ULN2803 und UDN2981 zuständig, und die sind ziemlich langsam. Wenn 100Hz reichen, nimmt man für 8 Zeilen 1/800 Sekunde pro Zeile, bei einem Strom von 100mA damit im Schnitt die LED 12.5mA bekommt. Wenn du nun jedoch dimmen willst, da gibt es ja 2 Methoden (bei 8 bit). Die LED statt 1/800 Sekunden nur 0/204000 bis 255/204000 Sekunde an lassen, oder die LED mit dem niederwertigsten bit des Dimmwerts beschicken und 1/204800 Sekunde warten, das nächstniederwertige bit nehmen und 2/204800 Sekunde warten, das drittniedrigste und 4/204800 bis zum höchstwertigen bit und 128/204800 Sekunde warten. Letzteres Verfahren wird mit den langsamen Treibern nicht funktionieren, obwohl das FPGA schnell genug waäre. Das erste Verfahren wird zwar keine lineare Helligkeit liefern, aber irgendwie schon gehen. Daher nimmt man besser MOSFETs und Konstatstromtreiber wenn man so schnell dimmen will. http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.8.1
Dann würde ich doch mit MOSFET's die Schaltung aufbauen, die Schaltung ist auch im LED-Matrix Artikel. http://www.mikrocontroller.net/articles/LED-Matrix#MOSFETs Ich habe mir einen MOSFET-Treiber ausgesucht, den IR2113, den würde ich dann für die HIGH- und LOW-Side verwenden. Hier ist der Link für Reichelt: http://www.reichelt.de/ICs-CA-ISD-/IR-2113/3/index.html?;ACTION=3;LA=446;ARTICLE=41572;GROUPID=2910;artnr=IR+2113 Im Datenblatt dazu sind N-Kanal Mosfets für die HIGH- und LOW-Side eingetragen, aber im LED-Matrix Artikel sind für die LOW-Side (Kathoden) N-Kanal und für die HIGH-Side (Anoden) P-Kanal Mosfets benutzt worden, Spielt das eine Rolle ausser der Stromrichtung, oder könnte ich für alles N-Kanal Mosfets verwenden? An dem FPGA kann ich nur 3,3V maximal ausgeben.
> Ich habe mir einen MOSFET-Treiber ausgesucht Du brauchst keine MOSFET-Treiber für so was simples wie eine LED-Matrix.
Ich habe gelesen das man die mosfet's nicht direkt über die Ausgänge des mikroControllers/FPGA steuern sollte, da wegen der Gatekapazität und des umladens bei hohen Frequenzen doch gössere Ströme fliesen könten und das das die Ausgänge belastet. Was nimmt man denn da normalerweise z.B. (Ausser jetzt einem Mosfet-Treiber der für diesen Fall überdimensioniert wäre) Schieberegister, Pegel-Shifter, ..., um den Controller nicht zu belasten?
> Ich habe gelesen das man die mosfet's nicht direkt über die Ausgänge des > mikroControllers/FPGA steuern sollte, da wegen der Gatekapazität und des > umladens bei hohen Frequenzen doch gössere Ströme fliesen könten und das > das die Ausgänge belastet. Die üblichen 20mA sind lang ausreichend für eine LED-Matrix. > Was nimmt man denn da normalerweise z.B. (Ausser jetzt einem > Mosfet-Treiber der für diesen Fall überdimensioniert wäre) > Schieberegister, Pegel-Shifter, ..., um den Controller nicht zu > belasten? Maximal braucht man Pegelwandler vom 3.3V FPGA zu den 5V der Matrix-Versorgung, dazu tun es billige 74HCT244, bei mehr CD40109.
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.