[Gelöst] SPI: CS1 mit WiringPi verwenden

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    ich verwende derzeit für einen MCP3008, den ich per WiringPi und SPI in meinem C++ Projekt anspreche. Als ChipSelect verwende ich CS0. Jetzt möchte ich zusätzlich in meinem Projekt ein e-Ink Paper Display verwenden. Dieses verwendet für seine Library ebenfalls SPI und CS0. Somit möchte ich für meinen MCP3008 auf den CS1 wechseln. Aber lediglich meine Konstante "SPI_CHAN" von 0 auf 1 ändern bringt nichts, dann kommt kein Signal mehr an.

    Diese Konstante wird für folgende Aufrufe verwendet:

    wiringPiSPISetup(SPI_CHAN, CLK_SPEED);

    und

    mcp3004Setup(MCP3008_BASE, SPI_CHAN);

    https://github.com/Wyliodrin/wiri…ingPi/mcp3004.c

    MCP3008_BASE hat den Wert 100

    Einen Fehler bekomme ich durch das Programm nicht, aber auch keine Werte. Könnt Ihr mir einen Tipp geben, wie ich den CS1 für einen MCP3008 und WIringPi verwende, so dass der CS0 für das Display frei ist?

    Natürlich bin ich jetzt mit dem Kabel auf SPICS1 und nicht mehr auf dem SPICS0 ;)

    Muss der CS1 noch per Config oder ähnliches am Raspberry Pi 3 aktiviert werden?

    Viele Grüße

    3 Mal editiert, zuletzt von NeuHier (20. Dezember 2017 um 10:54)

  • Moin NeuHier,

    in deinem verlinkten Code gibt es folgende Zeile

    Zitat

    int mcp3004Setup (const int pinBase, int spiChannel)

    Hier wird auch der SPI-Kanal gesetzt. Du solltest herraus bekommen, wer das aufruft.

    Irgendwo in deinem Code gibt es eine Stelle wo das definiert wird.

    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.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Hallo Bernd,

    danke für Deine Antwort. Der Aufruf mcp3004Setup passiert in meinem Code mit meinen Argumenten. Habe intensiver gegoogelt und andere Beispiele und Wikis gelesen. Jetzt funktioniert es. Letztendlich war der "wiringPiSPISetup" Aufruf zuviel und unnötig. Habe zusätzlich noch einmal alle *.o Dateien gelöscht und neu übersetzt, nun klaptts :)

    Gruß

    Oliver

  • Moin Oliver,

    das freut mich!

    Wenn sich dein Thema damit erledigt hat, dann markiere es entsprechend.

    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.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

Jetzt mitmachen!

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