Schaltung mit TLC5971 funktioniert nicht

OP #5152406
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.
Angehängte Dateien:
Beitrag #6019093 wurde von einem Moderator gelöscht.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.