SPI in Verbindung mit Display weiterhin nutzen

  • Guten Morgen,

    ich plane gerade eine Art Bordcomputer für ein Boot zu bauen. Neben GPS, Kompass und Motordrehzahl möchte ich auch die Batterie überwachen bzw. den Ladestatus visualisieren. Das ganze soll später auf einem Admatec C-Berry Display angezeigt werden.

    Für die Batterieüberwachung benötige ich analoge Eingänge. Da das Display den SPI-Bus nutzt wollte ich für die I/Os und die anolgen Eingänge den I²C Bus nutzen. Nun habe ich leider keinen brauchbaren I²C IC gefunden. Für SPI gibt es den MCP3008 bzw. MCP3208, wozu man auch massig Codebeispiele usw. findet. Da ich die GPIO Pins sowieso alle auf eine Lochrasterplatine führen möchte, stellt sich mir jetzt die Frage, ob ich neben dem C-Berry Display noch weitere Teilnehmer an den SPI Bus anschließen kann. Kann das so ohne weiteres funktionieren oder müssen noch irgendwelche Maßnahmen vorab getätigt werden.
    Das C-Berry Display nutze ich in Verbindung mit dem Framebuffer Treiber von u- voelkel (https://github.com/u-voelkel/cberryfb)

    Ich hoffe, dass meine Frage soweit verständlich ist. Für Antworten und Bemühungen vorab vielen Dank.

    Mit freundlichen Grüßen

    Edited once, last by corrupted (April 9, 2015 at 7:42 AM).

  • Hallo corruted,

    natürlich kannst Du SPI-fähige Bausteine wie den MCP3208 mit jedem GPIO-Pin über das SPI-Protokoll ansprechen und auslesen. Du bist nicht auf die als "SPI-fähig" gekennzeichneten Pins beschränkt.

    Ein Beispiel habe ich hier im Forum mal gepostet... Die Suchfunktion führt Dich zum Ziel.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Edited once, last by Andreas (April 9, 2015 at 9:20 AM).

  • Hallo,

    erstmal danke für die Antworten.

    Der MCP23017 ist ein digitaler Ein-/Ausgangsbaustein. Den habe ich schon auf dem Zettel. Den Philips IC habe ich auch schon gesehen, da der MCP3208 aber eine höhere Auflösung hat und anhand von vielen Beispielen gut dokumentiert ist, ist er eigentlich mein Favorit.

    Quote

    natürlich kannst Du SPI-fähige Bausteine wie den MCP3208 mit jedem GPIO-Pin über das SPI-Protokoll ansprechen und auslesen. Du bist nicht auf die als "SPI-fähig" gekennzeichneten Pins beschränkt.

    Ein Beispiel habe ich hier im Forum mal gepostet... Die Suchfunktion führt Dich zum Ziel.

    Das ist mir gar nicht so bewusst gewesen. Das Display sitzt ja auf den ersten 26 PINS. Heißt das, dass ich einfach vier freie PINS für die 4 Bussignale (MOSI, MISO, CSLK, CS0) deklarieren kann und losgelöst vom Display bin? Das wäre ja einfacher als gedacht .

    Edited once, last by corrupted (April 9, 2015 at 10:05 AM).


  • Naja der 8591 hat eine Auflösung von 8 Bit, wenn Dir das bei Deiner Batterieüberwachung nicht reicht ? willst'e ne Auflösung im Pico-Voltbereich

    :) Schon klar, dass 12 Bit für eine Batterieüberwachung sicherlich Kanonen auf Spatzen sind.

    Jedoch driftet es ja etwas ab. Ganz klar ist es mir nicht, ob ich weiterhin den SPI Bus neben dem Display betreiben kann.

  • Hallo Corrupted,

    Das ist mir gar nicht so bewusst gewesen. Das Display sitzt ja auf den ersten 26 PINS. Heißt das, dass ich einfach vier freie PINS für die 4 Bussignale (MOSI, MISO, CSLK, CS0) deklarieren kann und losgelöst vom Display bin? Das wäre ja einfacher als gedacht .

    da stehst Du nicht alleine dar. Es ird immer wieder behauptet, man können nur mit "MISO", "MOSI", "CSLK" und "CS0"-deklarierten Pins SPI betreiben. Es geht mit jeder beliebigen Kombination von GPIO-Pins.

    Wie gesagt, Du kannst jeden nicht belegten GPIO-Pin - inkl. der am Display durchgeschleiften und nicht vom Display genutzten, als SPI-Pins verwenden. Wirf mal einen Blick in meinen kürlich geposteten Quellcode, da wird Dir das Prinzip klar.

    Das SPI-Protokoll zu progrmmieren it mehr als einfach.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Edited once, last by Andreas (April 9, 2015 at 2:06 PM).

  • Quote


    Wie gesagt, Du kannst jeden nicht belegten GPIO-Pin - inkl. der am Display durchgeschleiften und nicht vom Display genutzten, als SPI-Pins verwenden. Wirf mal einen Blick in meinen kürlich geposteten Quellcode, da wird Dir das Prinzip klar.

    Das SPI-Protokoll zu progrmmieren it mehr als einfach.

    Beste Grüße

    Andreas

    Entschuldigung für die Frage. Habe die letzten Posts von Dir durchgesucht, bin da aber nicht wirklich fündig geworden. Kannst Du mir da bitte einen Link zu schicken?

    Für Deine Bemühungen vorab vielen Dank.[/quote]

  • Hallo Corrupted,

    hier klicken

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Edited once, last by Andreas (October 12, 2017 at 9:41 PM).


  • Hallo Corrupted,

    hier klicken

    Beste Grüße

    Andreas

    Besten Dank dafür. Habe schon vermutet, dass man den SPI-Bus auch in Software "nachbauen" kann.

    Ob die GPIOs wirklich so gleich sind, weiß ich jedoch nicht. Da der folgende Link ja schon etwas von Hardwareunterstützung beschreibt.

    https://www.raspberrypi.org/documentation/…i/spi/README.md

    Aber das soll hier an der Stelle nicht das Thema sein.

    Danke für die Lösungsansätze.

    Gruß

    corrupted

  • Hallo Zusammen,

    wollte mal eben eine Wasserstandsmeldung durchgeben. Habe den MCP3208 am laufen, nutze dafür die PINS 35-38. Ich habe jedoch Probleme in Verbindung des C-Berry Displays. Wenn ich ein Image ohne das cberryfb Modul starte funktioniert das Programm zum Auslesen des ersten Kanals des MCP3208 wunderbar. Sowie ich jedoch das Modul aktiviere geht irgendwie gar nichts mehr. Kennt dieses Phänomen jemand?

    Für Bemühungen und Antworten vorab vielen Dank.

    Gruß
    corrupted

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!