Valores diferenciales externos de ADC para PIC

Tengo un diseño de sensor de temperatura que estoy usando como referencia. Toma 2 sensores RTD y lee sus valores con un ADC diferencial de 16 bits de doble canal . El ADC interactúa a través del bus SPI.

Sensor RTD Sch

Sé que para un ADC general puedes tomar la fórmula:

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

Simplemente no estoy seguro de cómo se aplica directamente a un ADC diferencial

Aquí está mi código de referencia (aplicable solo a uno de los canales):

//--------------------------------------------------------------
// 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);
}
//--------------------------------------------------------------

Lo que estoy tratando de entender es cómo se idearon las dos fórmulas para Vr y Rt.

Además, todavía estoy un poco confundido acerca de cómo funciona el ADC diferencial.

Creo que en un ADC típico le damos los voltajes REF+ y REF- y la lectura resultante para un canal determinado es la proporción de qué tan cerca está de REF+ a partir de REF-.

Por ejemplo, para un adc regular de 16 bits, una lectura de 0 significaría que nuestra entrada es 0 (o igual a REF-) y una lectura de 65536 significaría que nuestro canal es igual a REF+.

Supongo que lo que me confunde es cómo se relaciona un ADC diferencial con el ADC estándar. basado en el ejemplo de ADC estándar, pensaría que el valor de entrada debe permanecer dentro de los valores REF-/+ pero del circuito de ejemplo que tengo para un ADC diferencial parece que este no es necesariamente el caso. Entonces, ¿cómo sé a qué está vinculado el ADC y cómo asociarlo con los valores REF?

Respuestas (2)

Para Vr, la fórmula se basa en la información de la hoja de datos. En la hoja de datos, dice que el rango diferencial será de -0.5 * Vref a 0.5 * Vref. Vref en su esquema es 2.5V, y ambos canales: el pin está a 2.5V, por lo que el rango es de 1.25V a 3.75V, que se interpretará como -1.25V a +1.25V en las lecturas (produce un signo 16 -bit formato entero)

El punto de 0 °C es 2,5 V, por lo que 2,5 V a 3,75 V es la mitad positiva del rango y 1,25 V a 2,5 V para temperaturas negativas. Sin embargo, el ADC ve 2,5 V como 0 V, de ahí el uso de +1,25 V en la fórmula Vr, y 32678 (es decir, un número entero de 16 bits con signo en lugar de 65536 para 16 bits completos sin signo) y agregamos 2,5 V para obtener el valor real. voltaje (ya que el punto cero del ADC está en 2.5V)

Entonces, por ejemplo, si leemos 0x661E (26142) del ADC, podemos usar la fórmula:

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

Para Rt, es solo una fórmula para calcular la resistencia en función del divisor de voltaje que forma la resistencia del sensor con la resistencia de 1kΩ. Funciona comparando la relación de voltajes en cada parte del divisor (el 1kΩ fijo y el sensor PT)
. A partir de la fórmula PT, sabemos que R0 es 1kΩ, por lo que a 0 °C el sensor tendrá esta resistencia, y debido a que efectivamente tenemos un divisor de voltaje de 2 resistencias de 1kΩ con 5V en la parte superior, el voltaje en el medio debe ser 2.5V, por lo que la fórmula nos debe dar 1000 a 2.5V.
Digamos que tuviéramos 3V para Vr, esperaríamos una lectura de resistencia de 1.5kΩ (1.5k son 3/5 y 1k son 2/5 de 5V),

Si conectamos 3V en la fórmula para verificar, deberíamos obtener el resultado previsto:

3 V 1000 5 V 3 V = 1.5 k Ω

en lugar de -0.5*Vref a 0.5Vref podría pensar en ello. 0,5*(-Vref) a 0,5* (Vref), ¿entonces básicamente estoy tomando la mitad de la diferencia a la referencia negativa y la mitad de la diferencia a la referencia positiva?
Sí, puedes pensarlo de esa manera si quieres. Básicamente, solo debe preocuparse por 0 a 32678 (que corresponde a 2,5 V a 3,75 V), ya que la mitad "negativa" del rango (1,25 V a 2,5 V) no se está utilizando.
En realidad, obtendrá valores negativos cuando la temperatura medida esté por debajo de cero (grados Celsius). Entonces, el RTD es inferior a 1000 ohmios, por lo que el voltaje en CH0+/CH1+ será inferior a 2,5 V. Entonces es más bajo que el voltaje en CH0-/CH1-, y luego obtiene resultados negativos. Pero el cálculo de Rt también debería funcionar.
Supongo que todavía estoy un poco confundido en cuanto a las referencias. Intentaré editar mi pregunta, así que espero que tenga más sentido.
@hli: buen punto, no estoy seguro de por qué asumí que el rango era de cero grados C hacia arriba. 2,5 V es el punto de referencia cero (que corresponde a una lectura con signo cero en el ADC)
@ user16105: ignore el comentario sobre el no uso de 1.25V a 2.5V, esto es para temperaturas bajo cero C.

Para el V r cálculo:

  • V r mi F = V C C 2 , por lo tanto V r mi F = 2.5 V
  • el rango de entrada diferencial es de 0.5 V r mi F hasta 0.5 V r mi F , por lo tanto de -1.25...1.25V
  • el resultado está en complemento a dos, con el bit 15 como MSB, por lo que la entrada oscila entre -32768 y 32767
  • (el bit 16 actúa como un bit de señal adicional y, junto con el bit 15, actúa como un indicador de desbordamiento/desbordamiento insuficiente. Es posible que desee verificar esto: consulte las páginas 10 y 11 de la hoja de datos)

Intenta reescribir la fórmula como:

V r = A D C METRO mi a s 32768 1.25 + 2.5
entonces ves lo que pasa:

  • primero escalas el valor medido al rango completo
  • luego lo multiplicas con el voltaje de rango completo (1.25V)
  • luego agrega el voltaje de modo común (2.5V)

Lo mismo va para R t :

  • Rt y la resistencia de 1k forman un divisor de tensión
  • la formula de un divisor de voltaje es R 1 R 2 = V 1 V 1
  • el voltaje a través de la resistencia de 1k es 5 V V r
  • entonces la fórmula es R t R 1 k = V r 5 V r
  • cuando resuelves esto R t , obtienes la fórmula anterior

(actualización para reflejar preguntas sobre ADC diferenciales)

Imagine un ADC diferencial como dos ADC individuales que comparten una base común y una referencia común. Ambos canales ADC de un ADC diferencial miden las señales de entrada aplicadas con respecto a una tierra común y el resultado es la diferencia entre las dos medidas. El rango de entrada típico permitido para ambos canales es entre tierra y la fuente de alimentación del ADC.

En ese caso, el voltaje de referencia aplicado no tiene una relación real con el rango de señal de entrada permitido. Solo afecta la señal diferencial entre los dos canales. Entonces, si tiene un rango de medición diferencial de, digamos, 0,5 V y un voltaje de suministro de 5 V, ambas señales pueden variar de 4,5 a 5 V (siempre que el ADC acepte señales de entrada de hasta Vcc, lo que hace el LTC2436) sin más. - o subdesbordamiento.

El efecto es el mismo que cuando una entrada (CH-) está conectada a tierra mientras que la otra acepta entradas positivas y negativas. Pero el ADC diferencial no tiene el requisito de que una señal esté conectada a tierra: acepta señales de entrada flotantes, siempre que la entrada se mantenga dentro de ciertos límites con respecto a tierra y voltaje de suministro (GND-0.3V hasta Vcc+0.3V para el LTC2436-1)

Pero incluso entonces, el voltaje de referencia no corresponde necesariamente al rango de medición. Puede ser más grande o más pequeño que eso, dependiendo de cómo funcione el ADC. Por ejemplo, podría haber un amplificador de ganancia programable en el ADC, o la entrada (o el voltaje de referencia) se divide por un factor fijo. Entonces, cambiar el voltaje de referencia cambiará el rango de medición, pero no es necesariamente el mismo.