Forum: PC-Programmierung [Python] SPI Kommunikation zweier Slaves


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von S. P. (elektrolyt)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

nur eine kurze Frage, da ich hier keine eindeutige Antwort gefunden 
habe.
Wenn ich zwei Slaves über SPI ansteuern möchte, mache ich dies ja mit 
den CE/SS/CS Leitungen. Beim Raspberry Pi hab ich hier z.B. zwei Stück 
zu Verfügung.

Nun sind alle Codes nur für ein Slave. Wie sieht dies bei zwei Slaves 
aus?

Variante a)
1
import spidev
2
3
#Initialze the SPI 
4
spi = spidev.SpiDev()
5
(... code ...)
6
7
# open spi port 0, device (CS) 0
8
spi.open(0,0)
9
(... code ...)
10
spi.close()
11
12
# open spi port 0, device (CS) 1
13
spi.open(0,1)
14
(... code ...)
15
spi.close()

oder Variante b)
1
import spidev
2
3
#Initialze the SPI 
4
spi = spidev.SpiDev()
5
(... code ...)
6
7
# open spi port 0, device (CS) 0
8
spi.open(0,0)
9
(... code ...)
10
11
# open spi port 0, device (CS) 1
12
spi.open(0,1)
13
(... code ...)
14
15
spi.close()

Sprich vor allem gehts darum, muss ich vor jedem Spi.open ein close der 
anderen Verbindung machen oder muss ich diese nur am Ende des Codes 
machen. Über open(0, x) selektiere ich ja den Slave bzw. den chip 
select.

Ich möchte am Ende über den Raspberry zwei Microcontroller nacheinander 
steuerwörter übergeben (gleichzeitig geht ja leider nicht).

Gruß,
Elektrolyt

: Verschoben durch Moderator
von Walter T. (nicolas)


Bewertung
0 lesenswert
nicht lesenswert
Ich kenne den SPI-Stack von Raspbian nicht besonders gut, gehe aber 
davon aus, daß vor einem Wechsel des Chip-select die Verbindung 
zumindest mit irgendeinem Kommando beendet werden muß, die einen "flush" 
auslöst. close() wird dafür geeignet sein.

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]
  • [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.