2 Geräte am SPI

  • Hallo Zusammen,


    ich habe 2 Geräte (Display und RFID Modul) welche ich am SPI anschließen muss.
    Per Anleitung habe ich beide zum Laufen gebracht. Jedoch nicht beide zusammen.
    Ich hoffe das Grundprinzip des SPIs verstanden zu haben, jedoch hätte ich gerne eine Anleitung was man vor allem Softwaretechnisch machen muss (Treiber, /boot/config, etc...)
    Alle Anleitungen die ich bisher gefunden habe waren für EIN Gerät. Außerdem werden die Einträge in der config etc nicht erklärt und ich würde gerne wissen, was die Einträge bedeuten ;)


    Kennst sich jemand damit aus und hätte Zeit und Lust mir zu helfen?


    Besten Dank schon mal!!

  • Lass mich raten - dabei geht es immer noch um dein Display und das RFID Modul? Wie sind die jetzt verkabelt? Funktionieren sie getrennt voneinander mit der Verkabelung? Was für Code lässt du laufen? Ohne detaillierte Infos wird dir niemand helfen können. Und streng genommen ist das Posteingang hier eigentlich überflüssig - das andere hatte schon viele dieser Informationen.
    Automatisch zusammengefügt:[hr]
    Eine ganz gute Einführung findet sich übrigens hier: http://www.netzmafia.de/skript…ware/RasPi/RasPi_SPI.html

  • überflüssiger Posteingang?!?
    Verkabelt sollten sie richtig sein. Getrennt funktionieren sie beide auch. Jetzt habe ich aber beide angeschlossen: Display nach anleitung: funktioniert. RFID Modul auch nach anleitung, jedoch auf den anderen CE Pin gewechselt, da der in der Anleitung vom Display verwendet wird.
    Jetzt erkennt mein Raspberry das RFID Modul nicht mehr. Muss man den CE Pin aktivieren (da er bisher noch nie verwendet wurde)? Muss ich dem RFID Modul sagen, dass es jetzt am anderen CE Pin hängt? Sollte das automatisch gehen?


    RFID Modul: http://www.produktinfo.conrad.…T_RFID_MODUL_MFRC_522.pdf
    Display: http://www.produktinfo.conrad.…LAY_FUER_RASPBERRY_PI.pdf

  • iPad Autokorrektur. Da wird aus Posting Posteingang.


    Was heißt der pi erkennt nicht mehr? Spi kann nie erkannt werden. Nur konfiguriert. Wie steuerst du den an? Der muss bei verändertem CS dann aus spidev0.1 laufen. Nicht mehr spidev 0.0.

  • Das war der entscheidende Hinweis!! Das meinte ich mit "dem RFID Modul sagen, dass es jetzt am anderen CE Pin hängt" :)
    allerdings bekomme ich jetzt noch einen anderen Fehler, wenn ich mein skript starte, vermutlich weil ich einen anderen GPIO Pin auch noch verlegt habe (von 22 auf 18). Dachte dieses Coding reicht aus:



    def __init__(self, dev='/dev/spidev0.1', spd=1000000):
    spi.openSPI(device=dev,speed=spd)
    GPIO.setmode(GPIO.BOARD)
    # GPIO.setup(22, GPIO.OUT)
    GPIO.setup(18, GPIO.OUT)
    GPIO.output(self.NRSTPD, 1)
    self.MFRC522_Init()


    Kann mir jemand erklären für was die Zeile
    gpio.output(self.NRSTPD, 1)
    steht? Danke!

  • Bitte benutz die Code-Tags. Bitte poste den vollstaendigen Code. Bitte sag uns, welchen RFID-Sensor du verwendest. Bitte sag uns, was "einen anderen Fehler" ist. Bitte poste vollstaendige Tracebacks.

  • kurzes Update:
    beide Module (RFID und Display, wie anfangs verlinkt) sind jetzt ansprechbar.
    Das Display an sich zeigt auch alles an was es soll.


    ABER: starte ich mein skript um die RFID Karte einzulesen, werden die ersten "print" Anweisungen noch auf dem Display ausgegeben, jedoch zeigt es ab dem Einlesen der Karte nur noch einen blinkenden Strich an.
    Sieht aus als würde es sich bei der Datenübertragung des RFID Moduls aufhängen. Der Raspberry ist dann via SSH noch erreichbar, aber direkt kann ich nichts mehr machen.


    Woran könnte das liegen?
    Vielen Dank schon mal!

  • An der relativen Mondfeuchte? Mehr kann man ohne "das Skript" zu kennen nicht dazu sagen. Das du das hier mal postest habe ich aber auch schon diverse Male erwähnt, oder?

  • dann wirds wohl an der Mondfeuchte liegen... Ich weiß zwar nicht warum du mich ständig dumm anmachst, aber wenns dich glücklich macht...

  • Na dann - MEIN Problem ist das nicht. Und wenn du beständig keinen Kontext lieferst, so das man dir alles aus der sprichwörtlichen Nase ziehen soll - dann reagiert man schon mal genervt. So hat jeder seine Fehler.


  • ... Ich weiß zwar nicht warum du mich ständig dumm anmachst


    vielleicht liegts an der Fragestellung, mal schreibst du "mein Script" dann wieder "das Script" ohne es zu nennen und es aktuell zu deiner Frage in code Tags zu packen, da kann man wirr werden.



    Bitte benutz die Code-Tags. Bitte poste den vollstaendigen Code. Bitte sag uns, welchen RFID-Sensor du verwendest. Bitte sag uns, was "einen anderen Fehler" ist. Bitte poste vollstaendige Tracebacks.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Natürlich ist das nicht dein Problem. Wenn ich was missverständlich oder zu wenig beschrieben habe freue ich mich ja auch über Hinweise diesbezüglich. Aber von dir kommen nur genervte Kommentare, obwohl du vermutlich jede Menge Erfahrung und Ahnung von der Materie hast.
    Wenn dich meine Einsteigerfragen nerven - sorry - aber du bist ja nicht gezwungen zu antworten.
    Das "skript" ist lediglich das in der Anleitung angegebene Write.py bzw. Read.py. Beim Skript kann ich mir nur nicht vorstellen, dass hier der Fehler liegt. Ich kann es gerne hier posten, falls es noch Sinn macht...
    Nach meiner Laieneinschätzung sieht es so aus als würde bei der Datenübertragung etwas "kollidieren.

  • Ich habe dir diese diesbezüglichen Hinweise durchaus wiederholt gegeben. Und ich sehe die Fragesteller hier in der Bringschuld, so viel sie eben können abzuliefern an Kontext, Code & Konfiguration.


    Natürlich kann ich mir die verlinkten Produkte einfach kaufen, verkabeln, Konfigurieren, zum laufen bringen & mit Schleife garniert zu deinen Füßen legen. Aber das wäre ein bisschen extrem, oder?


    Nicht ganz so dramatisch ist deine Annarhme, weil du einen PRoduktnamen genannt hast weiß ich schon, welcher Code das ist. Damit soll ich also suchen, irgendwie wissen, wofür du dich entschieden hast, das selbst runterladen, und so weiter.


    Warum zeigst du mir den nicht einfach? Wer von uns beiden will den was von wem? Ich erwarte ja nicht, das du deinen Erstgeborenen nach mir benennst. Aber das du dir Mühe gibst mir meinen "Job" einfacher zu machen - ja, da bin ich altmodisch.

  • Natürlich sollst du nichts für mich recherchieren oder downloaden und installieren. Da ich mein Problem für ein banales Einsteigerproblem gehalten habe, dachte ich es kommen sofort 5 Antworten "Wenn du 2 Geräte am SPI hast und eines das andere zum Absturz bring, dann ist der MISO falsch angeschlossen!" oder so...


    Aber falls es doch am Coding liegt, hier die Read.py (was ich ausführe und den Absturz des Displays verursacht)




    und hier noch die Klasse:

  • 0k. Um dem Problem auf die Spur zu kommen versuch bitte mal das Skript nicht automatisch zu starten, sondern staute es per SSH. Das alleine sollte noch keinen Unterschied machen, aber mich interessiert ob


    - das Skript alleine weiterläuft
    - das Display sich wieder erholt, wenn du das Skript beendest.

  • Per SSH funktioniert das RFID modul wunderbar. Ich kann karten lesen und das skript wieder beenden. Allerdings habe ich per SSH keine ausgabe auf dem display.
    Wenn ich das skript direkt am Raspberry starte erholt sich das display nicht mehr und ich kann das skript auch nicht abbrechen. Kann nur per SSH einen reboot machen.

  • Das du dann keine Ausgabe hast ist klar. Aber funktioniert während des SSH Skript lauten lassen das Display? Ich nehme mal an nicht. Aber wenn du es * dann * wieder beendet, die Nutzung des SPI von Seiten RFID also aufhört, was passiert dann?


  • Per SSH funktioniert das RFID modul wunderbar. Ich kann karten lesen und das skript wieder beenden. Allerdings habe ich per SSH keine ausgabe auf dem display.
    Wenn ich das skript direkt am Raspberry starte erholt sich das display nicht mehr und ich kann das skript auch nicht abbrechen. Kann nur per SSH einen reboot machen.


    das du per ssh kein Display siehst welches am PI hängt wundert dich nun nicht wirklich?


    Wenn das Display nicht mehr läuft nach RFID dann wird es wohl an verändertet Bitrate und fehlender Init nach dem Umschalten liegen, das könnte man ja noch nachrüsten, den Display Inhalt als Text könnte man ja auf Console ausgeben das wäre dann auch im SSH zu sehen, kann aber sehr unruhig werden zeilenweise, dazu wäre dann eine VT100 EMU nötig um backspace zu machen damit diese Ausgabe statisch wird, ich phantasiere mal so rum weil ich ähnliches schon versuchte.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Dass ich per SSH die Ausgabe nicht auf dem Display habe ist schon klar ;)
    Das Display stürzt auch per SSH ab. Wenn ich das Skript beende kommt das Display nicht mehr zurück (erst blinkender Unterstrich, dann schwarz).

  • Hm. Außer das du mal Versuchst die Datenraten sowohl vom Display als WM dem Sensor anzugleichen, fällt mir auf Anhieb auch nichts mehr ein.


    Ich kann mal probieren dein Display & Code bei mir laufen zu lassen. Denn SPI benötigt ja keine wirklichen Geräte. Das * kann* also klappen, und macht das Problem dann für mich auf dem Oszilloskop sichtbar . Das kann aber dauern bis ich dazu mal komme.