Metainformationen zur Seite
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
plugins:multi_io:gpio_module:pcf8574a_expansion_module [2023/06/23 17:30] – Michael Schlenstedt | plugins:multi_io:gpio_module:pcf8574a_expansion_module [2023/07/29 12:00] (aktuell) – Michael Schlenstedt | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== PCF8574(A) | + | ====== PCF8574(A) |
===== Beschreibung ===== | ===== Beschreibung ===== | ||
Zeile 9: | Zeile 9: | ||
Abbildung: (c) [[http:// | Abbildung: (c) [[http:// | ||
- | Ein Chip bzw. Modul kann 8 IOs bereitstellen. Je nach Konfiguration können diese als Ein- oder Ausgang dienen. Über einen Interrupt (der an einen GPIO des Raspberry angeschlossen werden muss), werden bei Eingängen Änderungen in Echtzeit eingelesen. Es können bis zu 8 Module parallel betrieben werden (also insgesamt 64 IOs). Dazu werden diese im “Daisy Chain”-Verfahren einfach hintereinander gesteckt. Wenn das nicht ausreicht, können weitere 8 Module des Schwester-Chipsatzes PCF8574**A** verwendet werden und so bis zu 128 IOs am Raspberry bereitgestellt werden. Reicht das immer noch nicht, können zusätzlich [[plugins:multiio: | + | Ein Chip bzw. Modul kann 8 IOs bereitstellen. Je nach Konfiguration können diese als Ein- oder Ausgang dienen. Über einen Interrupt (der an einen GPIO des Raspberry angeschlossen werden muss), werden bei Eingängen Änderungen in Echtzeit eingelesen. Es können bis zu 8 Module parallel betrieben werden (also insgesamt 64 IOs). Dazu werden diese im “Daisy Chain”-Verfahren einfach hintereinander gesteckt. Wenn das nicht ausreicht, können weitere 8 Module des Schwester-Chipsatzes PCF8574**A** verwendet werden und so bis zu 128 IOs am Raspberry bereitgestellt werden. Reicht das immer noch nicht, können zusätzlich [[plugins:multi_io: |
===== Datenblatt ===== | ===== Datenblatt ===== | ||
Zeile 49: | Zeile 49: | ||
==== Eingänge ==== | ==== Eingänge ==== | ||
- | Das Modul hat eingebaute PullUp-Widerstände (keine Pulldown-Widerstände). Man verschaltet die Eingänge also so, dass sie im geschlossenen Zustand den PIN auf GND ziehen. | + | Das Modul hat eingebaute PullUp-Widerstände (keine Pulldown-Widerstände). Man verschaltet die Eingänge also so, dass sie im geschlossenen Zustand den PIN auf GND ziehen. **Ich empfehle dringend zusätzlich zu den internen Widerständen externe PullUp-Widerstände zu verwenden!** Ohne externe Widerstände konnte ich keine stabile Erkennung der Eingangszustände realisieren. |
{{plugins: | {{plugins: | ||
Zeile 61: | Zeile 61: | ||
Die Lösung ist die Verwendung von sogenannten Interrupts. Interrupts signalisieren dem Betriebssystem eine Statusveränderung z. B. eines PINs. So ist es möglich den Status der Eingänge nur abzufragen, wenn sich der Status geändert hat (im Gegensatz zum permanenten, | Die Lösung ist die Verwendung von sogenannten Interrupts. Interrupts signalisieren dem Betriebssystem eine Statusveränderung z. B. eines PINs. So ist es möglich den Status der Eingänge nur abzufragen, wenn sich der Status geändert hat (im Gegensatz zum permanenten, | ||
- | Die Module haben zu diesem Zweck einen INT-Pin, der auf LOW gesetzt wird, sobald sich der Zustand eines der PINs am Modul ändert. Der INT-Pin wird wieder auf HIGH gesetzt, sobald der Zustand aller Pins Peinmal | + | Die Module haben zu diesem Zweck einen INT-Pin, der auf LOW gesetzt wird, sobald sich der Zustand eines der PINs am Modul ändert. Der INT-Pin wird wieder auf HIGH gesetzt, sobald der Zustand aller Pins einmal |
{{https:// | {{https:// |