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


von S. P. (elektrolyt)


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)


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.

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.