Forum: Mikrocontroller und Digitale Elektronik mehrere SPI geräte an einem controller


von Philipp Karbach (Gast)


Lesenswert?

Bis jetzt hatte ich erst einmal das Problem, dass ich zwei SPI Geräte 
gleichzeitig in einem Programm benutzt habe. Ein grafiklcd (nokia 6100) 
und SD Karte. Beides ging über Hardware SPI. Habe einfach nur auf die 
Karte geschrieben wenn das LCD nicht gebraucht wurde oder ähnlich. Was 
mache ich aber wenn ich wirklich mal alles gleichzeitig brauche oder 
evtl. NOCH ein Gerät anschließen will (zum Bsp. nen DAC oder VS1001...)?

von Falk B. (falk)


Lesenswert?

@ Philipp Karbach (Gast)

>Karte geschrieben wenn das LCD nicht gebraucht wurde oder ähnlich. Was
>mache ich aber wenn ich wirklich mal alles gleichzeitig brauche oder
>evtl. NOCH ein Gerät anschließen will (zum Bsp. nen DAC oder VS1001...)?

Alle SPI-Slaves brauchen ein Chip Select Signal.

MFG
Falk

von Philipp Karbach (Gast)


Lesenswert?

das weiß ich ja aber irgendwie kam es dennoch zu interferenzen 
(manchmal). Was ist denn dann der beste weg? CS von Slave A auf low, CS 
von Slave B auf High und dann B schreiben? Was mach ich zum beispiel 
wenn ich einen Schreib status auf dem LCD ausgeben will? Nach jedem 
geschriebenen byte das CS wechseln? das ist mir unklar

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>Nach jedem geschriebenen byte das CS wechseln?

Sinnvollerweise nach jedem übertragenem Befehl (kann mehrere Bytes lang 
sein). Bei vielen Bausteinen muß ohnehin nach jedem Byte das CS 
getoggelt (1->0->1) werden, damit der Baustein das Ende des einen und 
den Anfang des nächsten Bytes erkennt.

von Falk B. (falk)


Lesenswert?

@ Philipp Karbach (Gast)

>das weiß ich ja aber irgendwie kam es dennoch zu interferenzen

Das sind zu 99% Programmierfehler.

>(manchmal). Was ist denn dann der beste weg? CS von Slave A auf low, CS
>von Slave B auf High und dann B schreiben? Was mach ich zum beispiel

Cs ist meist LOW aktiv, also in deinem Beispiel schreibst du auf Salve 
A.

>wenn ich einen Schreib status auf dem LCD ausgeben will? Nach jedem
>geschriebenen byte das CS wechseln? das ist mir unklar

Das kommt auf die ICs an. Meist muss ein Zugriff, welcher meist mehrere 
Bytes umfasst, mit einer Steigenden Flanke von Cs beendet werden.

MFG
Falk

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>Meist muss ein Zugriff, welcher meist mehrere
>Bytes umfasst, mit einer Steigenden Flanke von Cs beendet werden.

Oder einer fallenden Flanke, je nach Eingangcharakteristik High- / 
Low-aktiv.

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.