de:netzer:io

Netzer GPIO

Netzer IO

Für die Funktionalität muss das IO Projekt (base oder pro) auf den Netzer geladen werden.

Hier ist ein Überblick über die 13 verfügbaren Netzer-Pins.

Netzer Name ID Pinleiste PIC Pin Strombelastbarkeit Ausgang Maximale Eingangsspannung Beschreibung und zusätzliche Funktionen
SPI_INT j JP1 RC2 25  mA 5,5  V PWM- und Impulsausgang
SPI_CLK k JP1 RC3 25  mA 5,5  V Takt des SPI- oder I2C-Moduls - RTS-Ausgang für UART (Ab Version 1.5)
SPI_MI l JP1 RC4 25  mA 5,5  V Dateneingang des SPI-Moduls, Datenleitung des I2C-Moduls - CTS-Eingang für UART (Ab Version 1.5)
SPI_MO m JP1 RC5 25  mA 5,5  V Datenausgang des SPI-Moduls
SPI_CS i JP1 RF7 2  mA 5,5  V GPIO
RX h JP2 RC7 25  mA 5,5  V Empfangsleitung UART
TX g JP2 RC6 25  mA 5,5  V Sendeleitung UART
IO0 a JP2 RB0 25  mA 5,5  V Interrupt-Eingang, Flankenzähler und Impulstrigger
IO1 b JP2 RB1 25  mA 5,5  V Interrupt-Eingang und Flankenzähler
IO2 c JP2 RB2 25  mA 5,5  V Interrupt-Eingang und Flankenzähler
IO3 d JP1 RD1 8  mA 5,5  V PWM- und Impulsausgang
IO4 e JP1 RA2 2  mA 3,3  V ADC-Eingang
IO5 f JP1 RA3 2  mA 3,3  V ADC-Eingang

Alle Pins des Netzers können frei über das Webinterface als digitaler Eingang oder Ausgang konfiguriert werden. Die ID wird als Kürzel auf den Webseiten sowie im GPIO-Server, der Kommandoschnittstelle und seriellen Server verwendet.

Sollte der serielle Server aktiv sein, sind einige IOs nicht schreibbar, aber immer lesbar. Je nach Modus betrifft das verschiedene IOs. Die GPIO-Hauptseite informiert über IOs, die vom seriellen Server benutzt werden.

Jeder IO-Pin hat eine eigene Konfigurationsseite, die über die GPIO-Hauptseite erreichbar ist. Darüber kann die Signalrichtung konfiguriert werden, aber auch neue Funktionen wie PWM, Impuls, Flankenzähler und ADC eingestellt werden.

Allgemeine Konfiguration

Das automatische Neuladen stellt ein, nach wieviel Sekunden die GPIO-Hauptseite automatisch neugeladen werden soll (bei Überwachung von bestimmten Eingängen). Das Neuladen wird browserseitig angestossen, der Browser muss das Refresh also unterstützen (schaut dazu in die Browser-Dokumentation).

GPIO Hauptseite

Die GPIO Hauptseite ermöglicht den schnellen Überblick und Zugriff auf alle IOs. Digitale Signale werden in Form einer Checkbox oder eines Balls dargestellt (Javascript muss aktiviert sein). Eingänge sind ausschliesslich lesbar. PWM-/Impuls-Werte werden in Form eines Textfeldes dargestellt, können also direkt geändert werden.

Von der Hauptseite kann durch Auswahl der entsprechenden ID in der “Konfigurieren”-Box auf eine der IO Konfigurationsseiten gewechselt werden.

Jeder Netzer-Pin kann als digitaler Ausgang konfiguriert werden. Eine logische '0' entspricht dem Spannungspegel 0  V, eine logische '1' dem Spannungspegel 3,3  V. Die maximale Strombelastbarkeit ist der Tabelle im Überblick zu entnehmen.

Weitere elektrische Daten sind dem Datenblatt des Netzer-Controllers zu entnehmen.

Auf der IO-Konfigurationsseite kann der Startwert festgelegt werden, der nach Neustart des Netzers angenommen wird.

Der Ausgang ist über die GPIO-Hauptseite und über den GPIO-Server oder die Kommandoschnittstelle schreib- und lesbar.

Jeder Netzer-Pin kann als digitaler Eingang konfiguriert werden. Es ist dabei die maximal zulässige Eingangsspannung zu beachten (siehe IO-Tabelle im Überblick). Weitere elektrische Daten sind dem Datenblatt des Netzer-Controllers zu entnehmen.

Um eine Beschädigung des Netzers zu verhindern, sollten Eingänge möglichst nicht offen bleiben, sondern immer durch eine Spannungsquelle oder durch Pullup- oder Pulldownwiderstand auf definierten Spannungsniveau gehalten werden.

Für jeden digitalen Eingang kann konfiguriert werden, ob bei auftretenden Änderungen am Pin (steigende, fallende oder beide Flanken) direkt eine Nachricht an den GPIO-Server oder die Kommandoschnittstelle gesendet werden soll.

Konfigurationsdialog für Flankenzähler

IO0, IO1 und IO2 sind mit Flankenzählern ausgestattet. Es werden je nach Einstellung steigende oder fallende Flanken gezählt. Die Zählrichtung (dekrementieren oder inkrementieren) ist konfigurierbar. Der Zähler ist 15 Bit breit. Überläufe werden registriert und auf der jeweiligen IO-Seite angezeigt. Durch die Reset-Checkbox kann der Zählerwert zurückgesetzt werden. Auf Zählerwert und das Überlaufflag kann alternativ mit GPIO-Server oder Kommandoschnittstelle zugegriffen werden.

Der Filter ermöglicht das Entprellen von beispielsweise Taster- oder Relaiskontakten und kann zwischen 1  ms und 250  ms in Stufen eingestellt werden.

Handelt es sich um eine externe Signalquelle, die gezählt werden soll, wird der Pin als digitaler Eingang konfiguriert. Es können aber auch Ausgangsflanken gezählt werden, beispielsweise, wie oft der GPIO-Server bereits ein Signal geschrieben hat.

Neben der normalen digitalen Funktion kann IO0 Interrupts auslösen. Auf den Interrupt ist ein Flankenzähler installiert. Weiterhin kann eine Flanke an diesen Pin dazu verwendet werden, Impulse an IO3 oder SPI_INT auszulösen.

Für das Auslösen der Flanke muss der IO0 Flankentrigger aktiviert sein. Je nach Einstellung wird der Impuls bei negativen oder positiven Flanken ausgelöst. Der Flankenzähler muss hingegen für die Impulserzeugung nicht unbedingt aktiv sein. Für externe Trigger-Signale muss IO0 als digitaler Eingang konfiguriert sein.

IO3 und SPI_INT können für das Generieren von PWM- oder Impulssignalen verwendet werden. Folgende Abbildung zeigt beispielhaft den Konfigurationsdialog für IO3.

 Konfigurationsdialog für PWM und Impulsausgänge

Einige der Einstellungen betreffen sowohl IO3 als auch SPI_INT:
  • PWM-Frequenz
  • Impulsmodus
  • Impulseinheit

Kontinuierliche PWM-Signale werden über einen 10-Bit-Wert (0..1023) eingestellt. Dieser Wert gibt das Tastverhältnis des Signals wieder. Der Wert selbst wird über die GPIO-Hauptseite oder mittels des GPIO-Servers oder der Kommandoschnittstelle geschrieben und gelesen.

Der PWM-Startwert ist die Default-Einstellung direkt nach Neustart des Netzers.

Der PWM-Wert beeinflusst die Länge der ersten Halbwelle im Verhältnis zur zweiten. Je nach Polarität (Logik) des Signals wird beispielsweise bei einem PWM-Wert=1023 eine Gleichspannung von 0  V (Logik=0) oder 3,3  V (Logik=1) erzeugt.

Die PWM-Frequenz schliesslich beeinflusst direkt die Länge der beiden Halbwellen. Es werden die Werte 40  kHz, 10  kHz und 2,5  kHz unterstützt.

Im Impulsmodus können einzelne oder auch kontinuierliche Impulsfolgen generiert werden. Der Impulswert ist 16  Bit breit, hat aber einen Minimalwert von 100, der nicht unterschritten werden kann. Der Wert selbst wird über die GPIO-Hauptseite oder mittels des GPIO-Servers oder der Kommandoschnittstelle geschrieben oder gelesen. Die Impulslänge ist intern gepuffert, so dass das Ausgangssignal bei Änderungen keine unzulässigen Zustände annimmt.

Die Logik bezieht sich auf die Polarität des Impulses. 0-Logik bedeutet, der Impuls ist 0, danach nimmt der Pin den 1-Zustand an. 1-Logik bedeutet, der Impuls ist 1, danach nimmt der Pin den 0-Zustand an.

Der Startwert ist die Default-Einstellung direkt nach Neustart des Netzers.

Wird der Impuls getriggert, wird ein Impuls der Länge (Aktueller Impulswert * Impulseinheit) am Pin generiert. Es können die Einheiten 100  ns, 200  ns, 400  ns und 800  ns eingestellt werden.

Modus Einzelimpuls Immer dann, wenn ein neuer Impulswert geschrieben wird, wird der Impuls getriggert.

Modus Trigger von IO0 Immer dann wenn an IO0 eine zuvor konfigurierte Flanke auftritt, wird der Impuls getriggert.

Modus Kontinuierlich Analog zur PWM wird ein Impulsstrom am Pin generiert. Getriggert wird immer dann, wenn ein interner Zähler überläuft. Die Zeitdauer des Zählers beträgt (65556*Impulseinheit). Für IO3 und SPI_INT wird der selbe interne Zähler verwendet, so dass beide Signale immer in Phase sind.

IO4 und IO5 können Spannungen zwischen 0  und 3,3  V messen. Folgende Abbildung zeigt beispielhaft den Konfigurationsdialog für IO4. ADC Konfigurationsseite

Der Messwert ist 10  Bit (0..1023) breit. Er kann über die GPIO-Hauptseite oder den GPIO-Server oder die Kommandoschnittstelle abgefragt werden.

Der ADC wird nach dem Neustart des Netzers automatisch kalibriert. Beide Kanäle teilen sich den selben ADC. Der ADC wird immer erst aktiviert, wenn ein Auslesevorgang angestossen wird. Der Auslesevorgang dauert ca. 2,5  µs.