Hallo liebe Elektronikfreunde,
ich habe eine Schaltung entworfen, in welcher RGB-LEDs vom Typ
ASMT-YTC7-0AA02 mit einem TLC5971 angesteuert werden sollen. Leider
wollen die LEDs nicht leuchten und ich bin nicht in der Lage, den Fehler
zu finden.
Im beigelegten Bild sieht man die Platine. Die Leiterbahnen sind so gut
zu erkennen, dass ein Schema vielleicht nicht unbedingt notwendig ist.
Sowohl der Mikrocontroller als auch die beiden TLC5971 werden mit einer
5V-Spannungquelle versorgt. Zur Erzeugung des Steuersignals habe ich
sowohl mehrere Varianten in C programmiert als auch Internetquellen
ausprobiert. Dieser Code-Auszug einer Variante sollte Fragen bzgl. der
Ansteuerung klären:
1 | void write(uint8_t d) {
|
2 | for (int i = 0; i < 8; ++i) {
|
3 | PORTB &= ~(1<<LEDS_CLK_PIN);
|
4 | if (d & (1<<(7-i))) {
|
5 | PORTB |= 1<<LEDS_DATA_PIN;
|
6 | } else {
|
7 | PORTB &= ~(1<<LEDS_DATA_PIN);
|
8 | }
|
9 | _delay_us(2);
|
10 | PORTB |= 1<<LEDS_CLK_PIN;
|
11 | _delay_us(2);
|
12 | }
|
13 | }
|
14 |
|
15 | int main() {
|
16 | uint8_t data[4] = { 0x94, 0x5F, 0xFF, 0xFF };
|
17 | while (1) {
|
18 | for (int k = 0; k < 2; ++k) {
|
19 | for (int i = 0; i < 8; ++i) {
|
20 | if (i > 3) {
|
21 | write(k==0?0x55:0x54);
|
22 | write(0x55);
|
23 | write(0x55);
|
24 | write(0x55);
|
25 | write(0x55);
|
26 | write(0x55);
|
27 | } else {
|
28 | write(data[i]);
|
29 | }
|
30 | }
|
31 | }
|
32 | PORTB &= ~(1<<LEDS_CLK_PIN);
|
33 | _delay_ms(500);
|
34 | }
|
35 | }
|
(Die Schleife mit der Variablen k dupliziert den Output, um die beiden
verketteten TLCs anzusteuern.)
Das digitale Steuersignal am SDTI und SDKI ist am Oszilloskop sehr gut
und deutlich zu erkennen. Das Signal liegt auch am SDTO und SDKO
erwartungsgemäß um 224 Bits verzögert an, das Schieberegister des
TLC5971 arbeitet also.
Die LEDs wollen aber leider nicht leuchten, bzw. die Kollektoren im
TLC5971 ziehen die LED-Kathoden niemals in Richtung Masse.
Berühre ich mit dem Oszilloskop-Tastkopf die Kathoden der LEDs (deren
Anoden mit 5V verbunden sind) beginnen sie etwas zu leuchten, die LEDs
sind also intakt.
Ich bin mit meinem Latein leider am Ende und würde mich sehr freuen,
wenn mir jemand von euch weiterhelfen könnte. Der Sachverhalt ist ja an
sich eigentlich nicht besonders kompliziert.