Spannungsteiler und ADCs

13

Ich möchte eine Spannung von 0-30 V mit einem MCU-ADC auslesen, der einen maximalen Eingang von 3 V hat.

Ursprünglich dachte ich an die Verwendung eines 100k-10k-Teilers (also 33V entspricht 3V), aber gemäß den Antworten auf die ADC-Eingangsimpedanz auf MCUs wird dies aufgrund des Eingangsleckstroms einen Fehler von 3% hinzufügen. Ich suche maximal 0,5% Fehler. Bei niedrigeren Werten für den Teiler besteht jedoch die Gefahr, dass die Eingänge der MCU aufgrund von Überspannung beschädigt werden (die Widerstände wirken zusammen mit den Klemmdioden am Eingang). Außerdem erhöhe ich die Verlustleistung meiner Widerstände, für die winzige 0603-Geräte ausgelegt sind 0,063 W maximal. Wie kann ich das vermeiden? nb Eingangsimpedanz ist nicht kritisch.

Ich mache mir keine Sorgen um die Abtastgeschwindigkeit. Es wird eine Batteriespannung von maximal 100 Abtastungen pro Sekunde überwacht.

Thomas O.
quelle
hast du den vorigen gebaut? 3% waren der schlimmste Fall, basierend auf dem schlimmsten Fall einer Leckage. Wenn Sie nicht viele davon herstellen, können Sie sie kalibrieren.
Kortuk
Kortuk, denkst du, ich könnte einen der Widerstände um 3% einstellen oder es in der Software handhaben (um 1,03x skalieren?)
Thomas O
Sie möchten eine hohe Präzision und einen geringen Stromverbrauch bei sehr geringen Zusatzkosten. Ich bin mir nicht sicher, ob das möglich ist. Sie können in einer Software kalibrieren, wie sie von kortuk erwähnt wurde, aber in einem fabelhaften Prozess, der Zeit in Anspruch nimmt, die gleich viel Geld kostet.
Kellenjb
Das Ansteuern eines MCU-ADC-Eingangs mit einer großen Impedanz ist ohnehin schlecht. Dies verlängert die Einschwingzeit und verursacht Verzerrungen usw. "Der ADC ist für Analogsignale mit einer Ausgangsimpedanz von etwa 10 kΩ oder weniger optimiert. Wenn eine solche Quelle verwendet wird, ist die Abtastzeit vernachlässigbar. Wenn eine Quelle mit einer höheren Impedanz verwendet wird Bei Verwendung dieser Methode hängt die Abtastzeit davon ab, wie lange die Quelle benötigt, um den S / H-Kondensator aufzuladen, was sehr unterschiedlich sein kann. Dem Benutzer wird empfohlen, nur niederohmige Quellen mit sich langsam ändernden Signalen zu verwenden, da dies den erforderlichen Ladungstransfer minimiert auf die S / H-Kappe "
Endolith

Antworten:

10

Verwenden Sie den Spannungsteiler mit Widerständen und anschließend einen Operationsverstärker. Verwenden Sie alternativ eine Operationsverstärkerschaltung, um die Spannung zu verringern, und Sie können die Anti-Alias-Filterung in einer Stufe durchführen!

smashtastic
quelle
+1 Verwenden Sie den Operationsverstärker mit einer Verstärkung von 0,1 und machen Sie ihn zum doppelten Anti-Aliasing-Filter
ajs410
Ich kann mir keinen Operationsverstärker leisten. Ich habe leider nicht genug Platz. Ich kann mir vielleicht einen Puffer-IC leisten, wenn sie klein genug sind und mit 8 Kanälen verfügbar sind.
Thomas O
Normalerweise kaufen Sie einfach einen winzigen Operationsverstärker und schließen ihn als Puffer an. national.com/mpf/LM/LMC7111.html SOT23 ist zu groß?
Endolith
Oh, du willst 8 Kanäle.
Endolith
1
Durch die Verwendung von Widerständen mit höherer Präzision wird der Spannungsteilerfehler verringert. Das zweite Problem besteht darin, dieses Signal in einen ADC zu treiben. Hier treten die Ungenauigkeiten auf, daher der Vorschlag, einen Puffer zu verwenden.
Smashtastic
14

Okay, von Ihrer Antwort auf meinen Kommentar denke ich, dass ich bei einer vollständigen Antwort hilfreicher sein kann.

Baue es!

Bauen Sie Ihren einfachen Resistive-Teiler. Dies hat viele Vorteile, denn eine Größe kostet eine andere.

Charakterisieren Sie es!

Jetzt werden Sie auch einen Mikrocontroller verwenden. Hier müssen Sie Ihren Fehler charakterisieren. Verwenden Sie einen Spannungsgenerator, der sehr genau ist. Überprüfen Sie nun die Spannungen und stellen Sie fest, welchen Fehler die uC tatsächlich misst.

Analysiere es!

Jetzt macht es Spaß. Es gibt eine Reihe von Dingen, die Sie messen können.

Genauigkeit und Präzision

Das Größte, was hier gemessen werden muss, ist, ob der Fehler an den Punkten reproduzierbar ist. WENN bei jedem Sweeping ein anderer Fehler auftritt oder wenn beim Sweeping auf einem anderen Pfad am selben Punkt ein anderer Fehler auftritt, ist dies keine Option. Dies geschieht häufig mit Ableitströmen. Das Wichtige dabei ist, dass Sie keine hohe Genauigkeit benötigen, sondern nur ein hohes Maß an Präzision. Wenn Sie Ihren Fehler charakterisieren können, kann Ihr uC ihn korrigieren. Wenn Sie eine große Varianz haben, müssen Sie Ihre Lösung ändern.

Was ist eine X-Punkt-Kalibrierung?

Wenn Sie nun, wie bereits erläutert, über eine hohe Genauigkeit verfügen, können Sie mit der Korrektur der Genauigkeit fortfahren. Wenn Sie nun die Eingangsspannung in Abhängigkeit von der Ausgangsspannung grafisch darstellen, müssen Sie die Anzahl der benötigten "Referenzpunkte" festlegen. Schöne Geräte erlauben einen Punkt (oder Nullpunkt, keine Kalibrierung nötig). Viele Temperatursonden.

Einpunktkalibrierung

Beide Linien haben die gleiche Steigung, aber einen Versatz. Sie müssen also nur den Wert finden, den Sie zu einem Datenpunkt hinzufügen müssen, um ihn zu korrigieren. Dies ist eine ideale Situation, da für jede neue Kalibrierung nur ein einziger Datenpunkt zum erneuten Kalibrieren erforderlich ist.

Zweipunktkalibrierung

Für beide linearen Kurven, möglicherweise einen Versatz und eine Steigungsdifferenz, benötigen Sie nur zwei Referenzpunkte und eine lineare Interpolation, um Ihren Versatz zu extrahieren. Dies ist immer noch relativ einfach. Nehmen Sie einfach einen beliebigen Punkt, multiplizieren Sie ihn mit einem Skalar und fügen Sie einen Versatz hinzu.

Wie Sie sehen, wird es umso unordentlicher, je mehr Punkte Sie benötigen. Irgendwann ist es einfacher, einfach jeden Datenpunkt zu nehmen und mit dem tatsächlichen Wert zu korrelieren. Wenn Sie beispielsweise feststellen, dass 0000 1 V, 0001 2 V und 0002 1,5 V beträgt. Das ist chaotisch und funktioniert immer noch nur, wenn die Offsets wiederholbar sind. Dies kann jedoch passieren.

Fassen wir es zusammen

Ich hoffe, das hilft, sag mir, wenn du mehr Klarheit brauchst. Wenn Sie am Ende einen sich ändernden Leckstrom haben, der nicht zuverlässig ist, ist es an der Zeit, sich nur mit der Notwendigkeit eines Puffers oder Ähnlichem zu befassen.

Ich sehe die Möglichkeit eines hohen Fehlers durch Leckage, aber ich würde wetten, dass der Fehler über den größten Teil des Bereichs relativ klein ist und, wenn er vorhanden ist, leicht korrigiert werden kann.

Kortuk
quelle
1
Als Randnotiz: Dies scheint eine Menge Arbeit zu sein, aber es ist tatsächlich ein relativ geringer Arbeitsaufwand, um die Komponentenkosten niedrig zu halten.
Kortuk
Guter Kommentar! eine brillante Art, dies in Software zu tun. Ihre letzte Methode zum Nachschlagen von Tabellen ist wahrscheinlich die beste. Der einzige Nachteil ist das ROM, das es verbraucht, aber für einen 8-10-Bit-ADC auf einer MCU sollte es machbar sein.
Smashtastic
Es kommt auf Daten an, ich habe in vielen verschiedenen Fällen eine 1-Punkt-Kalibrierung ausreichend. Nur ein Versatz. Und dann zahlt es sich aus, die Hardware für die automatische Kalibrierung einzubauen.
Kortuk