Forum: Mikrocontroller und Digitale Elektronik TLC5947 ansteuern, dass kein Flackern entsteht


von Naturfreund (Gast)


Lesenswert?

Hallo,

ich habe 8 Stueck RGB Leds an einem TLC5947 hängen. Gefüttert wird der 
TLC5947 von einem ATMega. Nun ist es lt. Datenblatt des TLC5947 so, dass 
alle Ausgänge bis zur nächsten PWM Periode auf LOW gesetzt werden wenn 
neue Daten in den TLC5947 übernommen werden.

Ich toggele also meine gewünschten Helligkeiten in den TLC5947 ein und 
zieh XLAT zum übernehmen der Daten HIGH und alle LEDs sind bis zum 
nächsten Zyklus aus. Das macht sich als Flackern bei Fades bemerkbar.

Das Datenblatt bestätigt dies:
1
The data in the grayscale shift register are moved to the grayscale data latch with a low-to-high
2
XLAT transition on this pin. When the XLAT rising edge is input, all constant current outputs are forced off until the next grayscale display period. The grayscale counter is not reset to zero with a rising
3
edge of XLAT.

Das kann doch nicht Sinn der Sache sein?

Was kann ich dagegen tun? Nur kurz vor Ende einer PWM Periode XLAT 
setzen um das Flackern zu minimieren? Woher weiss mein ATMega wann eine 
PWM Periode um ist?


Any Ideas?


N:F

von Falk B. (falk)


Lesenswert?

@  Naturfreund (Gast)

>alle Ausgänge bis zur nächsten PWM Periode auf LOW gesetzt werden wenn
>neue Daten in den TLC5947 übernommen werden.

>nächsten Zyklus aus. Das macht sich als Flackern bei Fades bemerkbar.

>Das kann doch nicht Sinn der Sache sein?

Doch, denn sonst würden sie auch komisch flackern. Müsstem zusätzlich 
zwischenpuffern, das kostet FlipFlops und damit Siliziumfläche.

>Was kann ich dagegen tun? Nur kurz vor Ende einer PWM Periode XLAT
>setzen um das Flackern zu minimieren? Woher weiss mein ATMega wann eine
>PWM Periode um ist?

Indem du BLANK nutzt, um den PWM-Zähler IM TLC zurückzusetzen. Siehe 
Datenblatt. Das Problem ist dabei aber, dass der ansteuernde IC eine 
definierte Anzahl Takte ausgeben muss, um eben dieses Schema 
einzuhalten. Ein AVR könnte dabei ein wenig ins Schwitzten kommen. Man 
kann aber sicherlich einen Timer mit Output Compare dazu nutzen. Ist 
aber ein wenig tricky.

MFG
Falk

von Bitte einen Namen eingeben (Gast)


Lesenswert?

Da würde ich gern nochmal nachhaken! Kann man also mit dem TLC5947 also 
eine einzelne LED an einem seiner Ausgänge bis "auf 0" dimmen?

Am besten natürlich ohne Flackern :-)

THX!

von Falk B. (falk)


Lesenswert?

@Bitte einen Namen eingeben (Gast)

>Da würde ich gern nochmal nachhaken! Kann man also mit dem TLC5947 also
>eine einzelne LED an einem seiner Ausgänge bis "auf 0" dimmen?

Sicher.

>Am besten natürlich ohne Flackern :-)

Auch das.

MFg
Falk

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Wie sieht es mit dem PCA9626 aus?
Gibt es auch hier ein Flackern beim Faden?
PS: Datenblatt habe ich noch nicht durchgearbeitet. Vielleicht weiss das 
ja jemand und kann es kurz erklären.

Ich bin heute wohl nicht ausgeschlafen: Wie kann man das Flackern beim 
Faden (TLC...) verhindern? Ich stehe wohl gerade etwas auf dem Schlauch 
bezüglich BLANK.

von Falk B. (falk)


Lesenswert?

@Christian H. (netzwanze) Benutzerseite

>Ich bin heute wohl nicht ausgeschlafen: Wie kann man das Flackern beim
>Faden (TLC...) verhindern? Ich stehe wohl gerade etwas auf dem Schlauch
>bezüglich BLANK.

Indem man es einfach so macht, wie es im Datenblatt beschrieben ist.

;-)

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Falk Brunner schrieb:
> Indem man es einfach so macht, wie es im Datenblatt beschrieben ist.

Ah, das steht dort drin?
Dann hatte ich diesen Thread missverstanden. Ich dachte, diese Info 
müsste man sich anderweitig erarbeiten.

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.