Mehrere Peripherie über SPI und I2C

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,
    bin nun ganz frisch beim RPi basteln, doch ich bringe schon einiges an Elektronikwissen mit.

    Ich habe ein kleines Projekt was ich verwirklich möchte und müsste jetzt wo alles da ist feststellen, dass es leider noch nichts wird. Geplant war ein NFC-Board (http://is.gd/u0ItmU), ein E-Ink Display (http://is.gd/USPTZU) , und ein Keypad anschließen. NFC und Display laufen über SPI und I2C sowie ein paar andere Pins. Das Keypad würde dann ja über die Standard GPIO IOs laufen.

    Bevor ich die Komponenten gekauft hatte, wollte ich erstmal sehen was genau SPI ist und habe gesehen dass es ein Bussystem ist, daher hab ich mir keine weiteren Gedanken gemacht und habe damit gerechnet dass ein Multiplexer integriert ist. Nun wo die Komponenten und weiß nicht so recht wie ich nun die Komponeten ansteuern soll, da sie teilweise gleiche Pins den RPi's nutzen. Wie genau muss ich denn Chipselect nutzen. Muss ich den Treiber ändern und CS über einzelne IOs vom GPIO nutzen?
    Das Display nutzt wohl Pin6 als CS und das NFC ist es Pin 30 am IC, wobei ich keinen Schaltplan vom NXP-Board finde.

    Hat damit jemand Erfahrung?

    Gerade gesehen dass der CS nur bei der VQFN32 (SOT617-1) Version vom PN512 ist und nicht die, die auf dem Explore Board verbauten VQFN40 (SOT618-1) Version.
    Sehr schade. Also müsste ich einen Multiplexer nutzen wie es hier http://is.gd/saUPjm schon mal beschrieben wurde?

    Einmal editiert, zuletzt von Urban (18. Dezember 2014 um 13:11)

  • Hallo und willkommen im Forum.

    Ich benutze selber die I²C und SPI Schnittstelle am Raspberry Pi.

    Den CS brauchst du um den Slave anzusprechen. Du legst bei dem Slave das CS auf low, welches du ansteuern möchtest.

    Für die Kommunikation kann ich dir wiringPi empfehlen.

    <--Heute ist ein guter Tag zum basteln-->

  • Hallo Xeriox und vielen Dank :)

    Soweit habe ich das System verstanden, nur leider hat der das NFC soweit ich erkennen kann kein Chip Select. Ohne CS macht ganz natürlich nicht wirklich Sinn ein Bussystem zu nutzen, aber vllt übersehe ich auch was!?

  • Also soweit ich es erkennen konnte wird der Pin 26 von deinem Raspberry Pi verwendet. Dies könnte der CS sein.

    Was ich aber komisch finde, dass die Leitung auf den R15 geht.

    Wenn Pin 24 auf deinem Board nicht angeschlossen ist müsste CS auf Pin 26 liegen.

    Schau am Besten mal auf deinem Board nach.

    Der Channel für Pin 26 ist 1 und für Pin 24 0.

    <--Heute ist ein guter Tag zum basteln-->

  • Hey, also laut Schaltplan ist Pin 24 vom PN512 (NFC-Chip) "Adress Latch Enable". Sprich er muss angesteuert werden, damit Pin 24 vom GPIO des RPi's. Soweit so gut.
    Wenn du von R15 auf dem NFC-Board redest, dann ist der sowieso 0Ohm.

    Hier mehr über NFC-Board. http://is.gd/bQ0nEq (Für alle die auch mitlesen und ähnlich Probleme haben)

    Eigenartig ist nur dass beim NFC-Board dass Pin 24 (SPI E0) und Pin 3 (I2C SDA) mit einander verbunden sind und zusammen als NSS genutzt werden. Da steig ich nicht ganz durch, aber vielleicht liegt es auch daran dass ich I2C noch nicht ganz verstanden habe.

    Da ich für Display und NFC ja weitere Pins doppelt belegt habe am GPIO dürfte das durch den CS ja kein Problem sein, oder?

    Einmal editiert, zuletzt von Urban (18. November 2014 um 16:14)

  • Also I²C ist low aktiv, das bedeutet, wenn du Masse anlegst liegt LOW an und wenn der Pin in der Luft hängt holt sich der Bus HIGH von den Pull Up's.

    Dass Pin 24 und 3 miteinander verbunden werden würde ich nicht machen. Damit kannst du dir deinen Pi wunderbar zerstören, wenn irgendwelche Konfigurationen nicht richtig gesetzt sind.

    Ansonsten noch viel Spaß.

    Grüße Xeriox

    <--Heute ist ein guter Tag zum basteln-->


  • Dass Pin 24 und 3 miteinander verbunden werden würde ich nicht machen. Damit kannst du dir deinen Pi wunderbar zerstören, wenn irgendwelche Konfigurationen nicht richtig gesetzt sind.

    Das Problem ist nur, dass es standardmäßig so realisiert ist beim NFC-Board.

  • Hi, so habe die eine odere Komponente nun zum laufen bekommen. Nun komm ich zum verheiraten, was denk ich das schwierigste sein wird.
    Mich würde mal interessieren in wie fern man die SPI Ansteuerung kontrollieren kann. Ich frage, da ich neben meinen SPI-Komponenten, die ja über den Chip Select angesteuert bzw. aktiviert werden, noch Bauteile wie Matrix-Keypad habe. Kann man sowas wie Zeitschlitze zum senden bzw. empfangen von Daten einrichten?

    Sprich, ich habe neben den Zeitschlitzen in denen die SPI-Komponenten aktiviert werden noch einen Zeitschlitz um über Pins die u.a. auch von den SPI-Komponenten genutzt werden (nicht die SPI-Pins), auch für ein Matrix Keypad (8 Leitung) abzufragen.

    Es wäre schön, wenn ihr mit ein paar Stichwörter sagen könntet, damit ich mich ein bisschen schlau lesen kann.

    Danke!

  • Ich denke ich verallgemeiner die Frage mal, damit alle mitreden können :)

    Also soweit ich das jetzt richtig verstanden habe ist CE0 und CE1 für den Chipselect zuständig, sprich um die einzelnen Slaves zu "aktivieren".
    Das heißt ja man kann nur zwei Kompenenten am SPI nutzen. Hat jemand mal versucht einen Expander für CE0 und CE1 zu bauen? Im Grunde hat man ja die Möglichkeit mit den beiden Ausgängen vier verschiedene Zustände zu erreichen. Das Problem ist dann aber wahrscheinlich, dass man dafür dann den Kernel umschreiben muss, damit es erweitert CE2 und CE3 geben muss.

    Oder gibt es bessere Möglichkeiten mehrere Chipselect sich mit dem IO-Pins zu programmieren und wenn ja; kennt jemand ein Tutorial?

    Einmal editiert, zuletzt von Urban (18. Dezember 2014 um 13:18)

  • Hi, ja das habe ich auch gerade gefunden. Eine Softwarelösung wäre natürlich das einfachste, wobei eigentlich alle hardwaremäßig gelöst sind.

    Hier http://is.gd/MNmiJF wird darüber gesprochen, doch nähere Infos gibt es leider nicht.

    Einmal editiert, zuletzt von Urban (18. Dezember 2014 um 13:30)

  • Hallo,

    kann mir jemand vielleicht den Schaltplan zum Projekt zukommen lassen ?
    Wollte nämlich auch ein Ink Display und NFC am Pi nutzen, jedoch weiss ich nicht genau wie ich alles verbinden soll.

    Danke in voraus !

Jetzt mitmachen!

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