Wie kann ich ein Eingangssignal für CMOS ohne Stromversorgung schützen?

Meine Schaltung hat ein Batterieladegerät und einen ATMega88. Der ATMega muss den Zustand des Batterieladegeräts erkennen – aber wenn die Batterie zu schwach ist, wird der ATMega möglicherweise nicht mit Strom versorgt.

Ich weiß, dass es schlecht ist, einen CMOS-Eingang mit mehr als 0,3 V über VCC anzusteuern - Sie können Chips durch die Schutzdioden mit Strom versorgen, ein Latch-up verursachen usw.

Ich sehe drei mögliche Lösungen:

1) Verwenden Sie einen Bus-Transceiver mit doppelter Versorgung. http://www.ti.com/lit/ds/symlink/sn74lvc1t45.pdf Dies fügt mehr Kosten hinzu, als ich möchte.

2) Setzen Sie einen 100K-Widerstand in Reihe mit dem Signal, so dass "nicht viel" Strom in den ausgeschalteten Stromkreis fließt. Ich denke, dies sollte kein Latch-up verursachen oder etwas durchbrennen, könnte aber dennoch einige Schaltkreise einschalten und einen unerwünschten Betrieb verursachen.

3) Verwenden Sie Teilerwiderstände, um das Signal auf <0,3 V herunterzustufen, und speisen Sie es in einen ADC-Pin ein. Dies erfordert zusätzliche Arbeit und Zeit zum Erfassen - und ich bin immer noch etwas nervös, Spannung / Strom in nicht mit Strom versorgte CMOS einzuspeisen.

Ich neige also zu Option 3, hoffe aber, dass es eine bessere Option gibt, an die ich nicht gedacht habe.

Warum sollte der ATmega nicht mit Strom versorgt werden, selbst wenn die Batterie zu schwach ist?
Um den Akku vor Schäden zu schützen, muss ich den LDO ausschalten, wenn der Akku zu weit entladen wird. Selbst wenn alle Chips heruntergefahren sind, würde ich etwa 100 uA aus einem zu 95% entladenen 150-mAh-Akku ziehen, was ihn in ein paar Tagen erschöpfen würde - und ich kann nicht erwarten, dass Benutzer ihn sofort aufladen.

Antworten (2)

Der einfachste Weg, mit einem solchen digitalen Signal umzugehen, besteht darin, es einem BJT oder MOSFET mit einem Pullup von der Prozessorspannung zuzuführen. Zum Beispiel:

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Die Diode ermöglicht es, dass der Eingang auch negativ wird, ohne den Prozessor oder Transistor zu beschädigen. Kurze Spannungsspitzen von +/-100 V schaden nichts, unabhängig vom Leistungszustand des Prozessors. Die Kosten betragen höchstens ein paar Cent.

Dies sieht so aus, als würde es das Signal invertieren - was für meine Anwendung in Ordnung ist, ich möchte nur sicherstellen, dass ich es verstehe.
Ja, es invertiert das Signal.

Wäre es möglich, einige Schaltkreise hinzuzufügen, damit der Atmega von jeder Stromquelle gespeist werden kann, die das Batterieladegerät versorgt? Dies ist komplizierter und erfordert die Implementierung einer „Power Path“-Lösung, bei der die Batterien während des Ladevorgangs von der Last getrennt werden. Aber es eliminiert die Möglichkeit, dass der Atmega während des Ladevorgangs abgeschaltet wird.

Normalerweise sind die Ladestatusausgänge Open-Drain. Wenn dies der Fall ist, ziehen Sie einfach den Ausgang zum Prozessor VCC hoch. Dann müssen Sie sich keine Sorgen machen.

Eine andere Option, billiger und einfacher als ein Transceiver, ist ein Doppeltransistor (oder zwei separate Transistoren) mit einem PMOS und einem NMOS. Siehe Skizze unten. Wenn das M2-NMOS-Gate hoch ist, wird das Ladegerät-Ausgangssignal mit dem Prozessoreingang verbunden. Wenn das M2-NMOS-Gate niedrig ist, ist der Prozessoreingang isoliert. Stellen Sie sicher, dass der Signalpegel kompatibel ist. Wenn die VDD des Prozessors weniger als 3 V beträgt, müssen Sie außerdem einen anderen NMOS mit einer niedrigeren Vgs(th) auswählen.

Falls gewünscht, könnte das NMOS-Gate von einem IO-Pin anstelle einer direkten Verbindung mit VDD angesteuert werden. Die Software müsste jedoch sicherstellen, dass das Gate vor dem Lesen des Eingangs hochgefahren wird. Wenn der Prozessor ausgeschaltet ist, sind alle seine Ausgänge niedrig, so dass dies in dieser Situation immer noch sicher ist.

Vielleicht sollten Sie einen Link zum Ladegerät-IC posten und uns mitteilen, welche Statusausgänge Sie überwachen, damit wir prüfen können, ob sie Open-Drain sind oder nicht.

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Bei sorgfältiger Überprüfung des Datenblatts (MCP73833) ist der "Power Good" -Ausgang Open-Drain, aber nutzlos, da er nicht über den Eingang gezogen werden sollte - der häufig getrennt wird. Ich muss also den USB-VBus-Pegel direkt erfassen.
Ich muss den batteriebetriebenen LDO ausschalten, wenn die Batterie zu schwach wird. Ich denke, ich könnte einen zweiten USB-betriebenen LDO hinzufügen, mit einer Diode nachgeschaltet, um den Strom fernzuhalten, wenn der USB-Anschluss abgezogen wurde. Aber eine Widerstandsbrücke scheint einfacher zu sein. Ich brauche den ATMega eigentlich nicht während des Ladevorgangs - ich spüre nur den Ladezustand, damit ich ihn ausschalten kann, wenn das Ladegerät angeschlossen ist.