Ich arbeite an einem batteriebasierten AVR-basierten Projekt mit geringem Stromverbrauch, das einige verschiedene Geräte integriert, darunter einen Neopixel-Streifen und einen Adafruit-Pixie . Wenn sich das gesamte Gerät im Ruhezustand befindet, sollte es weniger als 0,1 mA verbrauchen, um die Lebensdauer des LiPo-Akkus zu maximieren.
Ich habe alles zum Laufen gebracht (gemessen 0,035 mA), bin mir aber nicht sicher, ob ich es unbedingt „richtig“ gemacht habe, und ich plane, ein Produkt darauf zu bauen, also würde ich es gerne richtig machen.
(Nicht gezeigt: eine Flyback-Diode für das Relais)
Das Hauptanliegen, das ich habe, ist die „parasitäre“ Stromversorgung von Geräten, wenn VCC über den von den Datenpins fließenden Strom getrennt wird. Zum Beispiel hat der Pixie (der über die serielle Schnittstelle kommuniziert) keinen Ausschaltmodus und selbst wenn er ausgeschaltet ist, leert er etwa eine Milliampere. Also platzierte ich ein kleines Relais, um die VCC zu trennen, und stellte fest, dass der serielle Pin den Pixie tatsächlich noch mit Strom versorgt. Hinweise an anderer Stelle deuten darauf hin, dass viele Chips eine Diode haben, die ihre digitalen Eingangspins als Leistungsschutz an VCC weiterleitet. Um dies zu lösen, musste ich die serielle Bibliothek und tatsächlich digitalWrite (PIN, LOW) im Ruhezustand anhalten.
Das Gleiche gilt für den WS2812b-Streifen. Durch das Trennen von VCC kann das Gerät weiterhin über den Daten-Pin mit Strom versorgt werden. Und in anderen Designs habe ich, wenn ich GND mit einem N-Kanal-MOSFET getrennt habe, das Gegenteil gesehen - einen Rückfluss von Strom durch die Datenleitung zur Erde! (Dies musste mit einer Diode pro Post auf PJRC gelöst werden.) Die WS2812b benötigen tatsächlich jeweils etwa eine Milliampere, selbst wenn sie nicht beleuchtet sind.
Die Frage lautet also: Gibt es eine allgemeine, „saubere“ Möglichkeit, VCC und GND während des Systemschlafens von Teilen eines Projekts zu trennen, wenn Datenpins im Mix vorhanden sind? Was ist die beste Vorgehensweise?
Einige Ideen:
- Erzwinge VCC zu GND (nicht sicher wie? Hbridge?). (Wenn ich das mache, was passiert mit den Datenpins, die hoch sind?)
- Platzieren Sie einen Tri-State-Puffer zwischen allen Datenpins und diesen Geräten und versetzen Sie den Tri-State-Puffer im Ruhezustand in einen hochohmigen Zustand. Trennen Sie VCC oder GND nur mit P- oder N-Mosfet
- Trennen Sie GND nur mit N Mosfet und platzieren Sie Dioden auf allen Datenpins
- Gibt es eine Art Power-Latch, der sowohl VCC als auch GND trennt und sie in einen Zustand mit hoher Impedanz versetzt (wie ein Drei-Zustands-Puffer für Strom?)? Auf diese Weise kann kein Strom aus den Datenleitungen "herausfließen".
Kann mich jemand auf die sauberste und wiederholbarste Art und Weise aufklären, wie ich mit dieser Art von Problem der Lasttrennung umgehen kann? (Unnötig zu erwähnen , dass ich Stunden damit verbracht habe, dieses Problem mit wenig Glück zu googeln, obwohl ich diesen technischen Hinweis zum Lastwechsel gefunden habe, der sich jedoch nicht mit Rückspeisung und parasitärer Leistung befasst.)