SPI-Schnittstelle...HILFE

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo zusammen,

    ich bin grade bei der SPI-Schnittstelle am verzweifeln. Ich habe hier einen MCP3001 den man darüber steuern (auslesen) kann. Er hat aber keinen Eingang so das ich nur MISO, CLK, CE0 angeschlossen habe. Aber das Skipt :

    Code
    import spidev
    import time
    
    
    spi=spidev.SpiDev()
    spi.open(0,0)
    while True:
    	volt=spi.xfer2([0x00])
    	time.slepp(1)

    läuft erst gar nicht los sondern teilt mir mit,

    File "volt.py", line 8, in <modul>
    volt=spi.xfer2[(0x00])
    IOError: [ERRNO22] Invalid argument

    Was ist falsch?
    Da ich ja nur lesen will was der MCP3001 mir schickt, ist da der Befehl überhaupt richtig? Gibt es einen nur "read" Befehl?

    Zur Info
    Ich habe die SPI-Schnittstelle von der Blacklist genommen, die Installation durchgeführt und habe auch unter dem /dev-Verzeichnis die zwei spidev0.0 und spidev0.1-Dateien.

    Habe einen Rapberry Pi B.
    Danke für eure Hilfe.

    David

    Wenn du nicht irrst, kommst du nicht zu Verstand! (Goehte) :angel:

  • Dann kommt der gleiche Fehler nur mit

    TypeError: Argument must be a list of a least one, but not more than 4096 integers

    :wallbash:

    Hallo,

    klappt beides nicht.

    Klappt beides nicht

    Hallo...lese grade "Nach Doku"

    hast du einen Link für eine ordentliche deutsche Doku?

    Wenn du nicht irrst, kommst du nicht zu Verstand! (Goehte) :angel:

    Einmal editiert, zuletzt von Dave1976 (26. Februar 2015 um 19:38)

    • Offizieller Beitrag

    Es scheint am Spidev modul zu liegen. Das hat ein problem mit den aktuelleren Kerneln. Schau mal hier

    Es gibt keine deutsche Doku für Programmierzeug ;).

    Hast du spidev via pypi installiert? Ab Version 3.0 soll das Problem behoben sein

  • Nein, natürlich nicht. =(

    Gibt es eine Installationsanleitung für pypi auch auf Deutsch (ja, google grade...kommen aber nur Englische).

    Muss ich vorher meine SpiDev wieder entfernen oder kann ich drüber installieren? Wenn ich es deinstallieren muss, wie? =(

    Wenn du nicht irrst, kommst du nicht zu Verstand! (Goehte) :angel:

    • Offizieller Beitrag
    Code
    sudo apt-get update
    sudo apt-get install python-pip
    sudo pip install spidev

    Wenn du externe Python Module brauchst, schau nach ob sie pypi.python.org verfügbar sind. Dann kannst du sie auch per pip installieren/updaten/entfernen

  • Hallo,

    also wenn ich das Arguemten, also die ([0xAA]), weglasse schreibt er mir folgendes

    "<built-in method xfer2 of SpiDev object at 0xb6cba458>"

    habe den Code mit

    Code
    print volt

    erweitert

    Wenn du nicht irrst, kommst du nicht zu Verstand! (Goehte) :angel:

  • Hallo,

    heute habe ich mal wieder Zeit. Ich habe auch mal das C-Testprogram herunter geladen. Aber das funktioniert auch nicht.

    Woran kann es noch liegen?

    Also,

    der Fehler bei mir lag in der Verison der spidev. Ich hatte eine Version die sich nicht mit dem Kernel verstand. :) :s Ja ja, ich rede wie der Blinde von Farben, denn dbv hat sich das mal angeguckt und dann die Version deinstalliert und die neue drauf gespielt! :bravo2:
    Er meinte von Anfang an, dass das nur das Problem sein könnte!

    Somit gab er

    Code
    sudo pip uninstall spidev


    ein und dann stand dort

    Code
    .... spidev-2.0 egg...

    diese Version konnte aber nicht mit meinem über

    Code
    uname -a

    aufgerufenen Version

    Code
    Linux raspberrypi 3.18.9...

    zusammenarbeiten.
    Somit hat er es runter geschmissen und neu installiert. Bei der Neuinstallation über

    Code
    sudo pip install spidev

    wurde direkt die spidev-3.0 Datei herunter geladen.

    Das war der Fehler. Falls ihr Fragen habt zu dem Text oben, lieber dbv fragen als mich. Denn ich stand nur staunend davor. :danke_ATDE::danke_ATDE::danke_ATDE:

    Wenn du nicht irrst, kommst du nicht zu Verstand! (Goehte) :angel:

    Einmal editiert, zuletzt von Dave1976 (10. März 2015 um 11:51)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!