Das ausgewählte Bild dieses Beitrags ist von Emphyrio auf Pixabay

Ein Gerät, das im parasitären Stromversorgungsmodus betrieben wird, bezieht seinen Strom aus einer Datenleitung statt aus der regulären Stromversorgungsleitung. Dies kann beabsichtigt oder unbeabsichtigt sein. Im letzteren Fall können alle möglichen unerwarteten Dinge passieren.

Hintergrund

Zusammen mit einem Geocaching-Freund, der Tischler ist, habe ich in den nahegelegenen Weinbergen eine Reihe von Caches platziert, die eine Hommage an frühe Videospiele sind. Diese Geocaches sind nicht unter einer Wurzel oder einem Stein versteckt, sondern sie sind für jedermann sichtbar.

Die Cache-Boxen sind Informationstafeln, die Auskunft über die Traubensorten im Weinberg geben. Das Interessante ist, dass diese Tafeln einen geheimen Öffnungsmechanismus haben. Wenn man so eine Tafel öffnet, findet man ein paar interessante Dinge, wie z.B. eine Art „Game-Boy“ (oben rechts im Bild unten).

Auf diesen „Game-Boys“ habe ich einfache Varianten von Videospielen wie Pong, Tetris, Space Invaders, Super Mario und Mine Sweeper implementiert. Man muss diese Spiele bis zu einem gewissen Grad lösen, um weitere Informationen zu erhalten, wie z.B. einen Teil des Codes, um das Schloss zu öffnen. Darüber hinaus muss man sich auch mit einer praktischen Herausforderung auseinandersetzen, z.B. dem Lösen eines Holzpuzzles.

Werfen wir einen genaueren Blick auf den „Game-Boy“, der hauptsächlich aus der Box selbst, einem TFT-Display und einigen Tasten besteht.

Beim Öffnen eines solchen „Game Boy“ zeigt sich, dass in der Box nicht viel los ist. In der Abbildung unten sieht man eine 9-V-Batterie, ein Nokia-5110-Display und einige Kabel. Unterhalb des Displays befindet sich eine ATmega328P MCU.

Das Nokia 5110 Display ist sehr beliebt, da es so billig ist, insbesondere wenn es direkt im Fernen Osten gekauft wird. Es ist jedoch nicht sehr zuverlässig und es gibt eine große Variabilität. Aus diesem Grund bin ich vor einigen Jahren auf das DOGS102N-6 Display umgestiegen, das zuverlässiger und schärfer ist, keine Hintergrundbeleuchtung benötigt, tolerant in Bezug auf die Versorgungsspannung ist, und außerdem mehr Pixel besitzt, nämlich 102×64 statt 84×48. Es ist jedoch ein bisschen teurer. Unten sieht man ein Exemplar, das auf einer Adapterplatine montiert ist, die es pinkompatibel mit dem 5110-Display macht.

Im Laufe der Jahre habe ich alle 5110-Displays durch DOGS102-Displays ersetzt, was bedeutete, dass ich auch die Firmware anpassen musste. Eine unerklärliche Beobachtung war, dass bei einigen „Game-Boys“ das angezeigte Bild manchmal auf den Kopf gestellt wurde. Ich führte dies auf das Übersprechen zurück, da die SPI-Leiterbahnen auf der Leiterplatte sehr nahe beieinander lagen. Und Übersprechen ist in der Tat etwas, das in diesem Zusammenhang nicht ganz unbekannt ist. Interessanterweise verschwand das Phänomen, wenn die Versorgungsspannung auf 3,6 V erhöht wurde. Also kaufte ich 3,6 V Spannungsregler und verwendete 9-V-Blockbatterien, anstatt mich auf meine Lieblings-3,6-Volt-Li-SOCI2-Batterien zu verlassen.

In der Hoffnung, das oben genannte Problem zu lösen, habe ich mich vor kurzem entschlossen, die Grundplatine so umzugestalten, dass die SPI-Busleiterbahnen nicht nahe beieinander verlaufen. Nun, es stellte sich heraus, dass ich völlig falsch lag. Übersprechen war nicht der Grund für das auf dem Kopf stehende Display.

Parasitäre Stromversorgung

Der Temperatursensor DS18(B)20 kommuniziert über das One-Wire-Protokoll. Dieses Protokoll ermöglicht es explizit, einen Sensor über die Datenleitung mit Strom zu versorgen. Die Datenleitung ist eine Open-Collector-Leitung, die sich die meiste Zeit im hohen Zustand befindet und einen Kondensator im Sensor auflädt. Diese Ladung wird verwendet, um Signale vom Master zu empfangen. Die Verwendung dieses parasitären Stromversorgungsmodus ist eine sehr clevere Möglichkeit, die Anzahl der erforderlichen Leitungen zu reduzieren, da man auf die Vcc-Leitung verzichten kann.

Das obige Beispiel ist eine intendierte Verwendung der parasitären Stromversorgung. Es gibt jedoch auch die ungewollte parasitäre Stromversorgung. Wer je versucht hat, den Stromverbrauch durch Ausschalten eines Bausteins zu minimieren, wird unter Umständen die folgende Beobachtung gemacht haben. Obwohl die Spannungsversorgung gekappt wurde, hat der Baustein noch immer Strom verbraucht. Insbesondere wenn wir über I2C-Geräte sprechen, reicht es nicht aus, die Stromzufuhr auszuschalten. Man muss auch die Daten- und Taktleitungen trennen oder erden. Andernfalls saugt das Gerät immer noch Strom und kann tatsächlich noch aktiv sein und funktionieren.

Die beste Erklärung für ein solches Verhalten habe ich in einem Arduino-Forum-Thread gefunden. Tom Carpenter wies darauf hin, dass die Schutzdioden auf CMOS-Eingangsleitungen ausreichen, um die CMOS-Schaltungen mit Strom zu versorgen, wie im Bild unten dargestellt.

Wenn man also ein Gerät abschalten möchte, sollte man entweder die Stromversorgungspins und alle Eingänge (und Ausgänge) trennen oder sie alle auf das gleiche Spannungspotential legen, vorzugsweise auf Masse.

Zurück zum „Game-Boy“

Wie oben erwähnt, habe ich die Cross-Talk-Hypothese mit meiner neu entwickelten Leiterplatte überprüft. Und es stellte sich heraus, dass das Phänomen der auf dem Kopf stehenden Anzeige immer noch beobachtbar war.

Was machen? Obwohl das Display nicht stromhungrig sein soll, habe ich die Spannung am Vcc-Pins des Displays überprüft, der von einem GPIO-Pin der MCU versorgt wird. Und es stellte sich heraus, dass an dem Vcc-Pin nur 2,5 V an lagen. Angesichts der Tatsache, dass das gesamte System mit 3,3 V versorgt wird, war dies ziemlich überraschend. Während die GPIO-Pins möglicherweise nicht die volle Spannung liefern, sollte es je nach erforderlichem Strom doch nahe dran sein (siehe folgende Abbildung).

Das DOGS102N-6 Display verwendet typischerweise 250 μA. Die Spannung sollte also sehr nahe bei 3,3 V liegen. Bei der Überprüfung des Quellcodes stellte sich heraus, dass der Stromversorgungspin für das Display korrekt ausgeschaltet wird (wie alle anderen Display-Pins), wenn das System in den Schlafmodus versetzt wird. Der Stromversorgungspin wird jedoch nie eingeschaltet! Mit anderen Worten, das Display lief die ganze Zeit in einem parasitären Stromversorgungsmodus. Die Box funktionierte trotzdem 7 Jahre lang.

Ich habe keine gute Erklärung, warum ich vergessen habe, den Code zum Anschalten des Displays einzufügen, da ich es in anderen Spielen richtig gemacht hatte. Aber dann überprüft man nie etwas, wenn es zu funktionieren scheint. Die 5110 Displays hatten offenbar überhaupt kein Problem damit. Bei den DOGS102-Displays hatte ich gelegentlich eine auf dem Kopf stehendes Anzeige, wenn die Versorgungsspannung unter 3,4 Colt lag. Auf jeden Fall kann ich jetzt nach der Korrektur wieder die 3,6 Volt Li-SOCI2-Batterien verwenden und das Display arbeitet robust bis hinunter zu 2,5 Volt.

Zusammenfassung

Parasitäre Stromversorgung kann intendiert sein, wie im Fall des DS1820-Sensors. Es kann jedoch auch versehentlich passieren. Bei Low-Power-Anwendungen kann dies zu einem übermäßigen Stromverbrauch führen. Wenn man also ein Gerät ausschalten möchte, sollte man immer alle Verbindungen trennen oder auf Masse legen. Außerdem kann parasitäre Stromversorgung auch eine vergessene Verbindung zu einem Stromversorgungspin teilweise maskieren. In diesem Fall arbeitet das betroffene Gerät weniger zuverlässig. Mit anderen Worten, wenn eines der Geräte ein erratisches Verhalten zeigt, ist es immer eine gute Idee, den Spannungspegel der Versorgungspins zu überprüfen.

Views: 64