Diseno de Medición de Temperatura con Sensor Pt100
Se utiliza un chip de medición de temperatura de alta precisión (Si7051) para compensar la unión fría del termopar. Para convertir temperatura↔voltaje, se realiza una interpolación lineal bidireccional de alta densidad en la tabla de indexación de termopares. Utilice Pt100 de tres cables como hombro móvil para formar un puente de resistencia desequilibrado para detectar el valor de resistencia térmica. La temperatura se obtiene resolviendo analíticamente la ecuación unidimensional de resistencia térmica de cuarto orden de Pt100. Utilice un convertidor analógico a digital (ADC) Σ-Δ de alta precisión con funciones fáciles de manejar. Se selecciona el microprocesador de 32 bits de alto rendimiento STM32F103 con estructura ARM Cortex-3. Combinando estas tecnologías, la resolución de medición de temperatura del termostato puede alcanzar 0,001°C. El análisis de errores del contenido relacionado anterior y la implementación de programación en STM32F103 son el foco de este artículo. Lo que se describe en este artículo no es sólo para la medición de temperatura, sino también para la medición de otras señales eléctricas y no eléctricas débiles (como presión, peso, etc.).
0 Prefacio
Muchos termostatos todavía utilizan la estructura tradicional del circuito de medición de temperatura: sensor → filtro → preamplificador 1 → conmutación de tipo de sensor → preamplificador 2 → filtro → ADC → procesamiento MCU. Además, los ADC suelen estar integrados en MCU, que no sólo tienen baja resolución (principalmente 12 bits o menos), sino que la fuente de alimentación de referencia suele ser inmutable. Este tipo de estructura tiene muchos componentes y mucho ruido, y no es adecuada para mediciones y controles de alta precisión. Tomando como ejemplo los termopares, dentro del rango de 0 ~ 661 °C, es difícil que la resolución supere los 0,1 °C. Es difícil superar la precisión del 0,5%image.png (1631081939725930.png es el valor absoluto de la temperatura, la unidad es °C). En los últimos años, muchas empresas de circuitos integrados han integrado las estructuras tradicionales de medición de temperatura mencionadas anteriormente y han lanzado altas resoluciones (16 bits, 20 bits y 24 bits) para señales débiles de sensores a nivel de microvoltios, como los termopares. Y existen ADC multicanal, como el LTC2486. Esto proporciona una buena opción para el diseño de medición de temperatura de alta precisión del termostato.
1: Diseño de circuito de medición de temperatura de alta precisión
1.1 Estructura del circuito
La Figura 1 muestra un diseño más convencional, que es relativamente simple. Sin circuitos especiales de amplificación de señal y conmutación de canal, el circuito de filtro también es el RC pasivo de primer orden más simple.
1.2 Sensor de temperatura
Por lo general, el termostato requiere dos tipos principales de sensores: termopares (TC) y resistencias (RTD).
Figura 1 Estructura del circuito de medición de temperatura de alta precisión del termostato
1.2.1 Termopar
El último estándar internacional para termopares es la versión 2013 de IEC60584-1:2013, y el estándar nacional equivalente (IDT) es GB/T1639.1-2018[4]. La norma divide los termopares en múltiples tipos (E, K, J, etc.), entre los cuales el tipo E tiene la mayor sensibilidad [3]. Es adecuado para mediciones de temperatura de relativamente alta precisión. Desde una perspectiva de alta precisión, el tipo E debe comprarse con error de Clase 1 (0,004 para una temperatura de -40 a 800 °C) [4], aislamiento de funda y unión [3] pero conectado al blindaje para conexión diferencial y reducción de ruido.
1.2.2 IDT
En termostatos, esto generalmente se refiere a Pt100, la norma internacional actual es IEC 60751:2008 y la norma nacional equivalente es GB/T30121-2013. La fórmula de la resistencia térmica Pt100 es la siguiente [5]
Entre ellos, la unidad de t es °C; Rt es la resistencia de Pt100; R0 es la resistencia de Pt100 a 0 °C (100 Ω) [5] (lo mismo a continuación).
El nivel de error (o tolerancia) de Pt100 se divide en 4 niveles [5]. Aquí elegimos el nivel más alto AA (±(0,1+ 0,001 7) (a −50 ~ 250 °C); o el nivel A (el siguiente nivel más alto nivel, ±( 0,15 + ) a −100 ~ 450 °C).
1.3 Detección de señales de temperatura
1.3.1 Termopar
1) Filtrado de paso bajo
Dado que es una señal de voltaje, se puede conectar directamente a la entrada diferencial del LTC2486 (CH2-CH3) después de un simple filtrado de paso bajo RC de primer orden, como se muestra en la Figura 2. frecuencia de corte del filtro
Figura 2 Detección de temperatura y diagrama de circuito ADC
2) La medición de temperatura del termopar de compensación del extremo frío (también llamado extremo de referencia [4]) necesita resolver un problema de compensación del extremo frío. Los pasos específicos son:
① Utilice un chip de medición de temperatura de alta precisión para medir la temperatura del extremo frío tcj de TC [6].
② Debido a la relación lineal no completa entre temperatura ↔ voltaje, tcj debe restablecerse al voltaje Vcj [3] usando un algoritmo de interpolación lineal en una escala tipo E [4].
③ Agregue Vcj al voltaje de salida del TC, Vtc, como parte del voltaje de salida del TC.
Además de Si7051, el chip de medición de temperatura también puede elegir TMP275 (resolución de hasta 0,065 °C) y ADT7410 (0,007 8 °C).
3) Rango de voltaje de salida. Para termopar tipo E, en el rango de medición de temperatura de −68 ~ 661 °C, consulte la tabla de graduación [4], el rango de voltaje correspondiente (Vi) es −3,711 ~ 49,997 mV. Para mejorar la resolución, se puede reducir el rango y aumentar la GANANCIA. Consulte 1.4 para conocer las definiciones de FS y GAIN.
En la Figura 2, la "M" en el símbolo del termopar representa el extremo del blindaje.
1.3.2 Pt100
Es necesario convertir la resistencia no eléctrica en una señal de voltaje. El error de avance del Pt100 de segunda línea no se puede eliminar y la desviación de la medición de temperatura es grande (cuando r = 0,225 Ω, es aproximadamente 1 ~ 1,5 °C). En la Figura 3 (o Figura 2) se muestra un puente de resistencia desequilibrado Pt100 de tres cables. es la resistencia del plomo. es una resistencia fija; ΔR representa el cambio de temperatura relativo a R0, que es positivo o negativo; Vcb es la fuente de alimentación del puente; Vb es el voltaje del puente cuando está desequilibrado. El puente Pt100 de tres hilos tiene un error de derivación controlable.
En este diseño de termostato, el rango de medición de temperatura se divide en dos niveles según la precisión:
①(−68 ~ 68) °C, resolución 0,001 °C;
②(−68 ~ 466) °C, resolución 0,007 °C.
Sin embargo, en la siguiente discusión sobre el diseño, solo se toma ① como ejemplo.
Figura 3 Modelo de análisis de puente de resistencia Pt100 de tres hilos
1.3.2.1 Diseño de resistencia del puente
1) selección de resistencia
① La medición real muestra que la resistencia del cable Pt100 de 2 m de largo es r = 0,225 Ω. Según el requisito de dentro de 20 m, es de aproximadamente 2,25 Ω. De acuerdo con la fórmula (4), nuevamente, se requiere que R1 y R2 sean más de mil veces r para reducir el error de adelanto. Entonces tome image.png= ≥2.25 kΩ;
②La corriente (I p ) que fluye a través de Pt100 no debe ser superior a 1 mA [5] para controlar el autocalentamiento. Pero no puede ser demasiado pequeño, de lo contrario afectará la sensibilidad de la medición de la resistencia del puente. El valor real es I p = (1 ~ 2) mA;
③Cuanto mayor sea la resistencia, mayor será el ruido [8] Desde esta perspectiva, cuanto menor sea la resistencia, mejor;
④ El puente de resistencias debe permanecer equilibrado (Vb = 0) a 0 °C, lo que requiere:
⑤ Considere que Vcb es generado por TL431, así que seleccione Vcb ≥ 2,5 V (ver más abajo). Basado en los cuatro puntos anteriores, R1=R2= 2 400 Ω. Combinando la fórmula (3), tenemos
R1 ~ R3 utilizan resistencias de chip con una precisión del 0,01% y un coeficiente de temperatura de 5×10−6/°C (aproximadamente 0,45 yuanes/pieza en lotes). Este requisito es muy importante.
2) Selección de Vcb y selección del rango de salida de voltaje del puente
Se puede ver en la ecuación (9) que la selección de Vcb está relacionada con el rango de medición de temperatura (ΔR), el rango de voltaje del puente Vb y la selección de resistencia del puente. En el rango de medición ①, cuando ΔR = 26,31 Ω, si se selecciona (4 es GANANCIA), en este momento, según la ecuación (9) Vcb = 5 000 mV, y luego de la ecuación (9) podemos obtener: en − 68 °C, Vb = −52,2 mV, por lo que el rango de Vb es (−52,2 ~ 50) mV. El voltaje del puente Vb también se filtra de paso bajo (R89, R90, C26 y C33) antes de ingresar al canal diferencial (CH0-CH1) del ADC.
1.3.2.2 Análisis de errores del puente de tres hilos
Supongamos primero, y según la ecuación (6), entonces la presión del puente es:
Cuando la resistencia del cable image.png también considera la ecuación (3), entonces el voltaje del puente:
en,
Se puede suponer que:
Entonces r en el término de suma de Vbr y VG puede ignorarse, por lo que tenemos
Considere otros 2 factores para VG:
Disponible:
Para garantizar que la resolución de la medición de temperatura sea superior a 0,001, se requiere que en la fórmula (4b)
Esto se puede hacer en la práctica. De esta forma se puede obtener la siguiente fórmula (4a):
En este momento el error relativo
La ecuación (6) muestra que ① ε puede ser positivo o negativo, porque ΔR y ΔR pueden ser positivos o negativos; ② Cuanto menor es ΔR, es decir, cuanto más cerca está la temperatura de 0 °C, mayor es el error relativo ε ; ③ Según la ecuación (3a), ε = 0 .
Los dos puntos anteriores ① y ② son consistentes con la comprensión perceptual general.
El ejemplo actual es el siguiente: Como se mencionó anteriormente, cuando tiene 2 m de largo, la resistencia del cable r = 0,225 Ω, si ΔR = 0,195 (correspondiente a Ω de temperatura 0,5 °C), y sea R1 = 2402 Ω, R2 = 2400 Ω, entonces la fórmula (3),
Este error relativo es muy pequeño y después de que la temperatura sea superior a 0,5 °C, el error disminuirá gradualmente nuevamente. Con base en lo anterior, siempre que se cumpla la fórmula (3a), la influencia de la resistencia del cable r se puede reducir hasta un 100%, o incluso menos (diseñado de acuerdo con las necesidades reales).
Las condiciones de análisis señaladas en la referencia [10] son diferentes a esta ¿Es mejor cambiar a la ecuación (3a)?
Es importante tener en cuenta que si las resistencias de los tres cables no son iguales (lo que ocurre en la práctica), se introducirán errores. En este momento, el circuito de tres cables aquí no puede resolver completamente el problema. Por lo tanto, al comprar, debes solicitar al proveedor que las tres líneas sean iguales.
1.4 Selección y uso de ADC
La elección de LTC2486 (denominado 2486) se debe principalmente a las siguientes cuatro razones [1].
①Alta resolución completa y pequeño error. Nominalmente tiene 16 bits, pero en realidad tiene una resolución de 17 bits (incluido el bit de signo). Idealmente, se puede resolver un voltaje de 1 μV.
② Hay 2 canales diferenciales, que solo cumplen con los requisitos de entrada de termopares y Pt100 de termostatos generales, sin necesidad de circuitos de conmutación adicionales (que introducirán errores de ruido).
③Hay un amplificador de ganancia programable incorporado (PGA, 1 ~ 256, dividido en 8 niveles).
④ Bajo nivel de ruido y pequeño error.
1.4.1 Diseño de circuito de aplicación ADC
El circuito de interfaz entre LTC2486, el sensor y STM32F103 se muestra en la Figura 2.
1) Diseño de voltaje Vcc y REF +, REF −
① Teniendo en cuenta el bajo consumo de energía (0,8 mW) y la precisión de 2486, se selecciona Vcc
Elija ser alimentado por el voltaje de referencia, TL431 genera salida a través de 5 V;
② Defina ADC_Data como datos de conversión; GAIN como valor de ganancia interna; Vref como voltaje de referencia; Fs como voltaje de escala completa, Fs = 0.5Vref[1].
Generalmente, los errores de conversión (compensación, no linealidad, etc.) se ignoran y los datos de conversión son inversamente proporcionales a Vref, es decir, ADC_Data. De esta forma, cuanto menor sea la Vref, menor será el voltaje que el LSB puede resolver. Pero Vref no puede ser demasiado pequeño, al menos 400 mV [8]. Aquí tome REF+ = 400 mV.
③ La fuente de alimentación positiva de referencia (REF+) de 2486 es generada por el chip de mayor precisión (0,5%) LT6650. Cuando la entrada de este chip es de 5 V, la salida se puede ajustar (0,4 ~ 4) V.
④ REF- Tierra. Vref = REF + −REF− = 400 mV, Fs =200 (mV).
2) Selección de GANANCIA
Para lograr una conversión a escala completa (los datos de conversión positivos alcanzan 0×10000), para termopares, siga la Sección 1.3.1, GANANCIA ≈ 4, tome 4 pares de Pt100, siga la Sección 1.3.2, GANANCIA = 4. Tenga en cuenta que cuanto mayor sea el valor de GAIN, mayor será el ruido [1] y mayor será la fluctuación del valor de ADC_Data. La selección de GANANCIA se puede lograr a través de los botones del controlador.
3) Interfaz con STM32F103 (F103 para abreviar)
Interfaz con F103 a través de SPI de cuatro hilos.
① Modo bidireccional, F103 es el maestro y 2486 es el esclavo;
② F103 usa un voltaje de trabajo de 3.3V, mientras que 2486 usa 5V y debe haber una conversión de nivel en el medio. Por esta razón, la señal de salida (MOSI, SCK, NSS) de F103 debe configurarse en circuito abierto (OD) y la resistencia pull-up es (3,3 ~ 5,1) kΩ; mientras que la señal de salida SDO de 2486 debe dividirse a 3,3 V mediante una resistencia y luego conectó MISO a F103. como se muestra en la imagen 2.
2 Programación
Realizado bajo IAR versión 7.20.5.624. Utilice la última versión de la función de biblioteca 3.5.0 [9] lanzada en 2011.
2.1 Programación de interfaces F103 y LTC2486
2.1.1 Función de inicialización SPI
1) Procedimiento
vacío SPI2_Init (vacío)
{
Consulte programación de funciones de biblioteca. Sólo preste atención a configurar las líneas PB13 y PB15 como salidas multiplexadas de drenaje abierto. Este método es para la conversión de nivel entre F103 y 2486.
GPIO_InitStructure.GPIO_Pin_13|GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_
SOBREDOSIS;}
2.1.2 Escribir una función de datos de bytes en 2486
1) Procedimiento
anular SPI2_reg_write (datos u8)
{
① SPI2->DR = datos; // Coloca los datos en el registro de datos del puerto SPI2 y envíalos;
② mientras (SPI_I2S_GetFlagStatus(SPI2,SPI_I2S_
FLAG_RXNE) == RESET);
}
2) Notas del programa
La declaración ② determina si la escritura de un byte de datos es exitosa. Hay muchas declaraciones similares en las funciones de biblioteca SPI e I 2C, que deben entenderse. Debido a limitaciones de espacio, no se proporciona más introducción aquí. Para obtener más detalles, consulte las referencias [9] y [13].
2.1.3 Leer 1 byte de datos de 2486
Simplemente léalo directamente desde el registro de datos del puerto SPI2. No se utilizan funciones. Es decir: b = SPI 2→ DR; b es una variable de byte sin signo.
2.1.4 Leer la función de datos de conversión de 2486
1) Algoritmo
Antes de leer datos, primero se debe configurar (escribir) el modo de trabajo de 2486. Diferentes requisitos requieren diferentes configuraciones. Esto es sólo un ejemplo. Tenga en cuenta el uso de valores predeterminados.
①La tasa de conversión de datos de 2486 generalmente se selecciona en 6 veces/s. También se puede seleccionar 12 veces/s, pero esto reducirá la precisión [1] y generalmente no se selecciona.
②Seleccione el canal de conversión. Elija entre 4 canales de un solo extremo o 2 canales diferenciales.
③Seleccione el valor de GANANCIA. Realice diferentes selecciones como se describe en 1.4.1.
Después de esto, los datos se pueden leer.
④ 2486 generará un nivel bajo de 1 bit en el pin SDO cuando se complete la conversión, que se puede usar como indicador de fin de conversión (es decir, señal EOC) para juzgar, generalmente usando el método de consulta.
⑤ 2486 generará 3 bytes de datos de 8 bits después de cada conversión. Cada byte de salida se sincroniza con 1 byte de escritura de datos. Por lo tanto, el momento correcto es: escribir 1 byte primero, luego leer 1 byte; escribir 1 byte nuevamente, luego leer 1 byte y repetir. Si el número de bytes a leer es mayor que los bytes de escritura válidos, escriba 0 datos en su lugar (escritura nula).
0 Prefacio
Muchos termostatos todavía utilizan la estructura tradicional del circuito de medición de temperatura: sensor → filtro → preamplificador 1 → conmutación de tipo de sensor → preamplificador 2 → filtro → ADC → procesamiento MCU. Además, los ADC suelen estar integrados en MCU, que no sólo tienen baja resolución (principalmente 12 bits o menos), sino que la fuente de alimentación de referencia suele ser inmutable. Este tipo de estructura tiene muchos componentes y mucho ruido, y no es adecuada para mediciones y controles de alta precisión. Tomando como ejemplo los termopares, dentro del rango de 0 ~ 661 °C, es difícil que la resolución supere los 0,1 °C. Es difícil superar la precisión del 0,5%image.png (1631081939725930.png es el valor absoluto de la temperatura, la unidad es °C). En los últimos años, muchas empresas de circuitos integrados han integrado las estructuras tradicionales de medición de temperatura mencionadas anteriormente y han lanzado altas resoluciones (16 bits, 20 bits y 24 bits) para señales débiles de sensores a nivel de microvoltios, como los termopares. Y existen ADC multicanal, como el LTC2486. Esto proporciona una buena opción para el diseño de medición de temperatura de alta precisión del termostato.
1: Diseño de circuito de medición de temperatura de alta precisión
1.1 Estructura del circuito
La Figura 1 muestra un diseño más convencional, que es relativamente simple. Sin circuitos especiales de amplificación de señal y conmutación de canal, el circuito de filtro también es el RC pasivo de primer orden más simple.
1.2 Sensor de temperatura
Por lo general, el termostato requiere dos tipos principales de sensores: termopares (TC) y resistencias (RTD).
Figura 1 Estructura del circuito de medición de temperatura de alta precisión del termostato
1.2.1 Termopar
El último estándar internacional para termopares es la versión 2013 de IEC60584-1:2013, y el estándar nacional equivalente (IDT) es GB/T1639.1-2018[4]. La norma divide los termopares en múltiples tipos (E, K, J, etc.), entre los cuales el tipo E tiene la mayor sensibilidad [3]. Es adecuado para mediciones de temperatura de relativamente alta precisión. Desde una perspectiva de alta precisión, el tipo E debe comprarse con error de Clase 1 (0,004 para una temperatura de -40 a 800 °C) [4], aislamiento de funda y unión [3] pero conectado al blindaje para conexión diferencial y reducción de ruido.
1.2.2 IDT
En termostatos, esto generalmente se refiere a Pt100, la norma internacional actual es IEC 60751:2008 y la norma nacional equivalente es GB/T30121-2013. La fórmula de la resistencia térmica Pt100 es la siguiente [5]
Entre ellos, la unidad de t es °C; Rt es la resistencia de Pt100; R0 es la resistencia de Pt100 a 0 °C (100 Ω) [5] (lo mismo a continuación).
El nivel de error (o tolerancia) de Pt100 se divide en 4 niveles [5]. Aquí elegimos el nivel más alto AA (±(0,1+ 0,001 7) (a −50 ~ 250 °C); o el nivel A (el siguiente nivel más alto nivel, ±( 0,15 + ) a −100 ~ 450 °C).
1.3 Detección de señales de temperatura
1.3.1 Termopar
1) Filtrado de paso bajo
Dado que es una señal de voltaje, se puede conectar directamente a la entrada diferencial del LTC2486 (CH2-CH3) después de un simple filtrado de paso bajo RC de primer orden, como se muestra en la Figura 2. frecuencia de corte del filtro
Figura 2 Detección de temperatura y diagrama de circuito ADC
2) La medición de temperatura del termopar de compensación del extremo frío (también llamado extremo de referencia [4]) necesita resolver un problema de compensación del extremo frío. Los pasos específicos son:
① Utilice un chip de medición de temperatura de alta precisión para medir la temperatura del extremo frío tcj de TC [6].
② Debido a la relación lineal no completa entre temperatura ↔ voltaje, tcj debe restablecerse al voltaje Vcj [3] usando un algoritmo de interpolación lineal en una escala tipo E [4].
③ Agregue Vcj al voltaje de salida del TC, Vtc, como parte del voltaje de salida del TC.
Además de Si7051, el chip de medición de temperatura también puede elegir TMP275 (resolución de hasta 0,065 °C) y ADT7410 (0,007 8 °C).
3) Rango de voltaje de salida. Para termopar tipo E, en el rango de medición de temperatura de −68 ~ 661 °C, consulte la tabla de graduación [4], el rango de voltaje correspondiente (Vi) es −3,711 ~ 49,997 mV. Para mejorar la resolución, se puede reducir el rango y aumentar la GANANCIA. Consulte 1.4 para conocer las definiciones de FS y GAIN.
En la Figura 2, la "M" en el símbolo del termopar representa el extremo del blindaje.
1.3.2 Pt100
Es necesario convertir la resistencia no eléctrica en una señal de voltaje. El error de avance del Pt100 de segunda línea no se puede eliminar y la desviación de la medición de temperatura es grande (cuando r = 0,225 Ω, es aproximadamente 1 ~ 1,5 °C). En la Figura 3 (o Figura 2) se muestra un puente de resistencia desequilibrado Pt100 de tres cables. es la resistencia del plomo. es una resistencia fija; ΔR representa el cambio de temperatura relativo a R0, que es positivo o negativo; Vcb es la fuente de alimentación del puente; Vb es el voltaje del puente cuando está desequilibrado. El puente Pt100 de tres hilos tiene un error de derivación controlable.
En este diseño de termostato, el rango de medición de temperatura se divide en dos niveles según la precisión:
①(−68 ~ 68) °C, resolución 0,001 °C;
②(−68 ~ 466) °C, resolución 0,007 °C.
Sin embargo, en la siguiente discusión sobre el diseño, solo se toma ① como ejemplo.
Figura 3 Modelo de análisis de puente de resistencia Pt100 de tres hilos
1.3.2.1 Diseño de resistencia del puente
1) selección de resistencia
① La medición real muestra que la resistencia del cable Pt100 de 2 m de largo es r = 0,225 Ω. Según el requisito de dentro de 20 m, es de aproximadamente 2,25 Ω. De acuerdo con la fórmula (4), nuevamente, se requiere que R1 y R2 sean más de mil veces r para reducir el error de adelanto. Entonces tome image.png= ≥2.25 kΩ;
②La corriente (I p ) que fluye a través de Pt100 no debe ser superior a 1 mA [5] para controlar el autocalentamiento. Pero no puede ser demasiado pequeño, de lo contrario afectará la sensibilidad de la medición de la resistencia del puente. El valor real es I p = (1 ~ 2) mA;
③Cuanto mayor sea la resistencia, mayor será el ruido [8] Desde esta perspectiva, cuanto menor sea la resistencia, mejor;
④ El puente de resistencias debe permanecer equilibrado (Vb = 0) a 0 °C, lo que requiere:
⑤ Considere que Vcb es generado por TL431, así que seleccione Vcb ≥ 2,5 V (ver más abajo). Basado en los cuatro puntos anteriores, R1=R2= 2 400 Ω. Combinando la fórmula (3), tenemos
R1 ~ R3 utilizan resistencias de chip con una precisión del 0,01% y un coeficiente de temperatura de 5×10−6/°C (aproximadamente 0,45 yuanes/pieza en lotes). Este requisito es muy importante.
2) Selección de Vcb y selección del rango de salida de voltaje del puente
Se puede ver en la ecuación (9) que la selección de Vcb está relacionada con el rango de medición de temperatura (ΔR), el rango de voltaje del puente Vb y la selección de resistencia del puente. En el rango de medición ①, cuando ΔR = 26,31 Ω, si se selecciona (4 es GANANCIA), en este momento, según la ecuación (9) Vcb = 5 000 mV, y luego de la ecuación (9) podemos obtener: en − 68 °C, Vb = −52,2 mV, por lo que el rango de Vb es (−52,2 ~ 50) mV. El voltaje del puente Vb también se filtra de paso bajo (R89, R90, C26 y C33) antes de ingresar al canal diferencial (CH0-CH1) del ADC.
1.3.2.2 Análisis de errores del puente de tres hilos
Supongamos primero, y según la ecuación (6), entonces la presión del puente es:
Cuando la resistencia del cable image.png también considera la ecuación (3), entonces el voltaje del puente:
en,
Se puede suponer que:
Entonces r en el término de suma de Vbr y VG puede ignorarse, por lo que tenemos
Considere otros 2 factores para VG:
Disponible:
Para garantizar que la resolución de la medición de temperatura sea superior a 0,001, se requiere que en la fórmula (4b)
Esto se puede hacer en la práctica. De esta forma se puede obtener la siguiente fórmula (4a):
En este momento el error relativo
La ecuación (6) muestra que ① ε puede ser positivo o negativo, porque ΔR y ΔR pueden ser positivos o negativos; ② Cuanto menor es ΔR, es decir, cuanto más cerca está la temperatura de 0 °C, mayor es el error relativo ε ; ③ Según la ecuación (3a), ε = 0 .
Los dos puntos anteriores ① y ② son consistentes con la comprensión perceptual general.
El ejemplo actual es el siguiente: Como se mencionó anteriormente, cuando tiene 2 m de largo, la resistencia del cable r = 0,225 Ω, si ΔR = 0,195 (correspondiente a Ω de temperatura 0,5 °C), y sea R1 = 2402 Ω, R2 = 2400 Ω, entonces la fórmula (3),
Este error relativo es muy pequeño y después de que la temperatura sea superior a 0,5 °C, el error disminuirá gradualmente nuevamente. Con base en lo anterior, siempre que se cumpla la fórmula (3a), la influencia de la resistencia del cable r se puede reducir hasta un 100%, o incluso menos (diseñado de acuerdo con las necesidades reales).
Las condiciones de análisis señaladas en la referencia [10] son diferentes a esta ¿Es mejor cambiar a la ecuación (3a)?
Es importante tener en cuenta que si las resistencias de los tres cables no son iguales (lo que ocurre en la práctica), se introducirán errores. En este momento, el circuito de tres cables aquí no puede resolver completamente el problema. Por lo tanto, al comprar, debes solicitar al proveedor que las tres líneas sean iguales.
1.4 Selección y uso de ADC
La elección de LTC2486 (denominado 2486) se debe principalmente a las siguientes cuatro razones [1].
①Alta resolución completa y pequeño error. Nominalmente tiene 16 bits, pero en realidad tiene una resolución de 17 bits (incluido el bit de signo). Idealmente, se puede resolver un voltaje de 1 μV.
② Hay 2 canales diferenciales, que solo cumplen con los requisitos de entrada de termopares y Pt100 de termostatos generales, sin necesidad de circuitos de conmutación adicionales (que introducirán errores de ruido).
③Hay un amplificador de ganancia programable incorporado (PGA, 1 ~ 256, dividido en 8 niveles).
④ Bajo nivel de ruido y pequeño error.
1.4.1 Diseño de circuito de aplicación ADC
El circuito de interfaz entre LTC2486, el sensor y STM32F103 se muestra en la Figura 2.
1) Diseño de voltaje Vcc y REF +, REF −
① Teniendo en cuenta el bajo consumo de energía (0,8 mW) y la precisión de 2486, se selecciona Vcc
Elija ser alimentado por el voltaje de referencia, TL431 genera salida a través de 5 V;
② Defina ADC_Data como datos de conversión; GAIN como valor de ganancia interna; Vref como voltaje de referencia; Fs como voltaje de escala completa, Fs = 0.5Vref[1].
Generalmente, los errores de conversión (compensación, no linealidad, etc.) se ignoran y los datos de conversión son inversamente proporcionales a Vref, es decir, ADC_Data. De esta forma, cuanto menor sea la Vref, menor será el voltaje que el LSB puede resolver. Pero Vref no puede ser demasiado pequeño, al menos 400 mV [8]. Aquí tome REF+ = 400 mV.
③ La fuente de alimentación positiva de referencia (REF+) de 2486 es generada por el chip de mayor precisión (0,5%) LT6650. Cuando la entrada de este chip es de 5 V, la salida se puede ajustar (0,4 ~ 4) V.
④ REF- Tierra. Vref = REF + −REF− = 400 mV, Fs =200 (mV).
2) Selección de GANANCIA
Para lograr una conversión a escala completa (los datos de conversión positivos alcanzan 0×10000), para termopares, siga la Sección 1.3.1, GANANCIA ≈ 4, tome 4 pares de Pt100, siga la Sección 1.3.2, GANANCIA = 4. Tenga en cuenta que cuanto mayor sea el valor de GAIN, mayor será el ruido [1] y mayor será la fluctuación del valor de ADC_Data. La selección de GANANCIA se puede lograr a través de los botones del controlador.
3) Interfaz con STM32F103 (F103 para abreviar)
Interfaz con F103 a través de SPI de cuatro hilos.
① Modo bidireccional, F103 es el maestro y 2486 es el esclavo;
② F103 usa un voltaje de trabajo de 3.3V, mientras que 2486 usa 5V y debe haber una conversión de nivel en el medio. Por esta razón, la señal de salida (MOSI, SCK, NSS) de F103 debe configurarse en circuito abierto (OD) y la resistencia pull-up es (3,3 ~ 5,1) kΩ; mientras que la señal de salida SDO de 2486 debe dividirse a 3,3 V mediante una resistencia y luego conectó MISO a F103. como se muestra en la imagen 2.
2 Programación
Realizado bajo IAR versión 7.20.5.624. Utilice la última versión de la función de biblioteca 3.5.0 [9] lanzada en 2011.
2.1 Programación de interfaces F103 y LTC2486
2.1.1 Función de inicialización SPI
1) Procedimiento
vacío SPI2_Init (vacío)
{
Consulte programación de funciones de biblioteca. Sólo preste atención a configurar las líneas PB13 y PB15 como salidas multiplexadas de drenaje abierto. Este método es para la conversión de nivel entre F103 y 2486.
GPIO_InitStructure.GPIO_Pin_13|GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_
SOBREDOSIS;}
2.1.2 Escribir una función de datos de bytes en 2486
1) Procedimiento
anular SPI2_reg_write (datos u8)
{
① SPI2->DR = datos; // Coloca los datos en el registro de datos del puerto SPI2 y envíalos;
② mientras (SPI_I2S_GetFlagStatus(SPI2,SPI_I2S_
FLAG_RXNE) == RESET);
}
2) Notas del programa
La declaración ② determina si la escritura de un byte de datos es exitosa. Hay muchas declaraciones similares en las funciones de biblioteca SPI e I 2C, que deben entenderse. Debido a limitaciones de espacio, no se proporciona más introducción aquí. Para obtener más detalles, consulte las referencias [9] y [13].
2.1.3 Leer 1 byte de datos de 2486
Simplemente léalo directamente desde el registro de datos del puerto SPI2. No se utilizan funciones. Es decir: b = SPI 2→ DR; b es una variable de byte sin signo.
2.1.4 Leer la función de datos de conversión de 2486
1) Algoritmo
Antes de leer datos, primero se debe configurar (escribir) el modo de trabajo de 2486. Diferentes requisitos requieren diferentes configuraciones. Esto es sólo un ejemplo. Tenga en cuenta el uso de valores predeterminados.
①La tasa de conversión de datos de 2486 generalmente se selecciona en 6 veces/s. También se puede seleccionar 12 veces/s, pero esto reducirá la precisión [1] y generalmente no se selecciona.
②Seleccione el canal de conversión. Elija entre 4 canales de un solo extremo o 2 canales diferenciales.
③Seleccione el valor de GANANCIA. Realice diferentes selecciones como se describe en 1.4.1.
Después de esto, los datos se pueden leer.
④ 2486 generará un nivel bajo de 1 bit en el pin SDO cuando se complete la conversión, que se puede usar como indicador de fin de conversión (es decir, señal EOC) para juzgar, generalmente usando el método de consulta.
⑤ 2486 generará 3 bytes de datos de 8 bits después de cada conversión. Cada byte de salida se sincroniza con 1 byte de escritura de datos. Por lo tanto, el momento correcto es: escribir 1 byte primero, luego leer 1 byte; escribir 1 byte nuevamente, luego leer 1 byte y repetir. Si el número de bytes a leer es mayor que los bytes de escritura válidos, escriba 0 datos en su lugar (escritura nula).