www.mikrocontroller.net

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


Autor: Philipp Karbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...)?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Philipp Karbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.