hardware:controllers:s0-an-rs232
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
hardware:controllers:s0-an-rs232 [2012/01/02 23:15] – angelegt justinotherguy | hardware:controllers:s0-an-rs232 [2019/05/29 10:29] (aktuell) – Link ins Mailinglistenarchiv fixed zugschlus | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | do hesch | + | ====== S0-Impuls Zähler direkt über RS232 auswerten ====== |
+ | Diese simple Methode erlaubt es, ohne zusätzliche Hardware, einen S0-Impuls Zähler über einen RS232-Port auszuwerten. Viele Computer und embedded Systeme besitzen einen RS232-Port. Alternativ kann auch ein RS232-zu-USB Adapter benutzt werden. | ||
+ | |||
+ | < | ||
+ | Der Großteil des Inhalts dieser Seite stammt aus einer [[http:// | ||
+ | </ | ||
+ | |||
+ | ===== Grundidee ===== | ||
+ | Ziel ist es den Abstand aufeinanderfolgender Impulse zu messen, die bis max. 1 mal pro Sekunde kommen und ca. ~100 ms lang sind. Das erinnert an das DCF77 Funkuhr-Signal (1 Impuls pro Sekunde, 100 oder 200 ms lang == 0 bzw. 1). | ||
+ | |||
+ | Und seit 2 Jahrzehnten ist es gängig, dieses DCF77-Signal einfach über eine serielle Schnittstelle mit 50 Baud auszuwerten ([[http:// | ||
+ | |||
+ | Die Länge des S0-Impulses sind hier nicht von Interesse. So muss man nur die S0-Ausgänge an eine serielle Schnittstelle zwischen Rx und z.b. RTS hängen. (Irgend eine Steuerleitung, | ||
+ | |||
+ | ===== Umsetzung ===== | ||
+ | Bei der Verkabelung ist auf die Polarität des S0-Anschlusses zu achten. Viele S0-Zähler realisieren diesen über einen Optokoppler und nicht über einen Schaltkontakt! | ||
+ | |||
+ | Also muss | ||
+ | * S0- (Swissnox Klemme 21) mit RS232-Rx (Pin 2 auf DSUB-9) und | ||
+ | * S0+ (Swissnox Klemme 20) mit RS232-RTS (Pin 7 auf DSUB-9) | ||
+ | verbunden werden. | ||
+ | Die restliche Verkabelung auf ' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Mac Gyver Variante der Schaltung. Für den produktiven Einsatz nicht empfohlen ;) | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Alternativ kann man auch die Reste einer seriellen Maus endlich zu was Vernünftigem verwenden und damit die Verkabelung an den Zähler realisieren: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ===== Raspberry PI ===== | ||
+ | < | ||
+ | vzlogger loggt jetzt auch GPIOs.. | ||
+ | </ | ||
+ | <note warning> | ||
+ | ACHTUNG: es handelt sich dort um einen UART-Port mit 3, | ||
+ | nicht um eine RS232 Schnittstelle.\\ | ||
+ | Die 3,3V entsprechen auch nicht der S0-Norm EN 62053-31, https:// | ||
+ | </ | ||
+ | |||
+ | Beim Raspberry Pi ist ein interne UART als ''/ | ||
+ | Die Pinbelegung ist GPIO 15 für RXD (P1-10).\\ | ||
+ | Achtung! Das funktioniert nicht in Verbindung mit Udos RPi-Erweiterungen, | ||
+ | |||
+ | Da es sich um 3,3V-Pegel handelt, wird die RTS-Leitung nicht benoetigt, GND und/oder Vcc reichen aus.\\ | ||
+ | (RTS GPIO 17 für RTS (P1-11), siehe [[http:// | ||
+ | Allerdings ist die RTS Funktion standardmäßig deaktiviert. Zum aktivieren muss der Pin erst in Alternate Function 3 versetzt werden. Das kann z.B. mit diesem Tool erfolgen: [[http:// | ||
+ | |||
+ | ===== Software ===== | ||
+ | Die Auswertung der seriellen Schnittstelle wird dabei von [[/ | ||
+ | |||
+ | ==== Alternative ==== | ||
+ | Harald König hat bei der Entwicklung dieser Methode Standardtools von Linux verwendet. | ||
+ | Seine Skripte sind im git verfügbar: [[https:// | ||
+ | |||
+ | Serielle Schnittstelle richtig konfigurieren (50 Baud, jedes Zeichen sofort ausgeben, ...): | ||
+ | < | ||
+ | |||
+ | Zeichen einlesen und Timestamp erzeugen: | ||
+ | < | ||
+ | |||
+ | Etwas mehr Test-Code um das ganze besser beurteilen zu können: | ||
+ | < | ||
+ | |||
+ | Spalte 1 liefert dann die Leistung in Watt, 2 die laufende Zeit in Sekunden, 3 die zeit seit dem letzten Impuls, und dann noch den gesamten strace-output mit original Timestamp. |
hardware/controllers/s0-an-rs232.1325542530.txt.gz · Zuletzt geändert: 2012/01/02 23:15 von justinotherguy