Skalierung des analogen Sensorausgangs (0,4 V bis 2,7 V) auf volle Dynamik des ADC (Vref 3,3 V)

Ich habe eine Frage zur Skalierung des analogen Sensorausgangssignals.

Ziel ist es, einen Abstandssensor GP2Y0A02YK0F von Sharp an einen Raspberry Pi 3 B anzuschließen. Der Sensor kann an der 5V-Schiene des Raspi betrieben werden. Die Differenz der Ausgangsspannung wird angegeben als:

Geben Sie hier die Bildbeschreibung ein

Und dieses Beispiel für eine Entfernungsmessung ist gegeben:

Geben Sie hier die Bildbeschreibung ein

Dementsprechend erwarte ich, dass meine Ausgabe vom Sensor Gleichspannungen zwischen ~ 0,4 V und ~ 2,75 V beträgt. Jeder Wert wird mindestens für die Dauer einer Messung und maximal so lange gehalten, wie sich der gemessene Abstand nicht ändert.

Als ADC plane ich einen MCP3204 (12-Bit, 4 Ch., SPI), mit der 3,3V-Schiene des Raspi als Vref und als einseitige Stromversorgung.

Um die volle Dynamik des ADC zu nutzen, möchte ich den Ausgang des Sensors skalieren und den Offset entfernen, bevor er in den ADC eingespeist wird.

Für die Skalierung selbst sollte meiner Meinung nach eine nicht invertierende Operationsverstärkerschaltung ausreichen. Bei etwas Headroom würde ich Va=3.2/2.75=1.16 wählen.

Was ich nicht angehen kann, ist der 0,4-V-Offset. Wenn mein Signal Wechselstrom wäre, würde ich vor dem Operationsverstärker einen einfachen Hochpass wählen, aber da das Signal möglicherweise für längere Zeit Gleichstrom ist, bin ich mir nicht sicher, was ich tun soll.

Antworten (2)

Ihre Signalreichweite beträgt prozentual zur Reichweite des ADC 71,2 %. In äquivalenten LSBs sind das 2917 LSBs. Das entspricht einem hypothetischen ADC mit einer Auflösung von 11,5 Bit.

Meine erste Beobachtung ist also, warum sich die Mühe machen: -

Angesichts der Tatsache, dass jeder ADC einen realen Bereich hat, von dem man sich nie darauf verlassen kann, dass er genau 0 Volt zu Vref beträgt, sehe ich keinen großen Vorteil in dem, was Sie vorschlagen.

Aber sagen wir, Sie haben einen Operationsverstärker verwendet, der Ihr Signal auf den gewünschten Bereich modifiziert hat, welche Fehler treten dabei auf? Werden Sie 0,1% Widerstände (10-Bit-Genauigkeit) oder vielleicht 0,01% Widerstände (etwas mehr als 13-Bit-Genauigkeit) verwenden? Sind Sie bereit, für diese Genauigkeit zu bezahlen?

Jeder Widerstand wird einen Fehler verursachen und es kann angenommen werden, dass sich diese Fehler akkumulieren. Außerdem gibt es den Fehler des Operationsverstärkers und seine Unfähigkeit, innerhalb von 10 mV bis 50 mV des Versorgungsbereichs zu gelangen, bedeutet, dass Sie niemals die gewünschten vollen 12 Bit erhalten können.

Bleiben Sie also bei einem 11,5-Bit-System oder entwerfen Sie einen Operationsverstärker (mit erheblichen Kosten für die Widerstände), der Ihnen 11,8 Bit liefern könnte?

Oder entscheiden Sie sich für einen 14-Bit-ADC und vergessen dieses dumme Gerede von einem Level- und Gain-Shifter?

Danke für den Hinweis. Ich war mir nicht bewusst, wie wenig Genauigkeit ich durch Level- und Gain-Shifting gewinnen würde.
Guter Punkt. Es fügt auch eine Redundanz hinzu, die nützlich ist, um Fehler wie Objekte im Bereich von 0 bis 15 cm zu finden, bei denen der Graph invertiert ist. In Kombination mit einer maximalen Zielgeschwindigkeitsinformation kann es zwischen einem weit entfernten und einem nahen sich bewegenden Objekt unterscheiden
Und selbst diese Genauigkeit erreicht man nur, wenn das Rauschen des Sensors gering genug ist. Wahrscheinlich nicht. Aber Sie können auch mitteln, um mehr Bits zu gewinnen ...
Auch wenn man bedenkt, dass die Farbe und Größe des Objekts die Ausgabe des Sensors drastisch verändern, ist es den Aufwand nicht wert, es sei denn, es befindet sich in einer lächerlich kontrollierten Umgebung.

Andy hatte eine gute Antwort auf Sie bezüglich des potenziellen Genauigkeitsverlusts durch das Hinzufügen einer Skalierungs- und Offset-Schaltung. Aber es gibt auch einige andere Faktoren, die Sie berücksichtigen müssen:

  1. Es wird von Sensor zu Sensor variieren, welche analoge Spannung welcher Entfernung entspricht. Das Signalspannungsbereichsdiagramm aus dem Datenblatt zeigt die typischen Eigenschaften für 25 ° C bei 5 V. Aber Einheit zu Einheit variiert sowohl im Bereich als auch im Offset, daher ist es gut, den zusätzlichen A/D-Eingangsbereich auf der niedrigen und hohen Seite zu belassen, um diese Variation zu ermöglichen.
  2. Dieser Sensor wird nicht so genau sein, dass er wiederholbare Messwerte mit der vollen Bereichsauflösung liefern kann, selbst wenn Sie mit Nullfehler skalieren und versetzen könnten. Das Verteilen des spezifizierten Bereichs des Sensors von 150-20 cm über den gesamten A/D-Bereich von 4096 Zählwerten ergibt einen Wert von 0,03 cm, wenn der Sensor linear war. Die Tatsache, dass der Sensor nicht linear ist, macht die Sache an einigen Stellen noch schlimmer und die Wiederholbarkeit wird viel schlechter sein, so dass es einfach keinen Grund gibt, eine vollständige Skalenanpassung zu versuchen.
  3. Das Oberflächenreflexionsvermögen spielt eine große Rolle bei der Rückkopplung des Sensors in Bezug auf seine analoge Spannung für einen bestimmten Satz von Bedingungen. Aus diesem Grund ist es nicht sinnvoll, einen solchen Sensor als absolutes Messgerät zu betrachten, und als solches sollten A/D-Messwerte, die Sie erhalten, nicht so verwendet werden.

Es gibt wahrscheinlich viel bessere Strategien, um einen solchen Sensor in einem relativen Messmodus zu verwenden, in dem Sie dynamische Änderungen erkennen und sich nicht wirklich um die absolute Genauigkeit kümmern müssen. Treffen Sie Entscheidungen darüber, wie sich die Sensormesswerte von Probe zu Probe ändern, im Gegensatz zu den Messwerten in der Vergangenheit, als Sie versucht hatten, einen absoluten Referenzpunktsatz zu kalibrieren. Es gibt auch Techniken, mit denen Sie die A/D-Messwerte auf der Grundlage einiger Startbedingungen oder -positionen zeitlich "kalibrieren" oder "nullen" können. Beides erfordert wirklich, dass Sie sicherstellen, dass der Spielraum des A/D-Wandlers sowohl über als auch unter dem normalen erwarteten Eingangsspannungsbereich liegt. Zwanzig oder dreißig Prozent Marge wären nicht weit von der Basis entfernt.