Forum: PC-Programmierung brauche Hilfe beim Programmieren eines Raspberry Pis


von Hilfesuchender (Gast)


Lesenswert?

Hi, ich möchte gerne ein Programm auf dem Raspberry Pi entwerfen, dass 
gleichzeitig einige IO-Pins ansteuern kann (Pin 18 und Pin 22), dazu 
parallel noch den SPI-Port benutzt.

Ich programmiere in Python und verwende die Bibliotheken spidev und 
RPi.GPIO.

Jedes für sich alleine funktioniert, aber nicht beides zusammen:

verkürztes Beispiel:
1
import spidev
2
import RPi.GPIO as GPIO
3
4
GPIO.setmode(GPIO.BCM)  
5
spibus = spidev.SPIDEV(...)
6
7
GPIO.setup(18, GPIO.OUT)
8
GPIO.setup(22, GPIO.OUT)

Vorher hatte ich beide Teile einzeln. Ich habe einen AD-Wandler am 
SPI-Port, mit dem ich kommunizieren konnte und ich schalte einen 
Transistor jeweils an den Pins 18 und 22. Nun wollte ich beides 
kombienieren - wenn ich aber die GPIO-Bibliothek geladen habe, 
funktioniert die SPI-Schnittstelle nicht mehr und ich verstehe nicht, 
woran das liegen kann. Meine Vermutung ist, dass einige der Pins für die 
SPI-Kommunikation auch von GPIO verwendet werden. Jedoch initialisere 
ich nicht alle GPIO-Ports mit GPIO.setup, sondern nur die beiden, die 
ich brauche - und die sind nicht MISO/MOSI/CS0/CS1/Clock .

Kann mir jemand von Euch helfen?

von greg (Gast)


Lesenswert?

Gibt es irgendwelche Exceptions? Oder einfach nur "keine Funktion"?

von Hilfesuchender (Gast)


Lesenswert?

greg schrieb:
> Gibt es irgendwelche Exceptions? Oder einfach nur "keine Funktion"?

Einfach nur keine Funktionen mehr, Exceptions kommen auch nicht vor bzw. 
Abbruch des Interpreters wegen Fehlermeldung.

An den SPI-Pins geht garnichts mehr, wenn ich RPi.GPIO importiert hab, 
kein MOSI, kein CS, kein Clock :-(

von Ich (Gast)


Lesenswert?

Erst GPIO laden und danach SPI?

von Hilfesuchender (Gast)


Lesenswert?

Ich schrieb:
> Erst GPIO laden und danach SPI?

Ich hab schon beide Varianten ausprobiert, mal in die eine Richtung, 
dann in die andere. Was wahrscheinlich funktionieren tut ist, dass ich 
direkt den Pin als Datei anspreche und nicht über die 
RPi.GPIO-Bibliothek, ist zwar etwaas aufwendiger, aber dann funzt 
parallel das SPI noch, ich hab das getestet, in dem ich parallel von nem 
Terminal aus mit echo 1 >> /../Pinname gesetzt habe. Blöd, dass spidev 
und RPi.GPIO nicht miteinander harmonieren :-(

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.