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