Forum: Mikrocontroller und Digitale Elektronik Schaltung mit TLC5971 funktioniert nicht


von Dominik S. (mrjazzycharon)


Angehängte Dateien:

Lesenswert?

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.

von Paul B. (paul_baumann)


Lesenswert?

Ich lese auf den Widerständen "2R49" d.h. 2,49 OHM statt 2,49 KOhm!

Ob das Programm in Ordnung ist, kann ich nicht sagen. C ist nicht mein 
Metier.

MfG Paul

von Dominik S. (mrjazzycharon)


Lesenswert?

Tatsächlich, danke! Was für ein blöder Fehler. Und im Datenblatt steht 
auch, dass das direkte Verbinden mit Masse die Ausgänge deaktiviert. Das 
könnte die Lösung sein. :)

Beitrag #6019093 wurde von einem Moderator gelöscht.
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.