Forum: Mikrocontroller und Digitale Elektronik TLC5940 (6x kaskadiert) – LED blinkt nur kurz beim Einschalten, danach keine Funktion


von Karanvir (karan)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe das "4 Gewinnt" Spiel versucht auf einer Platine mit LEDs zu
realiseren. Dazu wurde ein LED-Raster aus 6x7 bicolor LEDs (Gelb und
rot) gewählt. Das ganze wird über ein Atmega328P angesteuert. Die LEDs
werden mithilfe von TLC5940 angesteuert. Es gibt 3 Taster, mit denen man
die Spalte quasi auswählt (also links oder rechts) und eine "OK" Taste
zum Bestätigen. Unter dem Raster ist noch eine LED Reihe, mit der man
die Spalte auswählt.
Ich habe die Schaltpläne anhehängt.

Aufbau:
Mikrocontroller: ATmega328P (16 MHz Quarz)
LED-Raster: 6x7 Bicolor LEDs (rot/gelb, gemeinsame Anode an 5V)
Ansteuerung: 6× TLC5940 (kaskadiert)
LED-Strom: ca. 18 mA (IREF = 2 kΩ)
Versorgung: 5V (USB)

Verkabelung TLC ↔ ATmega:
GSCLK → PD3 (Arduino D3)
BLANK → PB1 (D9)
XLAT → PB2 (D10)
SIN → PB3 (D11)
SCLK → PB5 (D13)
VPRG → GND
DCPRG → GND
XERR → nicht verwendet

Testaufbau:
Aktuell ist nur eine Bicolor-LED angelötet (OUT11/OUT12 des ersten TLC)
Rest der Schaltung vollständig bestückt

Nun zum Problem:
Ich habe die Platine bestellt und fast alle Bauteile aufgelötet. Zum
Testen habe ich nur eine bicolor LED angelötet und sonst sind alle
Bauteile angelötet.
Den Atmega habe ich via Arduino programmiert, dabei blitzt die eine LED
nur kurz auf beim Einschalten und blinkt nicht.

Bereits getestet:
Einzelner TLC auf Breakout + Arduino → funktioniert einwandfrei
GSCLK manuell getoggelt → LED reagiert
BLANK testweise LOW → keine Änderung
Spannung am OUT-Pin gemessen (~0.4V)
Verhalten beim Einschalten sporadisch (kein deterministisches Verhalten)

Der Code:
#include <Tlc5940.h>

void setup() {
  Tlc.init();
  Tlc.clear();
  Tlc.update();
}

void loop() {

  //LEDs ein
  Tlc.set(7, 0);
  Tlc.set(8, 0);
  Tlc.set(9, 0);
  Tlc.set(10, 0);
  Tlc.set(11, 0);
  Tlc.set(12, 0);
  Tlc.set(13, 0);
  Tlc.set(14, 0);
  Tlc.set(15, 0);
  Tlc.set(16, 0);
  Tlc.update();
  delay(1000);

  //LEDs aus
  Tlc.set(7, 4095);
  Tlc.set(8, 4095);
  Tlc.set(9, 4095);
  Tlc.set(10, 4095);
  Tlc.set(11, 4095);
  Tlc.set(12, 4095);
  Tlc.set(13, 4095);
  Tlc.set(14, 4095);
  Tlc.set(15, 4095);
  Tlc.set(16, 4095);
  Tlc.update();
  delay(1000);
}

Hat jemand eine Idee, woran es liegen könnte?
Insbesondere ob es ein Problem mit GSCLK Signal (Signalqualität
/Verteilung) oder BLANK / XLAT Timing
oder der Kaskadierung der TLCs sein könnte?

Vielen Dank!
Lg Karan

von Jörg R. (solar77)


Lesenswert?


von Karanvir (karan)


Lesenswert?

Sorry, hatte es im falschen Forum hochgeladen und dort lässt es sich 
irgendwie nicht löschen.

von Jörg R. (solar77)


Lesenswert?

Karanvir schrieb:
> Sorry, hatte es im falschen Forum hochgeladen und dort lässt es
> sich irgendwie nicht löschen.

Hallo,

ok, du bist neu im Forum. Da muss kann man nicht alles wissen und 
kennen.

Einen eigenen Thread kannst du nur innerhalb einer Stunde nach dem 
Erstellen löschen. Das aber auch nur solange kein Kommentar abgegeben 
wurde. Ausnahme mit der einen Stunde ist nur das Unterforum „Markt“. 
Hier kannst du unbegrenzt lange löschen und editieren..aber auch hier 
nur dann solange kein Kommentar abgegeben wurde.

In deinem Fall hättest du einen Moderator per PN anschreiben sollen, mit 
der Bitte den falsch eingestellten Thread zu verschieben.

Falls hier jetzt ein Moderator mitliest kann er den falsch eingestellten 
Thread ja löschen, bevor in Beiden die Diskussion losgeht.

Beitrag "TLC5940 (6x kaskadiert) – LED blinkt nur kurz beim Einschalten, danach keine Funktion"

von Markus M. (adrock)


Lesenswert?

Das Layout ist wild.

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.