Inhaltsverzeichnis
ACHTUNG! Diese Seite wird nicht mehr länger gepflegt. Wechselt auf die englischsprachige Seite für eine aktuelle Anleitung (Link unten links).
Netzer GPIO
Überblick
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 Asynchrone serielle Schnittstelle (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 Asynchrone serielle Schnittstelle (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.
Webseiten
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.
Digitale Ausgänge
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.
Digitale Eingänge
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.
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.
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.
Impulstrigger
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.
PWM- und Impulsgenerator
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.
- PWM-Frequenz
- Impulsmodus
- Impulseinheit
PWM
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.
Impuls
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.
ADC
IO4 und IO5 können Spannungen zwischen 0 und 3,3 V messen. Folgende Abbildung zeigt beispielhaft den Konfigurationsdialog für IO4.
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.