Forum: Mikrocontroller und Digitale Elektronik LED-Treiber IS31FL3737


von Bernd I. (Firma: Ickert-Elektronik) (bernd2201)


Lesenswert?

Ich probiere mich mit einem LED-Treiber IS31FL3737 und bin nun am Ende 
meines Lateins.
Der Treiber kann eine Matrix 12 x 12 LED (= 144) ansteuern, die ich auch 
komplett nutze, indem ich 48 RGB-LED's angeschlossen habe (48 x 3 = 144 
Einzel-LED's).
Die Hardware habe ich so benutzt, wie im Applikations-Beispiel des 
Datenblattes angegeben. Kleiner Unterschied:
Der PIN "IICRST" liegt nicht am Prozessor, sondern direkt an VDD. Ein 
Low an diesem Pin bewirkt ein Hardware-Shutdown. Er ist also permanent 
"Hardware-Ein-Geschaltet".
Spannung liegt an (VDD = 3,3V) und der Mikrokontroller (PIC18F67K22) 
steuert per I2C den Treiber.
Den I2C-Datenverkehr habe ich per Oszilloskop kontrolliert, sieht alles 
Tip-Top aus. Ich bekomme nach jedem Byte den ACK vom Treiber. Der 
Treiber kann bis 1 MHz, ich schreibe (zunächst) mit 500 kHz.
Für alle, die den Treiber gern mal selbst ausprobieren möchten als 
kleine Anleitung und für alle, die den Treiber schon "gefressen" haben 
zur Durchsicht, ob sie etwas sehen, was ich vergessen haben könnte:
Wenn ich es richtig verstanden habe, muss vor JEDEM Ändern der 
Configurationsregister (CCR = FDh) dieser erst frei geschaltet werden, 
indem man den Command Register Write Lock (CRWL = FEh) mit C5h 
beschreibt. Ich hatte es mit NUR EINMAL nach dem Einschalten probiert, 
aber nun auch vor jedem neuen Ändern der CCR. Kein Ergebnis, nichts 
leuchtet.
Ich sende also nach I2C-Manier wie folgt:
- Adresse des Treibers ansprechen zum Schreiben, Warte auf ACK, OK
- FEh, C5h (alles natürlich je mit I2C-Start-Condition, Warten auf ACK, 
Stop- am Ende). Nennen wir das Ganze ab sofort "Freischalten"
Weiter:
Adresse (Write); FDh; 03h (Funktionsregister); 00h (1. Register = 
Configuration des Operations-Modus); 01h (Modul einschalten); 64h (in 2. 
Register = Global-Strom für alle LED z.B. 100 von 0-255 möglichen PWM 
eintragen).
Durch die Auto-Increment-Funktion wird also die 100 (64h) automatisch in 
das 2. Register eingetragen.
Dann wieder das "Freischalten" und setzen der LED-Control-Register:
Adresse (Write); FDh; 01h (PWM-Controll-Register); 12 x 64h
d.h. in die ersten 12 Register setze ich die 64h, d.h. die 12 LED's (von 
"CS1" bis "CS12") auf der Leitung "SW1" sollten nun einen PWM-Wert 
besitzen.
Nach dem "Freischalten" setze ich nun noch die entsprechenden LED auf 
ON:
Adresse (Write); FDh; 00 (LED-Control-Register); 00 (1. Register für 
"CS1-6"); 00111111b (6 LED's CS1-CS6 einschalten); 00111111b (6 LED's 
CS7-12 einschalten).
NICHTS leuchtet.
Ich habe das Datenblatt von Vorn bis Hinten (Fehler!!!) und von Hinten 
nach Vorn (Richtig!!) gelesen - aber kann nichts mehr entdecken. Wie in 
so vielen Datenblättern stehen auch hier erst am Ende so kleine aber 
wichtige grundsätzliche Details (wie z.B. den Hardware-Shutdown), die 
unbedingt zu beachten sind. Das mal so nebenbei bemerkt...
Es leuchtet absolut nichts, auch wenn ich dann die anderen LED- und 
PWM-Register ebenso komplett eingeschaltet hatte. Ja - und die LED's 
sind richtig herum angeschlossen, alles penibel und 3 mal 
kontrolliert!!!

Hat jemand diese "Ding" schon mal benutzt???
Liebe Grüße, Bernd

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.