Ich muss die Batteriespannung messen, die meine Elektronik versorgt.
Vbat versorgt den Buck-Boost-DC / DC-Wandler und geht dann zu uC und anderen ICs (3,3 V). Ich möchte 3x2 Goldpins in Verbindung mit OpAmp verwenden, um den Vbat-Spannungsbereich auszuwählen: U1 (3,6 V Li-Ion) oder U2 (7,2 2x Li-Ion) oder U3 (12 V Pb), die 0 V bis 3,3 V erzeugen uC ADC-Eingang / OpAmp-Ausgang.
Das ist klar.
Jetzt möchte ich uC über GPIO auf irgendeine Weise zurückmelden, damit ich weiß, welcher Jumper- / Batterietyp ausgewählt wurde (das muss ich in der Software wissen). Ich stelle mir einige zusätzliche OpAmps vor, die an R2 / R2 '/ R2 '' angeschlossen sind, aber ich habe keine Ahnung, wie das geht.
Ich werde deine Hilfe zu schätzen wissen :)
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Bearbeiten 1:
Das Gerät dient zur Messung des pH-Wertes und der Leitfähigkeit von Wasser. Es benötigt Temperatur-Feedback für pH- und Leitfähigkeits-ICs und kommuniziert über GSM. Es wird mit Batterien betrieben, also muss es energiesparend sein. Die meiste Zeit schläft es und alle 5 Minuten misst es. GSM wird nur für tägliche Berichte oder wenn Messungen außerhalb des Bereichs liegen eingeschaltet (GSM-Schlafmodus oder DC/DC-Schlafmodus). Wenn Sub-ICs schlafen, dauert es: 1 mA (pH) + 0,4 mA (Leitfähigkeit) + 1 mA (GSM-Schlafmodus) oder 1 uA (GSM-DC/DC-Ruhestrom) + ?? mA (PT1000 - noch nicht bestimmt) + ??mA (uC - noch nicht bestimmt, aber niedrig).
Die Batteriespannungs-ADC-Messung wird benötigt, um den Batterieprozentsatz der Kapazität und die Lebensdauer (basierend auf vergangenen Statistiken) zu berechnen, zusätzlich eine Rohspannungsanzeige. Für oben brauche ich OpAmp oder Spannungsteiler. Die Auswahl des Batterietyps (Eingangsspannung) ist obligatorisch, um Berechnungen detaillierter durchzuführen. Ich möchte keine Softwareberechnungen durchführen und gegebenenfalls herausfinden, ob die Batterie 12 V oder 3,6 V beträgt, da es möglich ist, jede Batteriekombination anzuschließen, deren Summenspannung zwischen 3 V und 15 V liegt. Natürlich lässt sich anhand eines Spannungsteilers leicht der Batterietyp bestimmen: 3,2–4,2 V für Einpack-Li-Ion, 6,4–8,4 V für Zweipack und 10,8–12,6 V. Nur laut gedacht :)
Zurück zu Merritum: Ich muss zwischen OpAmp und Spannungsteiler wählen, basierend auf Energieeinsparung. Der Spannungsteiler (Mega-Ohm) verbraucht uA für den Ruhestrom des OpAmp im Abschaltmodus. Ich bin verwirrt, weil ich zuerst dachte, OpAmp wird energiesparender sein. Was denkst du, Jungs und Mädels? :)
Bearbeiten 2:
Genauigkeit und Auflösung. Der ADC stammt von STM32F091 und hat 12 Bit. Wenn Sie also das Rauschen abschneiden, können Sie davon ausgehen, dass es sich um 10 Bit handelt. Der schlimmste Fall ist ein Li-Ionen-Akku, dessen Spannung zwischen 3,4 V und 3,7 V liegt. Das ergibt 300mV Delta. Um den Prozentsatz darzustellen, benötige ich einen Schritt von 0,5%, sodass die Auflösung 1,5 mV pro Schritt beträgt. Dies ist bei Verwendung eines dedizierten Spannungsteilers der Fall.
Bei Verwendung eines einzelnen Spannungsteilers für alle Batterietypen: Die maximale Batteriespannung kann etwa 13 V (für Blei) betragen, daher muss ich sie auf 3,3 V skalieren => div = 4. Bei Verwendung eines einzelnen Li-Ion erhalte ich mit diesem Teiler Werte von 925 mV bis 850 mV, also ist Delta 75 mV. Die benötigte Auflösung beträgt 75 mV/200 = 0,375 mV. Schritt für 0 V-3,3 V 10 Bit ist 3,2 mV, also 10-mal zu klein. Selbst wenn ich alle 12 Bit verwende, ist der Schritt zu klein - 0,8 mV.
Ich denke, ich brauche einen dedizierten Spannungsteiler für den Batterietyp oder wieder OpAmp? Was wäre energiesparender??
Da die Jumper manuell gesetzt werden müssen, könnte eine einfache Lösung darin bestehen, einen zweiten Jumper zu verwenden, der dem Mikrocontroller die ausgewählte Verstärkung anzeigt. Der Benutzer muss also zwei Jumper auf identische Positionen setzen. Oder verwenden Sie einfach einen Drehschalter mit zwei Polen und drei Positionen (zB: SS-10-23NPE ).
Ein ganz anderer Ansatz wäre die Implementierung einer Autoranging-Funktion, bei der der Mikrocontroller den Verstärkungsfaktor automatisch auswählt. Verwenden Sie einfach einen kleinen analogen Schalter , der vom Mikrocontroller gesteuert wird. Jetzt ist es möglich, das Eingangssignal automatisch zu verstärken: Beginnen Sie mit dem niedrigsten Verstärkungsfaktor und arbeiten Sie sich nur einen Schritt nach oben, bevor eine Sättigung des ADC-Eingangs eintritt. Schützen Sie ggf. den ADC-Eingang vor Überspannung: Fügen Sie einfach eine Klemm-Zehner- oder TVS-Diode (wichtig: niedriger Leckstrom!) zum Ausgang des Verstärkers hinzu.
Die zu messende Spitzenspannung kann 13 V betragen, und wenn Sie einen 10-Bit-ADC haben, können Sie diesen mit einem geeigneten Widerstandsteiler so einrichten, dass er ~ 13 mV pro Bit ergibt.
Wie viel Genauigkeit benötigen Sie beim Messen der Spannung - reichen 13 mV nicht aus?
Jedenfalls ist dies die einfachste Methode, und Sie müssen sich keine Gedanken darüber machen, welchen Link Sie ausgewählt haben.
Ersetzen Sie Ihre MCU durch ein STM32F2- oder F3-Gerät mit eingebauten Operationsverstärkern.
Einige sind Pin-kompatibel und haben einen internen PGA, Sie können den Großteil oder den gesamten externen Operationsverstärker und die zugehörigen Schaltkreise aus dem Design entfernen.
ST haben einen Anhang, bei dem Oversampling und Rauschen zusätzliche zwei Bits ergeben (dh eine effektive 14-Bit-Genauigkeit).
http://www.st.com/web/en/resource/technical/document/application_note/CD00211314.pdf
http://www.st.com/web/en/resource/technical/document/application_note/CD00004444.pdf
Ich habe dies getestet und es funktioniert, insbesondere bei der DC-Messung mit niedriger Impedanz.
Das F373-Gerät hat auch 16-Bit-ADCs, aber das wäre wirklich ein Overkill.
Sie können Ihren Operationsverstärker auch durch einen PGA MCP6S21/2/6/8 oder MCP6S91/2/3 ersetzen.
Ihre Genauigkeit, Kalibrierung, Prüfung, Leiterplatte und Herstellung werden alle einfacher und kosten weniger.
Der Stromverbrauch ist minimal, da Sie das gesamte Gerät mit einer sehr niedrigen Geschwindigkeit (32 kHz) takten können. Ich würde auch das ganze Gerät in den Ruhezustand versetzen oder vielleicht das Analog für längere Zeit zwischen den Messungen ausschalten, je nachdem, was Sie sonst noch tun müssen.
Auf diese Weise Strom zu sparen, ist bei externen Operationsverstärkern eine Herausforderung.
Für Einzelstücke kosten die Nucleo-Boards < 10 $, Discovery etwas mehr.
Bimpelrekkie
Nick Alexejew
Andi aka
ChrisR
killdaclick
killdaclick
killdaclick
killdaclick
Andi aka
killdaclick
ChrisR
frarugi87