Forum: Mikrocontroller und Digitale Elektronik TLC5940 an Atmega32 will nicht


von Danny (Gast)


Angehängte Dateien:

Lesenswert?

Ich versuche nun seit zwei Tagen einen TLC5940 an meinem atmega32 zu 
betreiben.

Die eigene Implementation nach Datenblatt hat überhaupt nicht 
funktioniert. Daher mache ich mich auf die suche nach einer Library. 
Mittlerweile habe ich zig Versionen gefunden und nochmals so viele 
selbst angepasst (z.B. von Arduino nach atmega32).

Hängen geblieben bin ich bei der folgenden:
https://sites.google.com/site/artcfox/demystifying-the-tlc5940

Mein atmega32 läuft mit 16MHz mit einem externen Quarzoszillator. Soweit 
noch kein Problem.

Beim TLC5940 habe ich an den Pull-Up von 10k für BLANK, den geforderten 
0.1uF C zwischen VCC/GND und 2.2k Widerstand zwischen IREF/GND (ca. 
18mA) gedacht.

Da der atmega328 eine andere Pinbelegung hat als meiner, habe ich 
gewisse Pins in tlc5940.h gewechselt. So dass der MOSI -> SIN, SCK -> 
SCLK zeigt.
Und den GSCLK vom TLC5940 wusste ich erst nicht was damit machen, da 
dieser beim atmega328 auf den CLKO verbindet. Mein atmega32 hat aber 
keinen solchen Pin. So habe ich einfach den GLSCK Pin an meinen XTAL1 
(ext. RC Osz.) gehängt.

Soweit richtig?

Alles was ich hinbekomme ist beim Verbinden des Breakboards mit Energie 
ein kleines flackern einzelner LEDs die an den OUT0-15 hängen (Bruchteil 
einer Sekunde).

Ein einziges mal habe ich es geschafft in dieser Konstellation die LEDs 
zum leuchten zu bringen. Beim nächsten Programmen (JTAG mit ICE3) ging 
wieder nichts mehr.

Als Anhang noch meine verwendete tlc5940.h (eingige wo was geändert 
wurde)

von Georg G. (df2au)


Lesenswert?

Danny schrieb:
> So habe ich einfach den GLSCK Pin an meinen XTAL1
> (ext. RC Osz.) gehängt.

Und du hast natürlich auch kontrolliert, dass an diesem Pin ein Takt 
herauskommt, der mit den TLC Datenblatt Angaben kompatibel ist.

von Danny (Gast)


Lesenswert?

Georg G. schrieb:
> Und du hast natürlich auch kontrolliert, dass an diesem Pin ein Takt
> herauskommt, der mit den TLC Datenblatt Angaben kompatibel ist.

Wenn ich dies lese, weiss ich schon mal das was nicht passen kann ... 
Denke das war jetzt ne ironische Aussage.

Die einzige Einschränkung die ich gelesen habe sin die 30MHz, die ich 
sicherlich nicht überschreite...

Die vielen Beispiele verweisen immer auf SCLK. Aber das hat meiner 
nicht. Und gemäss Datenblatt des Atmega328 macht der nichts anderes als 
den anliegenden Clock auszugeben.

Betreibe das als Hobby und bin kein ausgebildeter Elektroniker. Daher 
auch sehr Dankbar für konstruktives Feedback. Möchte daraus lernen und 
wissen was falsch ist. Benötige keine Komplettlösung.

von Georg G. (df2au)


Lesenswert?

Dann nimm doch mal ein Scope und schau dir die Pegel an.

von Danny (Gast)


Lesenswert?

Da ich erst in das Hobby eingestiegen bin verfüge ich natürlich über 
keine Logic Analyzer oder Oszis.

Alle Beispiele im Netz benutzen für die Interrupt Variante einen zweiten 
Timer der den Takt für GSCLK angiebt oder den CLKO Pin.

Mein Atmega32 hat wie gesagt keinen CLKO. Zwei weitere 8-bit Timer hat 
er, aber da kann der Topwert nicht für FastPWM konfiguriert werden.

Was ist die die einfachste Lösung den Systemtakt von einem externen 
Quarz oder Quarz-Oszillator zu verwenden, welches dann die richtige Form 
hat? Da ich zwischendurch immer mal wieder ein Licht flackern sehe, 
liegt es definitiv am falschen Signal.

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.