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...)?
@ 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
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
>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.
@ 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
>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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.