Posts by Tomberry

    Hallo,

    ich beschäftige mich seit einiger Zeit mit dem Raspberry Pi und möchte damit meine Garage nach und nach komplett Automatiesieren.

    Für dieses Vorhaben hat der Raspberry Pi von Haus aus natürlich nicht genügend anschlüsse.

    Da ich 2 CS Pins am Raspberry Pi 3B + habe, müsste ich über SPI bis zu 16 (MCP23S17) nutzen können da sie jeweils bis 8 fach kaskadierbar sind.

    Nun habe ich mit einem Freund zusammen ein Board erstellt das mir in zukunft für mein Vorhaben dienen soll.

    Um es etwas abzukürzen und auf den Punkt zu kommen, das erste Board funktioniert einwandfrei.

    adressiert mit jeder beliebigen adresse.

    Die Adressen lassen sich am board mit kleinen schiebeschaltern umstellen (A0, A1, A2).

    Wenn ich die Anleitung PiMeUp von Eric Bartman richtig verstanden habe, habe ich ersteinmal 8 Adressen zur verfügung 0x40, 0x42, 0x44, 0x46, 0x48, 0x4A, 0x4C, 0x4E.

    Für das erste Board kann ich jede beliebige nutzen und es funktioniert auch. Als ich ein zweites hinzugefügt habe und da einfach mal die letzte adresse (0x4E) angegeben habe,

    hat es auch wunderbar unabhängig von einander funktioniert.

    Problem:

    Schließe ich jetzt ein weiteres Board an und vergebe z.B. 0x40, 0x42 und 0x4E dann reagieren die ersten beiden Adressen (0x40, 0x42) gleichzeitig und nur die letzte (0x4E)

    unabhängig von den Beiden.

    Ich habe es dann 4 fach kaskadiert und das Problem blieb bestehen und es kamen sogar noch neue hinzu.

    Ich habe etwas herum experementiert und folgendes festgestellt.

    verwende ich die ersten 4 Adressen:

    So muss ich (Taster_0) an zwei der 4 Boards gleichzeitig Drücken und dann wird (Ausgang_0) an allen 4 Board gleichzeitig ausgelöst.

    das selbe Passiert wenn ich die letzten 4 Adressen nutze.

    Wenn ich zwei der Adressen aus dem ersten Block (0x40, 0x42, 0x44, 0x46) und zwei aus dem zweiten Block (0x48, 0x4A, 0x4C, 0x4E) mische, funktinoeren die die ausdem ersten block parallel bzw. gleichzeitig miteinander und die aus dem zweiten Block eben Falls.

    Frage:

    Wie bekomme ich es hin das alle Adressen immer unabhängig von einander funktionieren?

    Ich hoffe ich konnte es einigermaßen verständlich erklären anbei noch der Code und verschaltung des MCP23S17.