Kombinierte ADC-Pegelverschiebung/Offset und Skalierung

Ich versuche, die Spannung eines 2-Zellen-Li-Ionen-Akkus zu messen, der einen nutzbaren Bereich von 2,5 bis 4,4 Volt pro Zelle hat (nominal 3,0 - 4,2 V). Der ADC, den ich habe, hat einen Bereich von 0 - 1,8 V und ist 12 Bit. Ich konnte keine Lösung finden, die den ADC-Bereich effektiv nutzt und die Batteriespannung linear skaliert. Idealerweise möchte ich eher 5 - 8,8 V Volt als 0 - 8,8 V erfassen. Ich habe eine Vielzahl von Widerständen und einen Operationsverstärker (LM324) zur Verfügung und habe 12 V, 5 V und 3,3 V (und GND) Schienen zur Verfügung zu.

Was sind also praktikable Lösungen, die innerhalb der Einschränkungen gut funktionieren?

Ich frage mich, wenn Sie die Dinge ein wenig überdenken, würden Sie je nach ADC wahrscheinlich eine effektive Auflösung von etwa 5 mV erhalten. Brauchen Sie wirklich viel mehr als das?
Ich denke, ich muss diesen Punkt etwas klarer machen: Ich messe hier 2 Zellen in Reihe, also ist es ein Spannungseingangsbereich von eher 5 V bis 8,4 oder 8,6 V. Mit einem einfachen Spannungsteiler kann ich das bekommen etwa 40% Spannungsbereich am ADC, was nach dem, was ich gelesen habe, ziemlich schlecht ist. Denken Sie, dass ich mir in diesem Fall wegen der ADC-Auflösung keine Sorgen machen sollte, nur einen so kleinen Teil des verfügbaren ADC-Bereichs zu verwenden? (10 mV effektive Auflösung sind für mich in Ordnung).

Antworten (3)

Einige andere Antworten haben das Maximum als 4,2 V falsch gelesen, für 8,8 V, wenn Sie durch fünf teilen, was dem ADC einen Eingangsbereich von 0 - 1,76 V ergibt. Für einen 12-Bit-ADC (vorausgesetzt, er ist unipolar) sind insgesamt 4096 diskrete Messwerte möglich. Für das Maximum von 1,8 V oder einen Messwert von 4095 am ADC sind das 440 uV pro Messwert multipliziert mit fünf = 2,2 mV pro Messwert.

Die meisten ADCs neigen dazu, einen Fehler zu haben, der ungefähr dem Wert des niederwertigsten Bits entspricht, der nutzlos ist, weshalb ich im Kommentar auf die ungefähre Zahl von 5 mV effektiver Auflösung gekommen bin. Wie Andy jedoch erwähnte, kann dies durch Dithering verbessert werden. In diesem Fall würde ich wahrscheinlich die Summe von vier Samples nehmen und durch zwei teilen, um ein effektives Bit an Auflösung zu erhalten.

Der Atmel Application Note AVR121: Enhancing ADC resolution by oversampling bietet eine leicht verständliche Einführung in Dithering. Ein paar andere Dinge, die es wert sind, im Auge zu behalten, sind:

  • Stellen Sie sicher, dass Sie keinen zu hohen Wert für den Widerstandsteiler verwenden (siehe Eingangsimpedanz für Ihren ADC) oder anderweitig einen Spannungsfolger verwenden. Manchmal können Sie damit davonkommen, die übliche empfohlene Impedanz zu überschreiten, indem Sie den ADC-Kanal frühzeitig auswählen und der Sample-and-Hold-Kappe genügend Zeit zum Aufladen geben, bevor Sie die Messung vornehmen. Das ist oft eine nützliche Technik in Niedrigleistungssystemen.

  • Stellen Sie sicher, dass der Eingang von der Batterie zum ADC gut gefiltert und entkoppelt ist. Das ist normalerweise so einfach wie das Hinzufügen eines oder zweier Kondensatoren nach dem Widerstandsteiler, um ein Tiefpass-RC-Filter zu bilden.

  • Wenn Ihr System über Komponenten mit kurzen, aber hohen Stromspitzenanforderungen verfügt (z. B. ein GSM-Modem), ist es möglicherweise nützlich, einen Medianfilter zu implementieren, um die dadurch verursachten Einbrüche und potenziellen Spitzen durch das Umschalten von Netzteilen und dergleichen zu ignorieren.

Meinten Sie von Anfang an durch vier teilen? Außerdem versuche ich, Ihrer Arbeit zu folgen, um die Auflösung nach der Skalierung zu erhalten. Ich komme bis zu dem Punkt, an dem Sie mit fünf multiplizieren, um einen Schritt von 2,2 mV / Messwert zu erhalten. Woher kommt dieser Faktor x5, der Teiler? Könnten Sie auch erklären, wie Sie das LSB ignorieren und eine effektive Auflösung von 5 mV erzielen?
@ user35985 Ja, das kommt vom Teiler, 8,4 V / 5 = 1,68 V, also habe ich gerade eine runde Zahl ausgewählt, die sicherstellt, dass sie nicht über 1,8 V geht und einen kleinen Sicherheitsspielraum bietet, aber Sie müssen sie zurück multiplizieren, um Zählungen zu erhalten pro Lesung. Für das Dithering können Sie 4 Samples nehmen und durch 2 teilen, Sie erhalten den doppelten Messwert (was die Zählung pro Messwert verdoppelt) und das hilft, die Auflösung zu erhöhen. Viele ADCs haben einen Fehler von +/- 1 auf dem LSB und einige andere. Sie müssen das Datenblatt überprüfen, um sicherzugehen, dass 5 mV nur eine Vermutung sind, aber Dithering kann dort helfen, sodass Sie in jedem Fall unter 5 mV liegen sollten.
Es kann alles etwas verwirrend werden, aber für den Anfang würde ich nur einen einfachen Widerstandsteiler verwenden und sehen, wie es läuft, dann können Sie andere Änderungen wie das Dithering und den Tiefpassfilter vornehmen und mit einem Multimeter vergleichen, um zu sehen, wie Lohnenswert sind diese Schritte, um die zusätzliche Auflösung zu erhalten.

Sollen 4V4 das Maximum sein und 1V8 ergeben, sollte man die Spannung mit 2 Widerständen teilen.

Nehmen wir an, Sie möchten maximal 1 V1, dann können Sie einen 330-K-100-K-Widerstand in Reihe verwenden, die Spannung über Ihren 100 K beträgt 1/4. Ein 12-Bit-ADC gibt Ihnen eine hervorragende Auflösung :) Wahrscheinlich reicht ein 33K - 22K aus.

D.

Widerstandsteiler im Eingang eines ADC sollten im Hinblick auf die empfohlene Impedanz bestimmt werden, die vom Hersteller des ADC-Geräts vorgeschlagen wird, um einen geringen Fehler einzuführen. Ein hochohmiger Teiler kann die ordnungsgemäße Ladung des Sample & Hold-Kondensators verhindern.
Diese "4V4"- und "1V8"-Arten, Spannungen auszudrücken, sind wirklich nervig zu lesen. Dies ist eine englischsprachige Website, daher ist die Verwendung eines Punkts zwischen der Ganzzahl und den Bruchziffern eindeutig.

Wenn Sie es auf die Spitze treiben, erhalten Sie mit einem 4: 1-Spannungsteiler 1,1 Volt für einen Eingang von 4,4 Volt. Wenn 1,8 Volt die maximale Eingangsspannung ist, dann stellen 1,1 Volt 61,1 % des Skalenendwerts dar, und bei einer Auflösung von 12 Bit haben Sie ein Bit = 4 x 268 μ v = etwa 1 mV.

Da aufeinanderfolgende Messungen nicht genau das gleiche Ergebnis liefern, können Sie mitteln, um eine bessere Auflösung zu erhalten – dies wird als Dithering bezeichnet und nutzt die zufällige Natur des Rauschens in Ihrem Messsystem.

Anderer Hinweis auf Dithering von Wikipedia hier