Wie konvertiert man ein analoges Signal von 0 bis 10 V in 0 bis 2,5 V für den ADC-Eingang?

Ich habe ein analoges Signal, das zwischen 0 V und 10 V liegt. Ich möchte es für meinen ADC linear auf 0 bis 2,5 V herunterskalieren.

Ich befürchte, dass die Verwendung eines resistiven Spannungsteilers die Signalqualität beeinträchtigt. Ist das wahr? Wenn es nicht wahr ist, welchen Widerstandswert sollte ich für den Spannungsteiler verwenden?

mögliches Duplikat von Spannungsteilern und ADCs
@Kellenjb - Sowohl Spannungsteiler als auch ADCs und ADC-Eingangsimpedanz auf MCUs sind dieser Frage sehr ähnlich; Alle drei handeln von Widerstandsteilern und ADCs. Thomas gibt jedoch in beiden verknüpften Fragen an, dass er sich keine Sorgen um das Laden der Quelle macht, was eine Schlüsselkomponente der aktuellen Antworten ist. Außerdem hat noch niemand erklärt, wie der Widerstandswert bei den anderen Fragen berechnet wird.
@lionheart - Wie stark ist dein Quellensignal?
@KevinVermeer wie wäre es dann mit dieser Frage: PIC-Spannungsmessung ; und dann diese Frage für den Spannungsteilerteil: Spannungsteiler
@Kellenjb - Beide sind gut, aber keine berücksichtigt (oder muss berücksichtigen) die Eingangsimpedanz des Systems.
Es gibt einen Anwendungshinweis von Maxim Integrated . Sie können nachsehen.

Antworten (3)

Ja, ein Spannungsteiler ist theoretisch in Ordnung. Wie stark es die Signalqualität beeinflusst, hängt zum großen Teil davon ab, was Sie unter Qualitätssignal verstehen. Ist das HiFi-Audio, ein digitaler Datenstrom, Sprachaudio, HF oder etwas anderes?

Es gibt mehrere Probleme mit resistiven Spannungsteilern, die Sie beachten sollten:

  1. Der Spannungsteiler lädt das Quellensignal. Sie benötigen einen Teiler, der 1/4 des Eingangssignals ausgibt. Jeder Teiler mit dem oberen Widerstand 3x dem unteren wird das tun.

    In diesem Fall ist R1 = 3*R2. Die Impedanz, die von der Quelle in den Teiler blickt, ist R1 + R2. Sie müssen sicherstellen, dass dies hoch genug ist, um das Quellsignal nicht zu laden, um seine Eigenschaften an dem Punkt zu ändern, den Sie möchten. Wenn beispielsweise R1 = 30 kΩ und R2 = 10 kΩ, dann lädt der Teiler die Quelle mit 40 kΩ.

  2. Betrachten Sie die Ausgangsimpedanz. Das ist das meiste, worüber Steven gesprochen hat. Bei einer perfekten Spannungsquelle (Impedanz 0), die den Teiler ansteuert, beträgt die Ausgangsimpedanz R1//R2. Bei den obigen Beispielwerten wären das 30kΩ//10kΩ = 7,5kΩ. Wie Steven erwähnt hat, muss dies beim Anschluss an einen Mikrocontroller-A/D berücksichtigt werden. Es geht nicht so sehr darum, den Teilerausgang zu laden, als dass der A/D eine endliche Impedanz benötigt, um seine interne Haltekappe in endlicher Zeit aufzuladen. Bei hoher Impedanz erzeugt der geringe Leckstrom des A/D-Pins multipliziert mit der Impedanz auch genügend Offset-Spannung, um den A/D-Messwert zu verfälschen. Aufgrund dieser Probleme spezifizieren Mikrocontroller-Hersteller eine maximale Impedanz zum Ansteuern eines A/D-Eingangs. Bei alten PICs mit 8- oder 10-Bit-A/Ds waren dies im Allgemeinen 10 kΩ. Dies ist bei einigen neueren schnelleren A/Ds oder bei einer höheren Auflösung wie 12 Bit weniger. Einige aus der dsPIC-Familie benötigen nur wenige 100 Ω oder weniger.

  3. Frequenzgang. Es gibt immer eine gewisse Streukapazität. Die verschiedenen Streukapazitäten verursachen Tief- und Hochpassfilter. Das Endergebnis ist unvorhersehbar, da die Streukapazität unvorhersehbar ist. Unter erneuter Verwendung des 30-kΩ- und 10-kΩ-Beispiels beträgt die Ausgangsimpedanz 7,5 kΩ. Wenn dies beispielsweise mit 20 pF geladen wäre, hätten Sie einen Tiefpassfilter mit einem Rolloff von etwa 1 MHz. Wenn das Signal Audio ist, kein Problem. Wenn es sich um ein schnelles digitales Signal handelt, könnte dies ein ernsthaftes Problem darstellen.

    Eine Möglichkeit, damit umzugehen, besteht darin, absichtlich eine so kleine Kapazität wie möglich, aber ein Vielfaches der erwarteten Streukapazität hinzuzufügen, sodass die Gesamtkapazität vorhersagbar wird. Die Kapazität über jedem Widerstand muss umgekehrt proportional zu diesem Widerstand sein. Hier ist zum Beispiel ein schön ausbalancierter Spannungsteiler:

    Bei niedrigen Frequenzen dominieren die Widerstände und teilen das Signal durch 4. Bei hohen Frequenzen dominieren die Kondensatoren und teilen das Signal durch 4. Die Frequenzweiche, bei der die resistiven und kapazitiven Wirkungen ungefähr gleich sind, beträgt in diesem Beispiel 53 kHz.

    So funktionieren übrigens Teilungs-Scope-Sonden. Eine "10x"-Sonde teilt das Signal durch 10. Da dies über den gesamten Frequenzbereich des Oszilloskops erfolgen muss, wird jedem Widerstand eine kleine Kapazität hinzugefügt. Die Streukapazität kann niemals genau bekannt sein, und es wird sowieso eine gewisse Teiletoleranz geben, sodass einer der Kondensatoren variabel gemacht wird. Dies ist die Anpassung der "Sondenkompensation". Diese Anpassung dreht eine kleine Trimmkappe von einigen pF. Bei einer Rechteckwelle können Sie leicht den Punkt sehen, an dem die kapazitiven und resistiven Teiler übereinstimmen.

    Ein Nachteil dieses kapazitiven und resistiven Ansatzes besteht darin, dass die Impedanz des Teilers bei hohen Frequenzen abfällt. Während dieser Ansatz nützlich ist, um höhere Frequenzen richtig aufzuteilen, belastet er sie auch viel mehr als nur zwei Widerstände. Es gibt kein freies Mittagessen.

Hoffentlich können Sie jetzt einige der Probleme und Kompromisse erkennen. Wenn die Impedanzen nicht funktionieren, müssen Sie eine Art aktive Pufferung in Betracht ziehen, wie Steven sie bereits beschrieben hat. Das hat seine eigenen Probleme, wie Offsetspannung, Frequenzgang und Verstärkungsfehler, wenn die Verstärkung nicht nur 1 ist, sondern für einen anderen Thread.

Würde dies alles nicht durch einen (sagen wir) LM358 gelöst, bei dem ein Operationsverstärker den Eingang und der andere den Ausgang puffert, die beide als nicht invertierende Puffer mit dem Potentialteiler in der Mitte verbunden sind?

Grundsätzlich wird das, was Sie zu tun versuchen, als "Signalkonditionierung" bezeichnet. Das geht im Allgemeinen so:

Puffern Sie zuerst das Signal. Wenn Ihre 0-10-V-Quelle nicht bereits eine niedrige Ausgangsimpedanz hat, puffern Sie sie mit einem nichtinvertierenden Operationsverstärker (siehe Antwort von Stevenvh). Stellen Sie sicher, dass der Operationsverstärker über genügend Bandbreite verfügt. Normalerweise wird dies als "Verstärkungs-Bandbreiten-Produkt" bezeichnet, da die Spezifikation die Verstärkung der Schaltung multipliziert mit der Bandbreite ist. Dies ist nicht immer der Fall; Einige Verstärker sind im Strommodus und haben ein Diagramm, das die Verstärkung gegenüber der Bandbreite zeigt. Ihr Fall ist einfach: Die Verstärkung ist 1. Wenn also ein Produkt aus Verstärkung und Bandbreite angegeben ist, ist dies auch die Bandbreite bei einer Verstärkung von 1.

Als nächstes teilen Sie den Ausgang mit einem Widerstandsteiler durch 4. Da Sie einen ADC verwenden, müssen Sie beim Signal-Aliasing vorsichtig sein (Rauschen ist auch Alias, also sollten Sie selbst dann, wenn Ihr Signal deutlich unter der ADC-Nyquist-Frequenz liegt, immer noch einen Anti-Aliasing-Filter haben). Der einfachste Anti-Aliasing-Filter besteht darin, einfach einen Kondensator vom Ausgang Ihres Teilers auf Masse zu legen und ihn als RC-Filter zu behandeln, bei dem R gleich den beiden parallel geschalteten Widerstandswerten des Teilers ist. Die Ecke sollte hinter der höchsten Frequenz liegen, die Sie an den ADC weitergeben möchten, und der Filter sollte um 6 dB pro Bit dämpfen, wenn er die Aliasing-Frequenz erreicht (das ist die Abtastrate minus der Filtereckfrequenz).

Hier kommt es auf Ihren ADC-Typ an. In einem normalen sukzessiven ADC (SAR) ist die Abtastrate viel, viel niedriger als in einem Sigma-Delta-ADC, sodass die 20 dB/Dekade, die Sie mit einem RC-Filter erhalten, möglicherweise nicht ausreichen. Wenn das der Fall ist, müssen Sie dort einen komplexeren mehrpoligen Filter einbauen. Das ist an sich schon eine riesige Diskussion, also überspringe ich sie jetzt; Suchen Sie nach komplexen Polfiltern und laden Sie eine Kopie von FilterPro von TI herunter, wenn Sie interessiert sind.

Sobald Ihr Signal gefiltert ist, müssen Sie es möglicherweise erneut puffern, wenn die Ausgangsimpedanz des Filters nicht viel niedriger ist als die ADC-Eingangsimpedanz. Wenn Ihr ADC-Eingang einen anderen DC-Offset als Ihr Eingang hat, benötigen Sie schließlich einen DC-Sperrkondensator (dh Serienkondensator). Dies sollte so gewählt werden, als ob die Eingangsimpedanz des ADC der Widerstand in einem RC-Hochpassfilter wäre; Stellen Sie sicher, dass die Filterecke unter Ihrer minimalen Eingangsfrequenz liegt.

Sie möchten das Signal durch einen Faktor 4 teilen, was mit einem Widerstandsteiler einfach ist. Der Widerstand am Eingang sollte das Dreifache von Masse betragen. Der genaue Wert hängt von der Eingangsimpedanz des ADC ab. Diese ist normalerweise nicht sehr hoch, sodass die Eingangsimpedanz den Teiler verzerren kann. Angenommen, Sie wählen 10.000 Ω und 3,3k Ω für die Widerstände. Dadurch erhalten Sie 2,5 V für einen 10-V-Eingang. Nett. Angenommen, die Eingangsimpedanz des ADC beträgt ebenfalls 3,3 k Ω . Dies ist parallel zum 3.3k Ω Widerstand Ihres Teilers, was 1,65 k ergibt Ω , sodass Sie durch 7 statt durch 4 teilen.
Sie müssen also die 3,3k erhöhen Ω so dass der kombinierte Widerstand mit der Eingangsimpedanz des ADC 3,3 k beträgt Ω .

Alternativ können Sie den Teiler mit einem Spannungsfolger puffern, wie Matt vorschlägt:

Geben Sie hier die Bildbeschreibung ein

Oder puffern Sie es mit einem Operationsverstärker