Forum: Mikrocontroller und Digitale Elektronik kurze Frage: SCK mit Transistor gegen GND schalten


von Julian W. (julian-w) Benutzerseite


Angehängte Dateien:

Lesenswert?

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

von R. M. (rmax)


Lesenswert?

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.

von Julian W. (julian-w) Benutzerseite


Lesenswert?

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...

von Karl H. (kbuchegg)


Lesenswert?

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.

von Julian W. (julian-w) Benutzerseite


Lesenswert?

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?

von R. M. (rmax)


Lesenswert?

Ja, hast Du.

von Julian W. (julian-w) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.