Spi und i2c gleichzeitig aktivieren

  • Hallo, ich würde gerne spi und i2c gleichzeitig benutzen. Das heißt ich habe zwei nfc Platinen PN532 und würde diese gerne gleichzeitig mit dem Befehl nfc-Poll abfragen. Mein Problem im Moment ist wenn ich mit nfc-List eingebe bekomme ich bei spi immer diesen Fehler

    zum Setup:

    Raspberry Pi 3

    2xnfc pn 532


    Anschluss vom pi zur pn532:

    3,3V-5V

    Gnd-gnd

    Ce0 - ssel/scl/Rx

    Mosi - mosi

    Miso - miso

    Sckl - sck

  • Moin Mava499,


    nach kurzem lesen.

    - Du hast was installiert?

    - Die conf hast du wie eingerichtet?

    - geht ein Gerät allein überhaupt?


    Ich bezweifel das man 2 Protokolle gleichzeitig fahren kann.


    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"

    Vielleicht trifft man sich in der RPi-Plauderecke.

  • Servus Mava499 ,

    rein technisch ist es kein Problem I2C und SPI gleichzeitig zu aktivieren ... das ist bei meinen RPi Standard.

    Aber ...

    spi und i2c gleichzeitig benutzen. Das heißt ich habe zwei nfc Platinen PN532 und würde diese gerne gleichzeitig mit dem Befehl nfc-Poll abfragen

    wie kommst Du da auf I2C?

    Zudem: gleichzeitig abfragen kannst Du die eh nicht. Macht auch keinen Sinn ...

    Nacheinander sollte allerdings kein Problem sein. Da muss halt das Abfrage-Programm das auch unterstützen und jeder der beiden Leser eine eigene CS-Leitung haben, die dann entsprechend aktiviert wird.


    cu,

    -ds-

  • Moin Jungs

    Ja es klappt einzelnd uart, i2c und spi

    Wir brachen aber zwei nfc Platinen, weil wir über beide Platinen unserer Programm.

    schalten müssen.

    Installiert sind alle Treiber und die nfc lib.


    Ein neuer Versuch von uns ist die i2c Schnittstelle auf ein Oder zu geben und dann an die nfc Platinen zu gehen. Was meint ihr klappt das ?


    Danke für die schnelle Antwort

    Gruß mava499

  • Servus Mava499 ,

    Ein neuer Versuch von uns ist die i2c Schnittstelle auf ein Oder zu geben und dann an die nfc Platinen zu gehen. Was meint ihr klappt das ?


    wie kommst Du jetzt plötzlich auf I2C? Oben schriebst Du noch was von SPI. Das kann man nicht einfach so durcheinanderwürfeln, ganz abgesehen davon, dass das unterschiedliche I/Os sind.

    Das mit einem OR-Gatter ist Unsinn ... I2C ist ein Bus und auch SPI ist ein Bus. Da muss man keine zusätzliche Logik dranbasteln. Wenn, dann höchstens einen Multiplexer.

    Mach' mal eine Skizze von dem, was Du da vor hast und poste die. Ausserdem wäre ein Link zu Deinen Platinen, die verwendet werden sollen, äusserst hilfreich.

    Vorher kann man da nicht mehr dazu sagen ...


    //EDIT: für SPI guckst Du hier -> http://www.elektronik-magazin.…-peripherial-interface-18

    für I2C guckst Du hier -> http://www.elektronik-magazin.…er-i2c-bus-was-ist-das-21


    cu,

    -ds-

  • Häng doch beide Platinen an den SPI. Der Raspi hat zwei Chip-Enable, CE0 und CE1, damit kannst Du zwei Geräte addressieren.


    Btw: Du kannst auch 8 oder mehr Geräte an den SPI hängen, dann musst Du nur CE entweder "von Hand" über weitere Portpins machen oder über einen Addressencoder verteilen.

  • Moin!


    Ich bleibe bei meier Aussage aus Beitrag #1!


    Ich denke das

    libnfc.drive

    nur für ein Protokoll zur Zeit eingestellt werden kann.


    Wenn dann muss man in diese Richtung forschen.


    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"

    Vielleicht trifft man sich in der RPi-Plauderecke.

  • Hey,

    so ich war nicht untätig in der zwischen Zeit. Ich habe jetzt nur spi installiert und eine Nfc Platine kann ich jetzt darüber ansprechen. Wie spreche ich jetzt über den CE1 die Zweite an das diese auch über den Nfc-poll Befehl ausliest?

    Des weitern habe ich noch Probleme beim kompilieren der nfc-poll.c Datei.

    Hier tritt immer folgender Fehler auf:

    Wie kann ich das lösen?

  • Servus Mava499 ,


    Wie spreche ich jetzt über den CE1 die Zweite an das diese auch über den Nfc-poll Befehl ausliest?

    den musst Du Dir evtl. entsprechend umbauen/erweitern, dass er nicht nur ein device ausliest sondern zwei.

    Ich würde erst mal den zweiten Leser In die Konfigurations-Datei /etc/nfc/libnfc.conf eintragen und dann mal ausprobieren.

    Der Eintrag muss wohl analog zum ersten Gerät aussehen, nur dass dann

    Code
    1. device.connstring = "pn532_spi-2:/dev/spidev0.1:500000"

    drinsteht. Näheren Aufschluss sollten die Manual-Seiten des Teils vermitteln.


    Das funktioniert so auch nicht.


    Dafür gibt es ein Makefile. Der korrekte Aufruf sollte also make nfc-poll lauten.

    Da Du das Zeugs vermutlich mit sudo make install installiert hast, kann es sein, dass Du dann auch sudo make nfc-poll sagen musst.

    Das siehst Du dann schon.


    Das ist nicht die Installation von SPI ... :fies:

    Ich hatte Dir ja den Link zur Erklärung gepostet. SPI ist das Serial Peripherial Interface und damit Hardware und Bestandteil des Raspi.

    Das ist das Library-Zeugs von der Platine.


    cu,

    -ds-

  • Hey,

    so das ding läuft jetzt.:danke_ATDE:


    Nun wollte ich meine python Datei "orginal.py" automatisch starten.

    Habe dieses über rc.local probiert

    sudo nano /etc/rc.local

    und habe dann dort dieses eingegeben, weis aber nicht genau ob das so realisierbar ist.

    python /home/pi/orginal.py &

    ich habe das ganze mit python3 programmiert also denke ich das ich python3
    eingeben muss. Wenn ich diesen befehl im Terminal eingebe gibt er mir das aus

    Unsere Python datei liegt unter /home/pi

  • Hallo,


    in /etc/rc.local würde ich einen full path angeben, auch für 'python3'.


    @raspiprojekt, Du siehst den Prompt?

    pi@raspberrypi:~ $ python3 /home/pi/orginal.py

    python3: can't open file '/home/pi/orginal.py': [Errno 2] No such file or director

    Die Meldung sagt, daß die Shell python3 nicht findet.


    So kannst Du nachschauen, was installiert ist

    dpkg -l | grep python | egrep -v "python-|python3-|python2-|libpython|dh-python"

    So siehst Du die path Variable von environment echo $PATH

    Wenn ein Programm/Skript gefunden wird, Du aber den Pfad wissen willst, hilft which python


    Normalerweise ist python und die Links python2 und python3 im Verzeichnis /usr/bin enthalten. Mit ls -l /usr/bin/|grep " python" siehst Du alle 3, wenn sie dort liegen.

    Schönen Gruß, kle

  • Die Shell sagt, dass die Datei orginal.py nicht findet. Python meldet das selbst. Zu erkennen am vorangestellten "Python3:"

    sorry, da hast Du Recht: python3 findet die Datei '/home/pi/orginal.py' nicht. Dann liegt hyle näher dran.

    Edited once, last by kle ().

  • No such file or directory

    Kann aber auch gemeldet werden, wenn am File keinerlei Rechte bestehen, nicht einmal als other r--, oder Auflistungsreche (am übergeordnettem Verzeichnis) fehlen.



    Servus !

    RTFM = Read The Factory Manual, oder so