Orange-, Banana-, Nano- und Raspberry-Pi - I2C, SPI und GPIO Adressen

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Orange-, Banana-, Nano- und Raspberry-Pi - I2C, SPI und GPIO Adressen

    Motivation

    In >>> diesem Artikel <<< hatte ich ja bereits darüber geschrieben, wie ein Hubo an zwei unterschiedliche Modelle der Banana-Pi Reihe angeschlossen werden kann. Mittlerweile ist der „Zoo“ an Kleincomputern noch um Orange-Pi‘s und den Nano-Pi Neo gestiegen. Letztendlich läuft es immer nur darauf hinaus, das richtige Linux-Device für den SPI-Bus bzw. den I2C-Bus zu finden. Gleiches gilt für den häufig über „Pin 7“ der IO-Pfostenleiste bitbangten 1wire Bus. Leider unterscheiden sich die Modelle in letztem Punkt deutlich, womit Hardwarekompatibilität manchmal nicht (einfach) gegeben ist. Bild 1 zeigt die meisten der hier untersuchten Kleincomputer.


    Bild 1: „Zoo“ einiger der unterstützten Kleincomputer


    Überblick
    Die folgende Tabelle vermittelt einen Überblick über die verschiedenen Device-Adressen und GPIO‘s des „Pin 7“.


    Tabelle 1: Überblick über I2C- und SPI-Deviceadressen, sowie „Pin 7“ Chip-IO


    Ableitungen
    I2C- und SPI-Bus lassen sich im Code relativ leicht durch eine entsprechende Abänderung auf die jeweiligen Adressen zum laufen bringen. Bei der Verwendung des „Pin 7“ als 1wire bitbang-Pin wird es etwas schwieriger. Je nach Kernel und Distribution erfolgt die Anpassung entweder in der Fex-Datei oder (einfacher) durch dynamisches Laden der Treiber unter Angabe der GPIO-Adresse (bzw. über den Devicetree). Letztere entnimmt man am besten dem Datenblatt.


    Am einfachsten geht so...
    Mit den Legacy-Kerneln von Armbian liegt man in der Regel recht gut, will man eine neue Hardware zügig in Betrieb nehmen. Die Fex-Dateien sind „gepflegter“, als bei anderen Distributoren, und die Treiber bereits im Image enthalten. Eine Anpassung der /etc/modules Datei, ggf. unter zusätzlicher Einführung einer Datei zur Angabe der Treiberparameter (unter /etc/modprobe.d/) reicht in der Regel, um die Hardware zu testen.
    Als ein wenig „hakelig“ gestaltet sich der Nano-Pi Neo. Hier hat man „versäumt“, dem I2C-Bus eigene Pullup Widerstände zu spendieren. Im Falle des Hubo ist das recht einfach erledigt, da dieser eine Steckoption für ein DS-3231 RTC Uhrenmodul verfügt, welches seine eigenen Pullups mit sich bringt. Will man mehrere Busteilnehmer betreiben, so hat das Fehlen der Widerstände sogar etwas Gutes an sich. Man kann die Widerstände entsprechend der Buskapazität und des Bustaktes optimieren.


    Details und Update
    Die Tabelle findet sich im Anhang dieses Beitrags. Sie beinhaltet neben dem hier ersichtlichen Link noch Kommentare zur Treiberkonfiguration sowie Downloadlinks zu den getesteten Images. Die weitere Pflege der Tabelle werde ich allerdings über meine Homepage vornehmen.


    Viel Spaß beim Basteln wünscht…

    schnasseldag

    Kompatibilitaet_Kleincomputer.xls

  • Orange-, Banana-, Nano- und Raspberry-Pi - I2C, SPI und GPIO Adressen? Schau mal ob du hier fündig wirst!

Jetzt mitmachen!

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