Hallo, kurz meine Situation: An der Hardware-SPI des Atmegas hängen mehrere SPI-ICs (CAN, ...) und nun soll noch ein TLC5940 angeschlossen werden. Dummerweise hat der TLC5940 keinen seperaten CS-Pin, um ihn vom SPI-Bus zu "trennen". Daher wurde mir empfohlen, einfach das SCK-Signal auf Masse zu ziehen, und somit einen CS-Pin "nachzubauen". Im Anhang hab mir nun eine Skizze gemacht, wie es aussehen könnte. Würde das so funktionieren? SPI-Takt wäre 8MHz, dürfte das gehen oder könnte das Probleme geben? Würde mich über eure Hilfe und Erfahrung freuen :) Viele Grüße Julian
Warum willst Du denn das Taktsignal vom TLC5940 trennen? Soweit ich sehe, ignoriert er die Daten, solange er keinen positiven Puls auf XLAT bekommt. Damit erfüllt XLAT die Funktion eines CS-Pins, nur daß er eben nicht für die gesamte Übertragung aktiv gehalten, sonden nach dem Eintakten der Bits nur kurz aktiviert wird.
Stimmt eigentlich. Aber könntest du mir das genaue erklären, warum er nicht die ganze Zeit lang aktiv sein muss, dass versteh ich momentan nämlich nicht so ganz...
Julian W. schrieb: > Stimmt eigentlich. > Aber könntest du mir das genaue erklären, warum er nicht die ganze Zeit > lang aktiv sein muss, dass versteh ich momentan nämlich nicht so ganz... Du musst gedanklich bei diesem Chip zwischen dem Schieberegister und den eigentlichen Datenregistern trennen. In die Schieberegister taktest du deine Daten rein. Und erst durch einen XLAT Puls werden diese Daten aktiv, in dem sie in die eigentlichen Datenregister (mit denen der Chip dann tatsächlich arbeitet) übernommen werden. Kein XLAT Puls, keine Übernahme dessen was sich im Schieberegister angesammelt hat. Das heisst aber auch: Es ist doch völlig wurscht, ob dein IC in seinem Schieberegister da Daten durchrauschen sieht oder nicht. Solange er keinen XLAT bekommt, werden die sowieso nicht aktiv.
Das würde also heißen, ich kann die ganze Zeit Daten über den SPI-Bus jagen, und XLAT ist auf low. Wenn ich nun Daten an den TLC5940 senden will, sende ich zuerst die PWM-Daten, also die 12*16 = 192Bit und hebe DANACH kurz XLAT auf High, und danach direkt wieder auf Low, bevor ich neue Daten über SPI sende. Hab ich das so richtig verstanden?
Danke für den Hinweis, dann werde ich das auf jeden Fall mal teste :)
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.