Forum: Mikrocontroller und Digitale Elektronik TLC5940 - Dot Correction: Ausgänge schalten zufällig


von Michael S. (schlotten)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich bin neu hier und habe im Rahmen eines Projekts im Studium Probleme 
mit der Ansteuerung des TLC5940 mit dem Mikrocontroller RL78 von 
Renesas:

Ziel ist es einen 4x4x4 RGB-LED-Würfel anzusteuern, wie ihr ihn sicher 
kennt. (RGB-Kathoden in Säulen verbunden, Common Anode in Ebenen 
zusammengefasst, Ebenen über Transistoren nacheinander durchschalten mit 
entsprechendem Muster an TLCs für die 3x16 LEDs (Rot, Grün, Blau) der 
jeweiligen Ebene).

Das Durchschalten der Ebenen funktioniert einwandfrei. Nur haben wir 
Probleme mit den Ausgängen des TLCs.
Wir betreiben diesen im DC-Mode (Dot Correction):

VPRG = High
BLANK = LOW
DCPRG = High
GSCLK = Low
2kOhm als Referenz-Widerstand
100nF-Kondensator zwischen VCC und GND

Da wir später 3 TLC in Reihe schalten wollen, schieben wir dort 3x96 
Bits (also 36 Bytes) über SIN in den Treiber. Schnittstelle haben wir 
selbst geschrieben über Timer-Interrupt (aber auch mit CSI-Modul) 
ausprobiert.
Auf dem Oszilloskop stimmen die Signale samt XLAT zur Übernahme mit dem 
Timing Chart im Datenblatt überein.
Senden wir nur Nullen sind die LEDs auch aus.
Aber senden wir nur Einsen (also alle Ausgänge sollen LEDs schalten mit 
maximalem Strom) sind immer wieder verschiedene LEDs ein bzw. aus. Mal 
alle, mal nur zwei, oft etwa die Hälfte.
Bei nur Nullen nie Probleme.

Haben schon einiges ausprobiert:
- anderen Referenzwiderstand
- andere Frequenz
- anderes TLC
- andere Kondensatoren
- andere Verdrahtung
- anderes Bitmuster
- andere Anzahl von Bytes (1, 12 nur für einen TLC etc.)

Betreiben den TLC mittlerweile minimal. Was geht haben wir 
festverdrahtet, keine Transistoren auf dem Steckbrett oder weitere TLCs. 
Leider keine Verbesserung.

Zu sagen ist, dass wir ein Demostration Kit von Renesas nutzen, auf dem 
an den Pins weitere Peripherie festangeschlossen ist. Das ist nicht 
optimal, aber die Signale sind wie gesagt glasklar auf dem Oszilloskop.

Man wundert sich, dass bei konstantem Low-Pegel auf SIN die LEDs dunkel 
bleiben, aber bei konstantem High-Pegel die Leds zufällig leuchten oder 
aben nicht.

Falls darauf jemand einen Rat weiß bzw. sieht, was wir falsch machen, 
wäre ich für einen Hinweis sehr dankbar.

Habe den Quellcode angehängt, falls es jemanden interessiert.

Vielen Dank im Voraus

Michael

von Falk B. (falk)


Lesenswert?

Habt ihr das Signal BLANK ordentlich verdrahtet und angesteuert?

von Michael S. (schlotten)


Lesenswert?

Das liegt bei uns konstant auf Low. Wir dachten das spielt nur beim 
GS-Mode eine Rolle, da es in den Timing Charts bzgl. DC-Mode entweder 
Low oder gar nicht aufgeführt ist. Haben wir da was übersehen?

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.