Messungen an den GPIO-Ports eines Shelly Add-On plus, oder: Jeder Shelly hat einen PWM-Eingang...

  • Das Ausgangssignal des Shelly Add-On plus bei Spannungsmessung am analogen Eingang interessierte mich, und zwar die Frage: Ist es ein U/f-Signal?

    Dazu muß man sich kurz ansehen, welche GPIO-Ports das Add-On plus zur Signalübermittlung nutzt:

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Dargestellt ist der digitale Koppelbaustein NSi8241, der für die galvanische Trennung der Stromkreise des beherbergenden Shelly-Aktor (hier ein Shelly plus 1) sorgt. Daraus resultiert ja der Umstand, daß des Add-On plus einen diskret aufgebauten U/f-Wandler besitzt, weil die Meßwerte nur digital zum ESP32 übertragen werden können.

    Zur Verfügung stehen 4 GPIO-Ports (ESP_DBG_UART, TXD, RXD und GPIO0). Ein Nachverfolgen der Schaltung offenbart rasch, daß ESP_DBG_UART für den digitalen Input (DIG IN) genutzt wird, und die beiden Ports TXD und GPIO0 für den 1-Wire-Bus (digitale Sensorik) benötigt werden. Bleibt der RXD-Port zur Übermittlung der Spannungswerte am ANALOG IN übrig.

    Oszillographiert man das Signal an TP5 des Add-On plus, so wird schnell deutlich, daß es sich NICHT um eine U/f-Wandlung handelt: Die analogen Spannungswerte werden PWM-codiert übertragen. Hier das Oszillogramm für 3V Eingangsspannung:

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Das Tastverhältnis beträgt 30,78% bei einer Impulsbreite von 536µs.

    Bei Null Volt Eingangsspannung sieht das so aus:

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    ...und bei 10V so:

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Fasst man die Werte in einer Tabelle zusammen, erkennt man eine (relativ) stabile Grundfrequenz (rd. 580Hz) und die bekannten Abweichungen von der Linearität:

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Speist man ein solches PWM-codiertes Signal am GPIO-Port RXD eines x-beliebigen Shelly ein, an den man auch ein Add-On plus anschließen könnte, so lässt sich damit eine relativ frei gestaltbare Anzeige in WebUI bzw. App realisieren. Zu beachten ist, daß ein solcher Shelly AUSSCHLIESSLICH mit Kleinspannung (12V DC oder 24V DC) versorgt werden muß, denn die GPIO-Ports liegen ansonsten auf dem Potential des Außenleiters (Phase, L). Die Grundfrequenz des PWM-Signals sollte zwischen 500Hz und 1kHz liegen.

    Anwendungsfall: Anschluß von Sensoren mit time-of-flight-Messung und Impuls-Signal am Ausgang - und vieles andere mehr...

    „Habt Geduld. Alle Dinge sind schwierig, bevor sie einfach werden!“ (aus Frankreich)

    „Nothing in life is to be feared, it is only to be understood.“ (Marie Curie, 1867-1934)

    „Es reicht nicht“, rief Schiller, „Gedankenfreiheit zu fordern, man muß auch denken können, sonst fordert man Gedankenlosigkeitsfreiheit und die ist die Freiheit zur Dummheit, welche wiederum die schlimmste Unfreiheit überhaupt ist!“
    (Aus „Besuch aus Weimar“ von Gert Heidenreich, Schriftsteller, *1944 in Eberswalde)

    2 Mal editiert, zuletzt von thgoebel (26. Juli 2024 um 17:25)

  • Habe eine externe PWM-Quelle an Pin3 (RxD) und Pin7 (GND) eines Shelly plus 1 angeschlossen, um die Randbedingungen des PWM-Eingangs auszuloten: Der Rechteckgenerator (Tektronix PG501) wurde mit 50Ω abgeschlossen und auf 3V Ausgangsspannung (Vpeak) justiert.

    Die Meßwerte:

    PWM-Frequenz: 100Hz

    DTY-Cycle: 1,05%, Pulsdauer 108μs, Anzeige: 0,17V
    DTY-Cycle: 97,7%, Pulsdauer 9,65ms, Anzeige: 9,69V

    PWM-Frequenz: 1,05kHz

    DTY-Cycle: 11,13%, Pulsdauer 105μs, Anzeige: 0,92V
    DTY-Cycle: 97,7%, Pulsdauer 928μs, Anzeige: 9,85V

    Zwischen diesen beiden Eckwerten muß die Frequenz des PWM-Signals liegen - ansonsten lautet die Anzeige „Null Volt“. Selbstverständlich muß ein Add-On als Periphiegerät konfiguriert sein, mit „Voltmeter“ bzw. „Analog Input“. Das Add-On braucht physikalisch nicht vorhanden zu sein - wir wollen das PWM-Signal ja an Pin3 (RxD) einspeisen…

    „Habt Geduld. Alle Dinge sind schwierig, bevor sie einfach werden!“ (aus Frankreich)

    „Nothing in life is to be feared, it is only to be understood.“ (Marie Curie, 1867-1934)

    „Es reicht nicht“, rief Schiller, „Gedankenfreiheit zu fordern, man muß auch denken können, sonst fordert man Gedankenlosigkeitsfreiheit und die ist die Freiheit zur Dummheit, welche wiederum die schlimmste Unfreiheit überhaupt ist!“
    (Aus „Besuch aus Weimar“ von Gert Heidenreich, Schriftsteller, *1944 in Eberswalde)