- Labornetzteil AliExpress         
Ergebnis 1 bis 6 von 6

Thema: Spi-lesen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    HaWe
    Gast
    Zitat Zitat von sterngleiter Beitrag anzeigen
    Hallo,
    ich habe eine Schaltung aufgebaut wo der Raspberry SPI-Master und ein PIC-Controller ein Slave ist. Soweit so gut. Mein Problem liegt dadrin dass ich auf eine anfrage bei Slave mehrere Anworten heben möchte. Beispiel Master sendet 1 Byte und Slave anwortet mit 4 Bytes zurück.
    spi.writebytes(0x12)
    antwort=spi.readbaytes(0);
    print antwort[0]
    print antwort[1]
    print antwort[2]
    print antwort[3]

    ich finde ein Anwort nur im antwort[0] aber da ist nur der Letze Wert drin der von Slave gesendet wurde.
    Ich bitte um Hilfe
    hallo,
    ein paar Fragen und Anmerkungen:
    1.) die verwendete Programmiersprache gehört eigentlich immer in den Titel oder wenigstens klar erkennbar genannt im ersten Post (TOP). Bei dir also: "PYTHON".
    - welche Version aber? 2 oder 3?
    2.) Dann ist es immer hilfreich, den kompletten Code zu sehen, nicht nur ein Schnipsel.
    3.) Dann gibt es gefühlt 100 verschiedene Raspberry Pis, welchen Pi benutzt du?
    4.) Dann gibt es gefühlt 1000 verschiedene Betriebssysteme für Raspberries (z.B. Raspbian Jessie oder Raspbian Stretch oder auch v.a.m.)
    - welches benutzt du, in welcher genauen Version?
    5.) Dann unterscheiden sich oft bei SPI die Codes, je nachem welches Gerät dran hängt - was hast du dran? --- EDIT: sah gerade: ein PIC, ok! ---
    6.) Dann scheint es sich bei deinem Code um einen Tippfehler zu handeln, denn es heißt readbytes und nicht readbaytes.
    7.) spi.readbytes könnte ein befehl aus einem Python module namens "py-spidev" sein, aber jedes Modul ist anders - ist dies deines, oder welches sonst?
    8.) Die Zahl hinter readbytes ist wschl die Anzahl der zu lesenden Bytes, wie schon Klebwax richtig erwähnt hat. willst du 4 lesen, muss dort auch 4 stehen.
    Steht 0 dort, liest du auch nur 0. Siehe: https://github.com/doceme/py-spidev
    9.) Außerdem wäre noch wichtig zu wissen, wie dein SPI Port konfiguriert ist und welchen SPI Port du benutzt (der Raspi hat 2 verschiedene) - und ob er überhaupt enabled ist.


    Ich bin nun kein Python-Nutzer, aber probiere doch mal testweise diesen Code, falls meine Vermutungen soweit stimmen:

    Code:
    #!/usr/bin/env python
    import spidev
    def dmp(A):
        s = ""
        cnt = 0
        for a in A:
            s+="%0.2X " % a
            cnt=(cnt+1)%6
            if cnt == 0:
                s+="\n"
        print s
    
    spi = spidev.SpiDev()
    spi.open(0,0)
    b = [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x40, 0x00, 0x00, 0x00, 0x00, 0x95, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xAD, 0xBE, 0xEF, 0xBA, 0xAD, 0xF0, 0x0D]
    print "testing read/write bytes"
    spi.writebytes(b)
    dmp(spi.readbytes(len(b)))
    print "testing xfer"
    dmp(spi.xfer(b))
    print "testing xfer2"
    dmp(spi.xfer2(b))
    spi.close()
    wenn er läuft, ists schon mal gut, dann können wir deinen Code berichtigen - bitte posten!

    - ansonsten stimmt möglicherweise was bei deinen Pi Enstellungen nicht - dann guck mal hier in der Diskussion:
    https://github.com/doceme/py-spidev/issues/19

    PS,
    Anm.: ich nutze selber kein SPI für eigene Programme, weil ich SPI für extrem schwierig halte, schon gar nichts für Anfänger.
    Geändert von HaWe (04.12.2017 um 09:28 Uhr)

Ähnliche Themen

  1. I2C byte lesen
    Von EA6AFJ im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 31.08.2012, 00:11
  2. I2C Register Lesen
    Von pointhi im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 1
    Letzter Beitrag: 19.04.2012, 15:26
  3. I2C lesen
    Von Max12345 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 23.08.2010, 06:36
  4. Schaltplan lesen...?
    Von Syndromedar im Forum Elektronik
    Antworten: 6
    Letzter Beitrag: 04.12.2006, 23:55
  5. mmc mit c++ lesen
    Von Asche im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 24.01.2006, 00:23

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests