Forum: Mikrocontroller und Digitale Elektronik TLC5940 und MCP2515 an SPI (Atmega8)


von Julian W. (julian-w) Benutzerseite


Lesenswert?

Hallo,
ich wollte mal Fragen, wie ich diese beiden ICs an die Hardware-SPI des 
Atmega8 anschließen muss.
Beim MCP2515 ist die Sache ja recht einfach, dieser besitzt ja auch eine 
CS/SS-Leitung.
Doch wie schließe ich nun noch den TLC5940 dazu?

Momentan habe ich ihn wie folgt angeschlossen (brauche nur den 12bit 
Grayscale-Modus, Ausgänge schalten einen MC34063):

 VPRG: 10kΩ  an 5V
  SIN: MOSI
 SCLK: SCK
 XLAT: 10kΩ  an 5V
BLANK: 10kΩ  an 5V
 IREF: 2,2kΩ an GND
DCPRG: frei
GSLCK: PB1 (OC1A)
 SOUT: frei
 XERR: frei

Wie mache ich das nun mit der SPI-Schnittstelle? Wenn ich ja Daten nur 
an den CAN-Controller senden will, empfängt sie ja auch auto. der 
TLC5940. Daten nur an den TLC5940 zu senden, geht ja einfach, da der 
CAN-Contrnoller ja eine CS/SS-Leitung besitzt. Doch wie mache ich das 
beim TLC5940, der besitzt ja keine CS/SS-Leitung?

Hoffe, ihr könnt mir da weiter helfen. Leider konnte ich keine Beispiele 
für Schaltpläne in dieser Konstellation finden :/

Viele Grüße
Julian

von Lehrmann M. (ubimbo)


Lesenswert?

Julian W. schrieb:
> Doch wie mache ich das
> beim TLC5940, der besitzt ja keine CS/SS-Leitung?

Das ist absolut richtig.

ein paar Möglichkeiten:

1) Taktleitung per Transistor/Mosfet schalten. = CS im Selbstbau
2) Software SPI (auch nicht sonderlich schwer)

noch weitere Anmerkungen:

Julian W. schrieb:
> VPRG: 10kΩ  an 5V
lies das Datenblatt nochmal - soweit ich's noch im Kopf habe: 
GND=GrayScale mode und Vcc=DotCorrection mode

>   SIN: MOSI
>  SCLK: SCK
OK

>  XLAT: 10kΩ  an 5V
beachte Kombination mit VPRG ! -> Datenblatt siehe Pin Beschreibungen

> BLANK: 10kΩ  an 5V
du musst schon auch noch an einen Microcontroller Pin - das weißt du 
schon oder?

>  IREF: 2,2kΩ an GND
klingt gut - Kondensatoren GND<>Vcc nicht vergessen (100nF)

> DCPRG: frei
Datenblatt beachten _> DCPRG=low => EEPROM   vs.   DCPRG=high => 
DC-Register

> GSLCK: PB1 (OC1A)
ok

>  SOUT: frei
wenn nur ein TLC verwendet wird dann gut.

>  XERR: frei
Wenn du nen Pin frei hast dann ist XERR sehr schön wegen Fehlererkennung 
usw...

Keine Garantie - lies lieber nochmal im Datenblatt. Soweit ich's noch im 
Kopf hab stimmt's aber so.

von Lehrmann M. (ubimbo)


Lesenswert?

So das hat mich doch jetzt gewurmt:

http://focus.ti.com/lit/ds/symlink/tlc5940.pdf

Seite 7 ist wichig für dich.

von Julian W. (julian-w) Benutzerseite


Lesenswert?

Danke für die Antwort.
Gut, dann werde ich das wohl mit einem Transistor lösen, ist für mich 
die beste Möglichkeit, dann brauche ich keine Soft-SPI.

Lehrmann Michael schrieb:
>> BLANK: 10kΩ  an 5V
> du musst schon auch noch an einen Microcontroller Pin - das weißt du
> schon oder?

Jop, der geht auch noch an einen μC-PIN, hab's nur vergessen, 
hinzuschreiben, Sorry ;)


Lehrmann Michael schrieb:
>> VPRG: 10kΩ  an 5V
> lies das Datenblatt nochmal - soweit ich's noch im Kopf habe:
> GND=GrayScale mode und Vcc=DotCorrection mode

Hasst recht, da hab ich mich wohl irgendwie total vertan/verklickt, 
keine Ahnung. Danke für den Hinweis, das hat mir bestimmt viel Ärger 
ersparst :)


Lehrmann Michael schrieb:
>>  XLAT: 10kΩ  an 5V
> beachte Kombination mit VPRG ! -> Datenblatt siehe Pin Beschreibungen

So, ich habe ja VPRG auf LOW, damit ist also der GS-Mode aktiviert. Und 
wenn XLAT auf HIGH ist, sollte er doch die Daten in das GS-Register 
schreiben.


Lehrmann Michael schrieb:
>>  XERR: frei
> Wenn du nen Pin frei hast dann ist XERR sehr schön wegen Fehlererkennung
> usw...

Nunja, ich frage mich, welche Fehler ich überhaupt erkennen könnte?
LOD = LED's hängen an einem MC34063, damit sinnlos
TEF = wohl kaum möglich, beim treiben von hochohmigen Eingängen.

Aber auf jeden Fall mal Danke für deine Hilfe :)

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.