Liste der Anhänge anzeigen (Anzahl: 1)
TLC59116 Led Treiber
Hallo,
Ich versuche schon seit langer Zeit den Led Treiber von Atmel (TLC59116) per I2C Bus in gang zu bekommen. Jedoch klappt das mit dem I2C Bus überhaupt nicht. Kann mir bitte jemand helfen? Sonst verzweifle ich so langsam.
Ich benutze dazu einen Atmega644 und schreibe in C.
Danke,
lg Kurt
Liste der Anhänge anzeigen (Anzahl: 1)
Danke für die schnelle Antwort, hier ist meine Schaltung.
In der Schaltung denke ich ist kein Fehler, i gehe von einen Softwarefehler aus. Ich betreibe den Atmega mit 20Mhz und den Bus mit 500kHz, später wenn alles funktioniert vieleicht auch noch mit mehr Hz.
Das merkwürdige ist, dass ich auch mit dem Oszi nichts messe, aber die Ports funktionieren wenn ich sie einzeln beschalte.
lg
Liste der Anhänge anzeigen (Anzahl: 1)
Jain:
Start senden
warten bis start ist raus
return(TWSR & 0xf8);
checken ob start korrekt rausgegangen ist (kann immer mal schief gehen, u.a. bei mehreren mastern)
Adresse senden
warten bis adresse draussen ist
return(TWSR & 0xf8);
checken, ob adresse vom slave bestätigt wurde (ack)
Daten senden
warten, bis byte draussen ist
return(TWSR & 0xf8);
checken, ob slave das byte mit ack bestätigt hat
Stopbedingung
geht einfach so, jedenfalls tu ich da nix mehr checken :)
Im Fehlerfall ein Stop rausschicken.
Im Anhang ein Beispiel mit ein paar kleinen Erweiterungen wie timeouts und der Versuch im Fehlerfall die Slaves etwas wachzurütteln. Geht mit Sicherheit schöner, aber tut so seit Monaten im Dauerbetrieb. Waitalittle() sind nur ein paar us.
Ach ja, zwischen einzelnen Nachrichten etwas warten kann nicht schlecht sein.
Liste der Anhänge anzeigen (Anzahl: 5)
Also hier sind die Bilder, bei SDA&SCK ist das obere Signal SCK und der Code ist auch dabei.
SDA und SCK passen vom Takt her gar nicht zusammen...
Liste der Anhänge anzeigen (Anzahl: 2)
Leute! Die übertragung steht :)
Es liegen schöne Signale an :)
Jetzt muss ich nur noch die richtigen Adressen finden ;)
lg und Danke für Alles, ihr habt mir sehr geholfen