Arduino <-> MCP23017 - Verständnissfrage

Hallo Zusammen,

ich möchte über eine Porterweiterung 64 Ein + 64 Ausgänge zu schalten.
Zum Einsatz sollen zwei Schields mit je 4 MCP 23017 kommen.

Hierzu eine technische Frage bezüglich der MCP23017:

Beim Arduino werden die INPUTS als HIGH ausgegeben wenn +5V anliegen / Die OUTPUTS werden HIGH mit +5V geschaltet.
Nun zum MCP23017.
Verstehe ich das richtig das (wenn als OUTPUT definiert) und HIGH gesetzt, dann der Ausgang im MCP GND durchschaltet ?
Verstehe ich es weiterhin richtig das (wenn als INPUT definiert) die Ports ebenfalls mit geschalteten GND auf HIGH gesetzt werden ? (Ich gebe GND auf den Eingang und der Port wird als High gelesen?)

Sprich hier ist es genau anders herrum zu verstehen als beim Arduino ?

Würde das dann bedeuten das der 10K(?) Pullup hier gegen +5V gelegt wird ? (ALso auch entgegengesetzt des Arduinos ? )

Wäre echt klassen wenn mir da jemand helfen kann.

Tom30:
Beim Arduino werden die INPUTS als HIGH ausgegeben wenn +5V anliegen

Es wird HIGH registriert wenn eine Spannung größer als 0,6 * Vcc anliegt

Wegen dem Port-Expander:
Die Polarität der Eingänge ist über die IPOL Register konfigurierbar. Siehe Datenblatt Seite 13.
Bei den Ausgängen ist 1 immer HIGH. Siehe Seite 22f

Keine Ahnung wie du darauf kommst, dass das immer invertiert ist.

Danke für die Erklärung,
Ich kam darauf weil ich eine Lösung auf ic Basis suchte um mit möglichst geringem Ausgangsstrom der Out Kanäle Relais an zu steuern. Hierbei traf ich auf den ULN2803 und verstand das so das dort der Eingang Invertn sein muss. (Weil der Ausgang am ULN GND durchschaltet.....)...

Ich werde wohl normale Transistoren verwenden :wink:

However, was nun noch für mich offen bleibt ist die Frage Nach den pull ups der Eingänge. Ich habe mir entkoppelte Eingangsplatinen gebaut (12v -> optokopler -> 5v ) und dort 10k Pullups verwendet. Damit möchte ich auf die Eingänge des MCP27013 gehen. Laut Datenblatt hat der MCP interne Pullups mit 100k die geschaltet werden können. Ich würde aber lieber die schon auf den Bords vorhandenen verwenden. Meine Frage ist nun ob das egal ist oder ob ich die Hardwareseitiegen 10k besser rausschmeiße und neue 100k Ohm verwende ?

Wäre da für Hilfe nochmal sehr dankbar.

Tom

10K vs. 100K
Völlig egal.

Ich denke mal, das das Netzteil den 10fachen Strom liefern kann und den MCPs ist das sowieso völlig egal.

Tom30:
Hierbei traf ich auf den ULN2803 und verstand das so das dort der Eingang Invertn sein muss. (Weil der Ausgang am ULN GND durchschaltet.....)

Nicht ganz. Das ist ein Open Collector Ausgang. Wenn +5V am Eingang anliegt fließt Strom in das IC. Also High = An.

Die Pullups sind hier wahrscheinlich mehr oder weniger egal. Bei höheren Pullups fließt weniger Strom, aber es erhöht sich auch die Zeitkonstante der Schaltung, was sich negativ auf die Flankensteilheit auswirken kann und das ganze u.U. empfindlicher macht. Kommt auf die Schaltung an. Wenn das sowieso alles nur langsam geht reichen auch hohe (d.h. schwache) Pullups.

Perfekt, DANKE FÜR DIE ANTWORT !

Hallo,

eine nähere Erklärung zur Programmierung gibts hier zum lesen.