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)
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.