ExternalDifferential ADC-Werte für PIC

Ich habe ein Temperatursensor-Design, das ich als Referenz verwende. Es nimmt 2 RTD-Sensoren und liest ihre Werte mit einem zweikanaligen 16-Bit-Differential-ADC . Der ADC ist über den SPI-Bus verbunden.

RTD-Sensor Sch

Ich weiß, dass Sie für einen allgemeinen ADC die Formel nehmen können:

Voltage on Pin (in mV) = [(ADC Value) * (System Voltage in mV)]/(Max ADC Value)

Ich bin mir nur nicht sicher, wie es direkt auf einen differenziellen ADC zutrifft

Hier ist mein Referenzcode (gilt nur für einen der Kanäle):

//--------------------------------------------------------------
// Temperature in degrees C
//
// Platinum (3850 ppm/K) RTD sensor
// 0 to 850 degrees C, Rt = R0(1 + A*t + B*t^2)
//   Rt = resistance at temperature (degrees C)
//   R0 = is resistance at 0 degrees C, which is 1,000 ohms
//   A  = 3.9083 * 10^-3
//   B  = -5.775 * 10^-7
//
//   (R0 * B)t^2 + (R0 * A)t + (R0 - Rt) = 0
//
//   Quadradic Equation: ax^2 + bx + c = 0
//     x = (-b +/- SQRT(b^2 - 4ac)) / 2a
//
// therefore:
//       (-(R0 * A) +/- SQRT((R0 * A)^2 - (4 * (R0 * B) * (R0 - Rt))
//   t = -----------------------------------------------------------
//                           2 * (R0 * B)
//
//       (-3.9083 +/- SQRT(15.2748 - ((-2.3104 * 10^-3) * (1,000 - Rt)))
//     = ------------------------------------------------------------------
//                             -1.1552 * 10^-3
{   float Vr, Rt;
    Vr = ((ADC_Meas * 1.25) / 32768.0) + 2.5;
    Rt = (1000.0 * Vr) / (5.0 - Vr);
    t = ((-3.9083) + sqrt(15.2748 - (-0.0023104) * (1000.0 - Rt))) / (-0.0011552);
}
//--------------------------------------------------------------

Was ich zu verstehen versuche, ist, wie die beiden Formeln für Vr und Rt entwickelt wurden?

Außerdem bin ich immer noch ein wenig verwirrt darüber, wie der differenzielle ADC funktioniert.

Ich glaube, dass wir bei einem typischen ADC die Spannungen REF+ und REF- angeben, und der resultierende Messwert für einen bestimmten Kanal ist das Verhältnis, wie nahe er an REF+ liegt, beginnend bei REF-.

Zum Beispiel würde für einen normalen 16-Bit-ADC ein Wert von 0 bedeuten, dass unser Eingang 0 (oder gleich REF-) ist, und ein Wert von 65536 würde bedeuten, dass unser Kanal gleich REF+ ist.

Ich nehme an, was mich verwirrt, ist, wie sich ein differenzieller ADC zum Standard-ADC verhält. Basierend auf dem Standard-ADC-Beispiel würde ich denken, dass der Eingangswert innerhalb der REF- / +-Werte bleiben muss, aber aus der Beispielschaltung, die ich für einen differenziellen ADC habe, scheint dies nicht unbedingt der Fall zu sein. Woher weiß ich also, woran der ADC gebunden ist und wie ich ihn den REF-Werten zuordnen kann?

Antworten (2)

Für Vrbasiert die Formel auf den Angaben im Datenblatt. Im Datenblatt steht, dass der Differenzbereich von -0,5 * Vref bis 0,5 * Vref reicht. Vref in Ihrem Schaltplan beträgt 2,5 V, und beide Kanäle - Pin liegt bei 2,5 V, sodass der Bereich von 1,25 V bis 3,75 V reicht, was in den Messwerten als -1,25 V bis +1,25 V interpretiert wird (es gibt eine vorzeichenbehaftete 16 aus -bit Integer-Format)

Der 0°C-Punkt liegt bei 2,5 V, also 2,5 V bis 3,75 V, ist die positive Hälfte des Bereichs und 1,25 V bis 2,5 V für negative Temperaturen. Der ADC sieht 2,5 V jedoch als 0 V, daher die Verwendung von +1,25 V in der Vr-Formel und 32678 (dh eine 16-Bit-Ganzzahl mit Vorzeichen anstelle von 65536 für volle 16-Bit ohne Vorzeichen) und wir fügen 2,5 V hinzu, um die tatsächliche Spannung zu erhalten Spannung (da der Nullpunkt des ADC bei 2,5V liegt)

Wenn wir also zum Beispiel 0x661E (26142) vom ADC lesen, können wir die Formel verwenden:

26142 1.25 v 32678 + 2.5 v = 1 v + 2.5 v = 3.5 v

Für Rt, ist es nur eine Formel, um den Widerstand basierend auf dem Spannungsteiler zu berechnen, den der Sensorwiderstand mit dem 1kΩ-Widerstand bildet. Es funktioniert, indem das Verhältnis der Spannungen an jedem Teil des Teilers (dem festen 1kΩ und dem PT-Sensor) verglichen wird.
Aus der PT-Formel wissen wir, dass R0 1kΩ ist, also wird der Sensor bei 0°C dieser Widerstand sein, und weil wir effektiv Haben Sie einen Spannungsteiler aus 2 1kΩ-Widerständen mit 5 V oben, sollte die Spannung in der Mitte 2,5 V betragen, also sollte die Formel 1000 bei 2,5 V ergeben.
Angenommen, wir hätten 3 V für Vr, würden wir einen Widerstandswert von 1,5 kΩ erwarten (1,5 k sind 3/5 und 1 k sind 2/5 von 5 V).

Wenn wir zur Überprüfung 3 V in die Formel stecken, sollten wir das vorhergesagte Ergebnis erhalten:

3 v 1000 5 v 3 v = 1.5 k Ω

statt -0.5*Vref auf 0.5Vref könnte ich mir das gerne vorstellen. 0,5 * (-Vref) bis 0,5 * (Vref), also nehme ich im Grunde die Hälfte der Differenz zur negativen Referenz und die Hälfte der Differenz zur positiven Referenz?
Ja, so kann man sich das vorstellen, wenn man möchte. Im Wesentlichen brauchen Sie sich nur um 0 bis 32678 (das entspricht 2,5 V bis 3,75 V) zu kümmern, da die „negative“ Hälfte des Bereichs (1,25 V bis 2,5 V) nicht verwendet wird.
Tatsächlich erhalten Sie negative Werte, wenn die gemessene Temperatur unter Null (Grad Celsius) liegt. Dann beträgt der RTD weniger als 1000 Ohm, sodass die Spannung an CH0+/CH1+ weniger als 2,5 V beträgt. Dann ist es niedriger als die Spannung an CH0-/CH1-, und dann erhalten Sie negative Ergebnisse. Aber die Berechnung von Rt sollte dann auch funktionieren.
Ich glaube, ich bin immer noch ein wenig verwirrt, was die Referenzen angeht. Ich werde versuchen, meine Frage zu bearbeiten, damit sie hoffentlich mehr Sinn ergibt.
@hli - guter Punkt, nicht sicher, warum ich davon ausgegangen bin, dass der Bereich von null Grad C aufwärts reicht. 2,5 V ist der Nullbezugspunkt (was einem vorzeichenbehafteten Nullwert auf dem ADC entspricht)
@ user16105 - ignorieren Sie den Kommentar, dass 1,25 V bis 2,5 V nicht verwendet werden, dies gilt für Temperaturen unter null ° C.

Für die v R Berechnung:

  • v R e F = v C C 2 , Deshalb v R e F = 2.5 v
  • der differentielle Eingangsbereich ist von 0,5 v R e F bis zu 0,5 v R e F , also von -1,25...1,25V
  • das Ergebnis ist im Zweierkomplement, mit Bit 15 als MSB, also reicht die Eingabe von -32768 bis 32767
  • (Bit 16 fungiert als zusätzliches Vorzeichenbit und zusammen mit Bit 15 als Überlauf-/Unterlaufanzeige. Vielleicht möchten Sie dies überprüfen - siehe Seite 10+11 im Datenblatt)

Versuchen Sie, die Formel wie folgt umzuschreiben:

v R = A D C M e A S 32768 1.25 + 2.5
dann siehst du was passiert:

  • Zunächst skalieren Sie den Messwert auf den vollen Bereich
  • dann multiplizieren Sie es mit der vollen Bereichsspannung (1,25 V)
  • dann addieren Sie die Gleichtaktspannung (2,5 V)

Das gleiche gilt für R T :

  • Rt und der 1k-Widerstand bilden einen Spannungsteiler
  • Die Formel für einen Spannungsteiler lautet R 1 R 2 = v 1 v 1
  • die Spannung über dem 1k-Widerstand ist 5 v v R
  • so lautet die formel R T R 1 k = v R 5 v R
  • wenn Sie dies für lösen R T , erhalten Sie die obige Formel

(Aktualisierung, um Fragen zu differenziellen ADCs zu reflektieren)

Stellen Sie sich einen differenziellen ADC als zwei einzelne ADCs vor, die sich eine gemeinsame Masse und eine gemeinsame Referenz teilen. Beide ADC-Kanäle eines differentiellen ADC messen die angelegten Eingangssignale in Bezug auf eine gemeinsame Masse, und das Ergebnis ist die Differenz zwischen den beiden Messungen. Der typische zulässige Eingangsbereich für beide Kanäle liegt zwischen Masse und der Stromversorgung des ADC.

In diesem Fall steht die angelegte Referenzspannung in keinem wirklichen Verhältnis zum zulässigen Eingangssignalbereich. Es wirkt sich nur auf das Differenzsignal zwischen den beiden Kanälen aus. Wenn Sie also einen differenziellen Messbereich von beispielsweise 0,5 V und eine Versorgungsspannung von 5 V haben, können beide Signale zwischen 4,5 und 5 V liegen (vorausgesetzt, der ADC akzeptiert Eingangssignale bis zu Vcc, was der LTC2436 tut), ohne darüber hinauszugehen - oder Unterlauf.

Der Effekt ist derselbe, als wenn ein Eingang (CH-) mit Masse verbunden ist, während der andere positive und negative Eingänge akzeptiert. Der differenzielle ADC erfordert jedoch nicht, dass ein Signal mit Masse verbunden ist - er akzeptiert schwebende Eingangssignale, solange der Eingang innerhalb bestimmter Grenzen in Bezug auf Masse und Versorgungsspannung bleibt (GND-0,3 V bis Vcc + 0,3 V für die LTC2436-1)

Aber auch dann entspricht die Referenzspannung nicht unbedingt dem Messbereich. Es kann größer oder kleiner sein, je nachdem, wie der ADC funktioniert. Beispielsweise kann es im ADC einen Verstärker mit programmierbarer Verstärkung geben, oder der Eingang (oder die Referenzspannung) wird durch einen festen Faktor geteilt. Eine Änderung der Referenzspannung ändert also den Messbereich, ist aber nicht unbedingt gleich.