Valores ADC diferenciados externos para PIC

2

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 doble canal de 16 bits . Las interfaces ADC a través del bus SPI.

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

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

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 diseñaron las dos fórmulas para Vr y Rt.

También 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 dado es la relación de cuán cerca está de REF + a partir de REF-.

Por ejemplo, para un anuncio de 16 bits regular, 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 un ADC diferencial se relaciona con el ADC estándar. basado en el ejemplo de ADC estándar, creo que el valor de entrada debe permanecer dentro de los valores de 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?

    
pregunta user16105

2 respuestas

1

Para Vr , la fórmula se basa en la información en 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 (da como resultado un signo firmado). -bit formato entero)

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

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

\ $ \ dfrac {26142 \ cdot 1.25V} {32678} + 2.5V = 1V + 2.5V = 3.5V \ $

Para Rt , es solo una fórmula para calcular la resistencia basada en el divisor de voltaje que forma la resistencia del sensor con la resistencia de 1 kΩ. Funciona comparando la relación de voltajes a través de cada parte del divisor (el 1k PT fijo y el sensor PT)
Por la fórmula de PT, sabemos que R0 es 1kΩ, por lo que a 0 ° C el sensor tendrá esta resistencia, y como efectivamente tenemos un divisor de voltaje de 2 resistencias de 1kΩ con 5V en la parte superior, el voltaje en el medio debe ser de 2.5V , entonces la fórmula debería darnos 1000 a 2.5V.
Digamos que teníamos 3V para Vr, esperaríamos una lectura de resistencia de 1.5kΩ (1.5k es 3 / 5ths y 1k es 2 / 5ths de 5V),

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

\ $ \ dfrac {3V \ cdot 1000} {5V - 3V} = 1.5k \ Omega \ $

    
respondido por el Oli Glaser
1

Para el cálculo \ $ V_r \ $:

  • \ $ V_ {ref} = \ frac {V_ {cc}} {2} \ $, por lo tanto \ $ V_ {ref} = 2.5V \ $
  • el rango de entrada diferencial es de \ $ - 0.5 * Vref \ $ hasta \ $ 0.5 * Vref \ $, por lo tanto, desde -1.25 ... 1.25V
  • el resultado está en el complemento de dos, con el bit 15 como MSB, por lo que la entrada varía de -32768 a 32767
  • (el bit 16 actúa como bit de signo adicional, y junto con el bit 15 actúa como indicador de desbordamiento / subdesbordamiento. Si lo desea, puede verificar esto: consulte las páginas 10 + 11 en la hoja de datos)

Intente volver a escribir la fórmula como: $$ V_r = \ frac {ADC_ {Meas}} {32768} * 1.25 + 2.5 $$ entonces ves lo que pasa:

  • primero escala 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 ocurre con \ $ R_t \ $:

  • Rt y la resistencia de 1k forman un divisor de voltaje
  • la fórmula para un divisor de voltaje es \ $ \ frac {R1} {R2} = \ frac {V1} {V1} \ $
  • el voltaje en la resistencia de 1 k es \ $ 5V-Vr \ $
  • por lo que la fórmula es \ $ \ frac {R_t} {R1k} = \ frac {V_r} {5-V_r} \ $
  • cuando resuelves esto para \ $ R_t \ $, obtienes la fórmula arriba

(actualización para reflejar preguntas sobre ADC diferenciales)

Imagine un ADC diferencial como dos ADC individuales que comparten un terreno 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 mediciones. El rango de entrada permitido típico para ambos canales se encuentra entre la conexión a tierra y la fuente de alimentación del ADC.

En ese caso, la tensión de referencia aplicada no es 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.5V, y una tensión de alimentación de 5V, ambas señales pueden variar desde 4.5 hasta 5V (siempre que el ADC acepte señales de entrada de hasta Vcc, lo que hace el LTC2436) sin más - o desbordamiento.

El efecto es el mismo que cuando una entrada (CH-) está conectada a tierra, mientras que la otra acepta entradas positivas y negativas. Sin embargo, el ADC diferencial no requiere 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 la tensión de tierra y 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 funciona el ADC. P.ej. puede haber un amplificador de ganancia programable en el ADC, o la entrada (o el voltaje de referencia) se divide por un factor fijo. Por lo tanto, cambiar el voltaje de referencia cambiará el rango de medición, pero no es necesariamente el mismo.

    
respondido por el hli

Lea otras preguntas en las etiquetas