EI-OT Module,  PCF8574

Warum ein PFC8574 Eingangskanal nicht mit einem Schalter angesteuert werden sollte

PCF8574 inverted Inputs
PCF8574 Basics
Der Betrieb eines PCF8574 ist im Grunde kein Hexenwerk,
  • I2C Bus / Schnittstelle herstellen
  • I2C Adresse des PCF8574 ansprechen
  • Bits / Ports des PCF8574 steuern

Bekanntermassen unterstützt der der PCF8574 sowohl Eingänge als auch Ausgänge, aber die Grundlage bilden dabei die Ausgänge. Mit einfachen Worten die Grundeinstellung / Werkseinstellung der 8 Kanäle ist im Eigentlichen Ausgang.

Wie ein normaler GPIO wird auch hier LOW und HIGH Level, also – und + verwendet. Im Bezug der Ausgänge ist das nicht weiter erwähnenswert, im Bezug von Eingängen bedarf es einem entsprechenden Grundverständnis.

HIGH LOW Eingänge
Üblicherweise werden Eingänge als LOW beschaltet (nicht zu verwechseln mit einer Konfiguration). Ganz praktisch ausgedrückt, der GPIO wird mit einem Pull Down Widerstand beschaltet. Dadurch wird gewährleistet, dass sobald eine Spannungsversorgung erfolgt der GPIO über einen LOW Level verfügt. Schaltet man nun ein HIGH, also + auf den Widerstand erhält der GPIO das gewünschte HIGH (Leveländerung), wird das HIGH wider abgeschaltet fällt der GPIO <– durch den PULL Down zurück auf LOW.
 
Selbstredend kann ein GPIO auch mit einem Pull Up Widerstand beschaltet werden, unterliegt dem gleichen Funktionsprinzip, jedoch wird hier dann entsprechend LOW, also – geschaltet sodass der GPIO als Signal (Leveländerung) über den GND erhält.
Reduziert auf die Hardware entspricht dass einem invertiertem Signal, denn üblicherweise bedeutet HIGH + ist AN und LOW – bedeutet AUS.
 
PCF8574 Eingänge
Bereits bei der Inbetriebnahme, nachdem die Basiskonfiguration eines EI-OT Moduls mit PCF8574 durchgeführt wurde erkennt man die Eingänge des PCF8574 sind invertiert. Alle 8 Kanäle des PCF8574 erscheinen als Eingänge und alle Eingänge sind HIGH / zeigen eine 1.
Das ist auch notwendig, denn sobald der PCF8574 mit Spannung versorgt wird und LOW, besser gesagt kein HIGH am Kanal anliegt, beschaltet der PCF8574 den jeweiligen Kanal als Ausgang.
 
Dementsprechend sollte ein PCF8574 Eingang vorzugsweise nicht mit einem Schalter angesteuert werden.
 
Denn ist der Schalter geschlossen erhält der PCF8574 ein LOW / – wird geschaltet, startet nun der ESP8266 neu wird der Eingang automatisch als Ausgang konfiguriert und zwar unabhängig von der ESP-OS / ESP8266 Konfiguration.
PCF8574 Basics
Operating a PCF8574 in combination with an ESP8266 its not so difficult
  • activate an I2C Bus / Interface
  • trigger PCF8574 I2C address
  • control PCF8574 Bits / Ports

The PCF8574 supports Inputs also Outputs, but the Basic of the Ports is Output. In simple words the „factory default“ setting of the 8 PCF8574 Channels is Output.

Like a normal GPIO HIGH and LOW Level are used. Related to Outputs the function is simple, but if it comes to Inputs it needs some basics.

HIGH LOW Inputs
Typically GPIO Inputs are driven as LOW Level Inputs by using a Pull Down Resistor. In Detail the GPIO ist connected to GND thru a Resistor and soon as the circuit gets power the GPIO state is LOW Level. During a HIGH Input a positive + is switched to the Resistor and the GPIO detects a HIGH Signal. Soon as the HIGH Signal is off, the GPIO is falling back to LOW because of the Pull Down Resistor.
 
On the same principle but using a Pull Up Resistor, so Resistor is connected to VCC / + and the Trigger comes over GND / – and the GPIO triggers Level changed from HIGH to LOW. Reduced to circuit this is an inverted Signal, because normally + (HIGH) is ON and – (LOW) is OFF.
 
PCF8574 Inputs
After basic configuration of an EI-OT Module with PCF8574 all channels appear as Input Channels and all Inputs are HIGH, because of value 1. The HIGH Level its very important, because if the PCF8574 starts and gets a LOW on a channel the channel will be set as output.

Based on that it is not recommended using a switch as input, because if the switch is closed / active, the PCF8574 channel gets a LOW Signal. If the ESP8266 restarts, the PCF8574 channel will change to output, of course regardless of ESP-OS / ESP8266 Configuration.  

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert