Kombinierte ADC-Skalierung und Offset mit variablen Eingangsspannungsbereichen

Ich versuche, eine Schaltung zu erstellen, die es mir ermöglicht, eine Spannung (sei es AC oder DC) innerhalb des Bereichs des Arduino ADC zu skalieren und zu versetzen.

Die Spannung kann zwischen + und - 250 V liegen, aber ich muss auch in niedrigeren Spannungsbereichen eine gute Empfindlichkeit haben.

Zu diesem Zweck betrachte ich eine Schaltung, mit der Sie den Spannungsbereich variieren können, den der Eingang erwartet, und ihn entsprechend verstärken / dämpfen. Wie ich die Entscheidung treffen und die verschiedenen Verstärkungen einstellen werde, ist vorerst ein anderes Thema. Mich interessiert im Moment nur die Skalierung und Verrechnung.

Bisher bin ich auf diese Schaltung gekommen:

Geben Sie hier die Bildbeschreibung ein

Das scheint genau das zu tun, was ich für den Bereich von +/- 250 V will. Ich weiß nicht, wie "sicher" diese Schaltung ist und ob ich eine der Komponenten mit den 250 V gefährde oder nicht. Die Diagramme unten zeigen (von links nach rechts) die Eingangsspannung, den Stromverbrauch des unteren 10-M-Widerstands, die Spannung über dem 100-M-Widerstand (der den Arduino-ADC-Eingang simuliert) und den Stromverbrauch des oberen 10-M-Widerstands.

Wenn ich jetzt die Eingangsspannung auf nur +/- 2,5 V absenke und den Rückkopplungswiderstand des Operationsverstärkers entsprechend anpasse, springt aus irgendeinem Grund die Offsetspannung, die der Operationsverstärker hinzufügt, direkt nach oben. Ich weiß nicht genau, ob dies die Schuld des Simulators ist, den ich verwende, oder ob es wirklich passieren wird, da ich diese Schaltung noch nicht mit einem Steckbrett versehen habe (ich denke, das ist die nächste Stufe).

Dies ist die Ausgabe der 2,5-V-Version:

Geben Sie hier die Bildbeschreibung ein

Sie können sehen, wie der Offset hochgesprungen ist und die Ausgabe massiv übersteuert.

Wenn ich den unteren 10K-Widerstand auf den virtuellen Masse-Offset-Spannungsteiler auf nur 3,3K absenke, wird dies kompensiert, aber das ist nicht schön - ich möchte nur den einen Widerstand variieren.

Der Operationsverstärker ist (wird) ein 5-V-Einzelversorgungs-Rail-to-Rail-E / A.

Die beiden Dioden sollen den Eingang des Operationsverstärkers vor Überspannung schützen - ich weiß nicht, ob diese Schaltung sie unbedingt benötigt, aber ich denke, es schadet nicht, sie dort zu haben.

Außerdem weiß ich nicht, ob die Widerstandswerte ganz meinen Wünschen entsprechen - ich habe sie gewählt, um den Stromverbrauch niedrig und die Impedanz hoch zu halten. Ich möchte nicht, dass sie den Frequenzgang der Schaltung mehr beeinflussen, als ich helfen kann - die Eingangswellenform könnte alles von DC bis zu etwa 500 kHz oder so sein, und ich muss diese am ADC-Ende so originalgetreu wie möglich reproduzieren. (Ich weiß, dass der Arduino nur bei niedrigeren Geschwindigkeiten wirklich abtasten kann, aber der Arduino dient nur zum Experimentieren - das endgültige System verwendet einen dsPIC mit 1,1 Msps ADC).

Was kann ich also tun, um A) einen stabileren Offset zu erhalten, B) die Variation der Eingangsempfindlichkeit zu ermöglichen, ohne entweder den Operationsverstärker oder den ADC zu zerstören, und C) die Schaltung sicher zu machen, um sie beispielsweise mit a zu verbinden Europäische Netzspannung?

Antworten (2)

Mehrere Kommentare:

  1. Fügen Sie Ihrem Schaltplan Komponentenbezeichner hinzu. Es ist schwierig, sonst über die Schaltung zu sprechen.

  2. Sie scheinen ein wenig verwirrt über Widerstandsteiler zu sein. Sie haben zwei Widerstände am Eingang, aber nur einer tut etwas. Der Widerstand gegen Masse ist nur eine Last am Eingang, hat aber ansonsten keinen Einfluss auf Ihre Schaltung. Es sieht irgendwie so aus, als ob die beiden Eingangswiderstände (Komponentenbezeichner würden definitiv helfen) als Teiler gedacht sind, der nicht richtig angeschlossen wurde.

  3. Ja, Sie können Operationsverstärker für Verstärkungen unter 1 verwenden, aber Sie können stattdessen auch Widerstandsteiler verwenden. Denken Sie auch daran, dass Operationsverstärker bestenfalls als stabil für die Einheitsverstärkungsgröße spezifiziert sind, aber nicht darunter. Dafür müssten Sie Ihre eigene Entschädigung hinzufügen.

  4. Drei Widerstände, einer von der Eingangsspannung, einer nach Masse und einer zur Versorgung, können so eingestellt werden, dass der Eingangsspannungsbereich ohne aktive Teile einigermaßen gut auf den 0-5-V-A/D-Bereich abgebildet wird. Sie können den Operationsverstärker dann als Spannungspuffer verwenden, da der Ausgang des Widerstandsteilers möglicherweise keine ausreichend niedrige Impedanz hat.

  5. Anstatt die Verstärkungen zu ändern, würde ich nur ein paar verschiedene Verstärkungseinstellungen haben, die verschiedene A / D-Pins ansteuern. Solange die Spannungen richtig begrenzt sind, schadet es nicht, wenn sie außerhalb des Bereichs liegen. Das volle 220-V-Signal kann für den hochempfindlichen A/D-Eingang außerhalb des Bereichs liegen, also ignorieren Sie dies und verwenden nur den Messwert mit niedriger Empfindlichkeit. Wenn der Signalpegel niedrig ist, wird der hochempfindliche Eingang nicht beschnitten, sodass Sie ihn verwenden können. Es muss nichts geändert werden, außer in der Firmware, die entscheidet, welcher Eingang für die jeweilige Größe des Eingangssignals verwendet wird.

  6. 500 kHz sind viel für die von Ihnen gezeigten hochwertigen Widerstände. Diese sollten bei 50 Hz arbeiten, aber bei einer 1000-mal höheren Frequenz wird die parasitäre Kapazität im Vergleich zu diesen Widerständen erheblich sein.

Hinzugefügt:

Wenn die von Ihnen verwendete Software keine Komponentenbezeichner zulässt, verwenden Sie etwas, das dies zulässt. Verwenden Sie das zumindest, wenn Sie den Schaltplan zeichnen, damit andere ihn sehen können. Simulatoren werden sowieso überbewertet. Sie haben ihren Nutzen, aber allzu oft scheinen sie den Benutzer vergessen zu lassen, dass er ein eigenes Gehirn hat. Bei einer trivialen Schaltung wie Ihrer würde es länger dauern, sie in einen Simulator einzugeben, als sie einfach auszudenken.

Mit einem Teiler mit drei Widerständen können Sie, wie ich oben erwähnt habe, viel tun:

Dadurch kann der 0-Vdd-Ausgangsbereich nicht immer exakt mit dem Eingangssignal gefüllt werden. Aber selbst wenn dies nicht möglich ist, gibt es normalerweise eine Lösung, die gut genug ist. Je mehr Sie dämpfen müssen, desto einfacher ist es im Allgemeinen, die Ausgabe in den gewünschten Bereich zu bringen.

Um diese Schaltung zu analysieren, beachten Sie, dass R2 und R3 selbst einen Spannungsteiler von Vdd bilden. Dies kann man sich als Spannung zwischen Vdd und Masse mit einer bestimmten Impedanz vorstellen (siehe Thevanin):

Wobei R4 = R2 // R3. Wie Sie sehen können, haben wir einen einfachen Spannungsteiler mit zwei Widerständen. Die Teilerverstärkung ist R4/(R1+R4) und die Ausgangsimpedanz ist R1//R4. Aus der Mathematik der 7. Klasse wissen wir, dass alles, was diese Schaltung mit der Eingangsspannung macht, beschrieben werden kann durch:

Vout = Vin(M) + B

Sie können M und B leicht genug aus der obigen Gleichung von zwei verschiedenen Punkten aus finden. In Ihrem Fall ist Vdd = 5 V, Sie möchten also, dass der Ausgang um die Hälfte oder 2,5 V symmetrisch ist. Bei Vin = 0 möchten Sie also Vout = 2,5. Zwei weitere offensichtlich bekannte Punkte sind die Spitzen der Eingangswellenform. Nehmen wir den negativen, also bei Vin=-250 Vout=0. Jetzt können M und B leicht gelöst werden.

Wenn Sie eine exakte Lösung finden möchten, können Sie die Gleichungen für M und B in Bezug auf R1, R4 und V1 schreiben. Solange V1 größer als 0 und kleiner als Vdd ist, ist eine exakte Lösung möglich. Aus dem vereinfachten zweiten Schema sollte ersichtlich sein, dass:

M = R4/(R1 + R4)
B = V1 * R1 / (R1 + R4)

Beachten Sie, dass dieses System unterbeschränkt ist, da es 3 Unbekannte und nur 2 Gleichungen gibt. Der zusätzliche Freiheitsgrad kann als endgültige Ausgangsimpedanz von Vout ausgedrückt werden, die R1//R4 ist.

Sie haben hier genug, um alle Gleichungen aufzuschreiben und zu lösen. Das ist nicht mehr Elektronik, sondern Grundschulrechnen, das ist also dein Job. Stattdessen werde ich hier einen weniger genauen, aber intuitiveren Hack machen.

Angenommen, Sie möchten, dass die Ausgangsimpedanz 10 kΩ nicht überschreitet. Wir wissen, dass die Dämpfung hoch sein wird, also wird R1 deutlich größer als R4 sein. Machen wir der Einfachheit halber einfach R4 = 10 kΩ. Dadurch wird die Ausgangsimpedanz etwas kleiner als 10 kΩ. Sie haben einen Eingangsbereich von 500 V und möchten einen Ausgangsbereich von 5 V, daher sollte die Teilerverstärkung 1/100 betragen. Um die Dinge noch einmal zu vereinfachen, machen wir einfach R1 = 100 * R4 = 1 MΩ. Das führt tatsächlich zu einer Verstärkung von 1/101, aber ein kleiner Spielraum ist eine gute Idee, und Sie müssten 1% Widerstände besorgen, um sicherzustellen, dass die Verstärkung nicht mehr als 1/100 beträgt. Bisher haben wir:

R1 = 1 MΩ
R4 = 10 kΩ

Bei diesem hohen Dämpfungsverhältnis entspricht B ziemlich genau V1, also machen wir einfach V1 = 2,5 V. Jetzt müssen wir noch R2 und R3 von R4 bekommen. Von den obigen Werten sollte jeder 20 kΩ betragen. Wir machen jedoch einige Annäherungen, und es ist trotzdem gut, einen kleinen Slop zuzulassen, also würde ich mit dem nächstniedrigeren gemeinsamen Wert von 18 kΩ beginnen.

Jetzt müssen Sie das alles anschließen und die Ausgangsspannung an den Spitzen der Eingangsspannung berechnen, wobei Ungenauigkeiten in den Widerständen berücksichtigt werden. Ich überlasse Ihnen das als Übung, aber die obigen Werte sind entweder gut genug oder für einen Ausgangspunkt ziemlich nah dran.

1: Ich würde gerne, aber die Sim-Software lässt Sie nicht. 2: Was soll ich hier tun, um es richtig zu machen? 4: Gibt es eine Chance auf einen Schaltplan dafür? 5: Das ist eine großartige Idee - es würde jedoch im endgültigen Design einen größeren PIC bedeuten, was kein Problem darstellt. 6: Kann ich niedrigere Widerstände verwenden und den Strom irgendwie niedrig halten, damit ich bei Verwendung von 220 V keinen von der Größe eines Wohnblocks verwenden muss?
Das sind einige fantastische Informationen, Olin, danke. Ich werde jetzt mit Widerstandsteilern basteln.

Die Offset-Spannung steigt, wenn Sie die Verstärkung erhöht haben und Sie den nicht invertierenden Eingang über "Mittelpunkt" eingestellt haben.

Bei der oberen Schaltung gibt es tatsächlich eine Dämpfung, sodass der Operationsverstärker seinen Ausgang nicht sehr stark ansteuern muss, um den invertierenden Eingang auf 2,5 V zu halten.

Wenn Sie Rf auf 10 Meg erhöhen, muss der Ausgang seinen Ausgang auf die erforderliche Spannung treiben, um dem Eingangsstrom zu entsprechen und den invertierenden Eingang auf 2,5 V zu halten.
Bei 0 V am Eingang muss der Ausgang beispielsweise auf 5 V schwingen, um den invertierenden Eingang auf 2,5 V zu halten. Wenn Sie Rin gleich Rf haben und die Eingangsspannung (0 V) und die Mittelpunktspannung an -IN (2,5 V) kennen, ist es einfach herauszufinden, wie hoch der Spannungsteiler (Operationsverstärker OUT) sein sollte (5 V). )
Wenn Ihr Signal um einen anderen Punkt (0 V) als den Mittelpunkt des Operationsverstärkers (2,5 V) schwingt, ändern Sie beim Ändern der Verstärkung auch den Effekt, den der DC-Offset (z. B. 2,5 V) hat.

BEARBEITEN - Wenn Sie so viele Operationsverstärker wie nötig verwenden möchten, wäre es am einfachsten, einen festen Eingangsspannungsteiler zu haben, gefolgt von einem nicht invertierenden Unity-Gain-Puffer und dann einigen Operationsverstärkern mit unterschiedlichen Verstärkungen. Sie können auch ein paar "Abgriffe" am Eingangsspannungsteiler verwenden und dann z. B. ein paar OptoMOS verwenden , um das Signal entsprechend zu leiten (diese sind nützlich für die AC / DC-Einstellung, um auch den Kondensator zu umgehen).
Wie Olin erwähnt, wird jede parasitäre Kapazität einen Tiefpassfilter erzeugen, der eine ziemlich niedrige Grenzfrequenz haben kann, also müssen Sie sich dessen bewusst sein, wenn Sie für Ihre höchsten Frequenzen entwerfen, ein paar pF machen einen großen Unterschied mit 10 Megaohm (ich würde bleiben bis <= 1 Megaohm) Die Eingangsimpedanz muss ebenfalls sehr hoch sein (>100 Megaohm), um eine Dämpfung zu verhindern, daher wäre ein FET-Eingangs-Operationsverstärker am besten.
Soweit Doppelschienen gehen, können sie hier das Leben erleichtern, wenn Sie eine DC-Kopplung benötigen, eine Ladungspumpe verwendet werden kann (die Schienen müssen nicht symmetrisch sein), gefolgt von einer Filterung oder natürlich einem Schaltregler. Sie haben das Signal um 0 V bis zum (Operationsverstärker vor dem) ADC und dann zur Pegelverschiebung.

Ich würde mir ein paar Eingangsstufen für Oszilloskope ansehen, da diese anscheinend die gleichen Anforderungen haben. Es gibt viele da draußen, sehen Sie sich einige der Servicehandbücher für kommerzielle Bereiche an, und auch Sachen wie Bitscope und DSO Nano/Quad.

Wahrscheinlich würde es auch nicht schaden, ein gutes Buch über Opamps zu kaufen, wenn Sie noch keins haben - ein anständiges, frei verfügbares ist Opamps for Everyone .
IIRC geht sehr detailliert auf die simultanen Gleichungen ein, die an der Berechnung der Konstanten der Geradengleichung beteiligt sind (wie Olin ein wenig auf den Widerstandsteiler eingeht). Wenn Sie also eine einzige Versorgung behalten möchten, wäre Olins Rat in Kombination mit den ersten paar Kapiteln gutes Lesen.
Persönlich würde ich mich für die Doppelschiene entscheiden, da sie Dinge wie die Aufrechterhaltung einer konstanten DC -> AC-Eingangsimpedanz erleichtert und Probleme mit Mittelpunktvorspannung verhindert, wenn Sie von der 1x- auf die 10x-Sondeneinstellung wechseln, wodurch R1 in Olins Beispiel effektiv geändert wird.

Das Ziel von 500 kHz sollte die Dinge ein wenig einfacher machen, da Sie sich nicht so viele Gedanken über Hochgeschwindigkeitsprobleme machen müssen. Möglicherweise möchten Sie jedoch, dass ein Filter für Anti-Aliasing-Zwecke ein gutes Stück vor 500 kHz abrollt - ich würde sagen, um 350 kHz, um das Filtern einigermaßen einfach zu halten. Ich nehme an, Sie möchten einige Teilungseinstellungen (bis zu sagen 100 mV/div) und Sie möchten den Bildschirm auch in 10 unterteilen. Ich gehe auch davon aus, dass Sie eine Sonde mit einer 10-fachen Einstellung verwenden werden.
Also bei maximaler Teilungseinstellung: 500/10x Tastkopf = 50V, geteilt durch 1:10 Eingangsspannungsteiler = 5V. Bei einer typischen Oszilloskop-Eingangsimpedanz von 1 Megaohm würde dies 900 k und 100 k für den Teiler entsprechen.
Für den niedrigsten Bereich von 100 mV/div benötigen Sie eine Verstärkung von 50 vom Eingang zum ADC. 1V Eingang dividiert durch 10 = 100mV, mal 50 ergibt 5V.
Das Aufteilen der Verstärkung auf ein paar Operationsverstärker erleichtert die anderen Verstärkungseinstellungen und behält eine anständige Bandbreite bei (höhere Verstärkung = niedrigere Bandbreite der Operationsverstärker). Nehmen wir an,
ein Operationsverstärker mit z von 1, 2 und 10 (unter Verwendung von Standard-CMOS-Multiplexern wie 74HC4051/2) gibt Ihnen einige Optionen von 1 bis 50. Dann einen ADC-Puffer-Operationsverstärker mit abschließender Pegelverschiebung, und Sie können alles mit einem Quad-Operationsverstärkerpaket (FET-Eingang) tun .

Können Sie vielleicht einen Weg vorschlagen, die Schaltung zu ändern, oder eine bessere Schaltung, bei der der Offset gleich bleibt? Gerne baue ich so viele Operationsverstärker wie nötig ein und trenne bei Bedarf Verstärkung/Dämpfung vom Offset. Ich habe im Moment keine negative Schiene, könnte aber bei Bedarf zur Verfügung gestellt werden.
@Majenko - Ich habe die Antwort ein wenig bearbeitet. Ich fand Oszilloskop-Schemata sehr nützlich für Beispiele von Lösungen für diese Art von Problem.
Komisch, dass du das sagst - ein Zielfernrohr ist das, was ich mache ;)
Aha! :-) Je nachdem, was Sie erreichen möchten (Bandbreite, Reichweite, mechanische oder Softwaresteuerung usw.) und zu welchen Kosten, kann das analoge Frontend eine ziemliche Herausforderung sein, aber meiner Meinung nach lohnt es sich (habe es selbst ein paar Mal versucht mal mit mäßigem Erfolg) Dann gibt's den Rest natürlich zu gestalten :-) Viel Glück.
Softwaresteuerung, <=500KHz, +/-250V. Die Softwareseite ist kein Problem, ebenso wenig die digitalen Aspekte - nur das analoge Frontend...
@ Majenko - Ich habe noch ein paar Gedanken / Vorschläge hinzugefügt.