Los sensores de temperatura digitales ofrecen la forma más sencilla de medir e introducir una lectura de temperatura altamente precisa en un microcontrolador u otro dispositivo lógico. En el último artículo de esta serie sobre sensores de temperatura, examinamos los sensores de temperatura analógicos. Aunque estos pueden parecer más fáciles de implementar simplemente tomando una simple lectura ADC, para obtener la medición más precisa, necesitarás calibrar el ADC de cada dispositivo durante la producción, lo cual no siempre es factible. En este artículo, nos adentramos en varias opciones diferentes de sensores de temperatura digitales. Los sensores de temperatura digitales serán típicamente más caros que un simple sensor de temperatura analógico. Sin embargo, la facilidad y conveniencia de producción usando estos dispositivos a menudo hacen que el costo adicional valga la pena donde se requieren altos niveles de precisión en la medición.
Los sensores de temperatura digitales son el quinto tipo de sensor que estamos analizando en esta serie. Concluimos esta serie con el artículo final, en el que enfrentaremos todos los sensores que hemos probado entre sí en un concurso cara a cara bajo una amplia gama de condiciones ambientales para permitirnos comparar su funcionalidad, precisión y comportamiento. Comenzamos la serie con un artículo introductorio en el que construimos un conjunto de plantillas para tarjetas de sensores de temperatura estándar. Tanto las versiones analógicas como las digitales se pueden apilar mediante el uso de conectores mezanine o leer independientemente desde sus conectores de borde. Construiremos placas base para todos estos sensores más adelante en la serie, lo que nos permitirá leer datos de un solo sensor para validar su funcionalidad o leer todo el conjunto de placas para que podamos registrar los datos de todas ellas juntas.
En esta serie, vamos a echar un vistazo a una amplia gama de sensores de temperatura, hablando sobre sus ventajas y desventajas, así como algunas topologías típicas para su implementación. La serie cubrirá los siguientes tipos de sensores:
Como en mis proyectos, puedes encontrar los detalles del proyecto, los esquemáticos y los archivos de la placa en GitHub junto con las otras implementaciones de sensores de temperatura. El proyecto se publica bajo la licencia de código abierto MIT, que te permite usar los diseños o cualquier parte de ellos para fines personales o comerciales, como desees.
Supongamos que solo te interesa leer la salida de un sensor de temperatura utilizando un microcontrolador u otro dispositivo lógico. En ese caso, un sensor de temperatura digital es eléctricamente la opción más sencilla de implementar. Los sensores de temperatura digitales pueden ofrecer niveles excelentes de precisión ya que toda la detección, compensación y conversión se realiza en el chip. No es necesario calibrar el ADC de tu microcontrolador (o ADC externo). Además, no necesitas preocuparte por la interferencia electromagnética de trazas cercanas u otros dispositivos conectados al sensor de temperatura analógico y el microcontrolador que podrían influir involuntariamente en la lectura de la temperatura.
En este proyecto, implementaremos cuatro diferentes opciones de sensores de temperatura digitales con variadas resoluciones y rangos de detección.
Nombre |
MAX31826MUA+T |
STS-30-DIS |
EMC1833T |
SI7051-A20-IMR |
Tipo |
Digital |
Digital |
Digital |
Digital |
Temp. Mín. de Detección (°C) |
-55°C |
0°C |
-40°C |
-40°C |
Temp. Máx. de Detección (°C) |
+125°C |
+60°C |
+125°C |
+125°C |
Rango de Detección |
Local |
Local |
Remoto |
Local |
Resolución (Bits) |
12 |
16 |
|
14 |
Precisión (°C) |
±0.5°C (+10°C a +85°C) ±2°C (-55°C a 125°C) |
±0.2°C |
±1°C (-20°C a +105°C) |
±0.1°C |
Temp de Operación (°C) |
-55°C a +125°C |
-40°C a +125°C |
-40°C a +125°C |
-40°C a +125°C |
Funciones |
Bus de 1 Cable, Alimentación Parasitaria |
I²C |
I²C, SMBus |
I²C |
Voltaje Mínimo de Alimentación |
3 V |
2.15 V |
1.62 V |
1.9 V |
Voltaje Máximo de Suministro (V) |
3.7 V |
5.5 V |
3.6 V |
3.6 V |
Consumo de Corriente (uA) |
4 mA (cuando lee nivel lógico bajo) |
45 uA en reposo |
700 uA en conversión, |
195 nA |
Fabricante |
Maxim Integrated |
Sensirion AG |
Microchip |
Silicon Labs |
Paquete |
8-MSOP |
8-VFDFN |
8-VDFN |
6-DFN |
He incluido el EMC1833T porque, para mí, es un sensor fascinante. Es un dispositivo de detección de temperatura remota, lo que significa que no utiliza un sensor ubicado dentro del componente. En cambio, detecta la temperatura convirtiendo la salida de un sensor externo, que en este caso es un transistor, en una señal digital. No estoy seguro de que necesariamente pertenezca a esta categoría de "sensor de temperatura digital" ya que no encaja del todo con los otros sensores que estamos mirando. Aún así, los transistores no son típicamente conocidos por ser utilizados como sensores de temperatura, así que no tenía idea de dónde colocarlo. Lo que me fascina de este sensor es que puede medir la temperatura usando casi cualquier transistor. Si estás diseñando un ASIC, entonces podrías fácilmente incluir un transistor extra en el die para este propósito. Luego puedes usar este transistor, que puede ser leído por un sensor como el EMC1833T, para tomar una medición externa de la temperatura del die sin necesidad de añadir ninguna complejidad adicional a tu silicio. Otra manera de ver esto es que puedes monitorear la temperatura de tu die sin incurrir en ningún riesgo de ingeniería asociado con diseñar y construir un sensor de temperatura digital a medida en el silicio.
El primer sensor que implementaremos es el MAX31826 producido por Maxim Integrated. Este sensor funciona con un bus 1-Wire en lugar del más típico I2C o SPI. Un problema potencial es que es poco probable que 1-Wire sea ofrecido como protocolo de comunicaciones por el microcontrolador en el que se basa tu proyecto. Sin embargo, es un protocolo simple de manipular a nivel de bit y tiene una ventaja considerable sobre las opciones más populares en que solo necesita dos cables para operar el sensor. Incluyendo el suministro de energía, I2C requiere cuatro cables, y SPI necesita cinco cables. Por el contrario, 1-Wire solo requiere una tierra y una línea de datos para la mayoría de las aplicaciones, ya que puede alimentarse de la línea de datos utilizando una técnica de poder parasitario. Integrado dentro del sensor hay un capacitor que puede sostener el suministro de energía para el IC durante los períodos cuando la línea de datos está en estado bajo, lo que elimina la necesidad de un suministro de voltaje dedicado bajo la mayoría de las condiciones normales de operación. Esto puede ser una solución muy conveniente para placas que tienen un espacio extremadamente limitado disponible.
Otra característica interesante del sensor y su bus 1-Wire es la capacidad de establecer una dirección de 4 bytes para el dispositivo utilizando pines seleccionables manualmente instalados en el paquete del dispositivo. Esto permite la instalación de hasta 16 sensores de temperatura en un único bus de datos 1-Wire al dar a cada dispositivo una dirección única. Esta puede ser una opción muy conveniente si tienes pocos pines en el microcontrolador y, al mismo tiempo, requieres capacidades de sensado utilizando un gran número de sensores de temperatura.
En comparación con los sensores que hemos visto en los artículos anteriores de esta serie, el MAX31826 no solo es altamente preciso sino que también entrega datos de alta resolución. El sensor ofrece una precisión de +/- 0.5°C entre -10°C y +85°C, con una precisión de +/- 2°C en todo su rango de temperatura de -55°C a +125°C. Todas las lecturas del sensor se entregan como valores de 12 bits, lo cual es una resolución más alta que la que ofrecen la mayoría de los microcontroladores.
Como sensor de temperatura, el MAX31826 tiene mucho que ofrecer, pero también está equipado con una EEPROM a bordo de 1 kB como característica adicional. Supongo que tenían algo de espacio sobrante en el chip. Si tu microcontrolador no tiene una EEPROM integrada y necesitas almacenar algunos datos de configuración para tu aplicación, este sensor de temperatura te tiene cubierto. Si necesitas almacenamiento no volátil adicional, este sensor de temperatura reducirá tu cantidad de componentes y ahorrará espacio en la placa.
La hoja de datos recomienda alimentar directamente el dispositivo en lugar de usar la alimentación parasitaria del bus cuando las temperaturas puedan superar los 100°C. Aunque la mayoría de las aplicaciones típicas no necesitarán alcanzar estos niveles de temperatura, las pruebas que realizaremos con el sensor superarán los 100°C. Por lo tanto, para este ejercicio, seguiremos la recomendación de alimentar directamente el dispositivo en lugar de explorar la fascinante opción de alimentación parasitaria.
La forma de la placa y la disposición general provienen de la plantilla de proyecto que creamos en la introducción a esta serie. Como no estamos utilizando ninguno de los buses de comunicación habituales, he eliminado las redes asociadas y sus componentes de la placa. Sin embargo, he dejado las conexiones en el conector de apilamiento para asegurar que esto no cause ningún problema para otros sensores apilados. Con el bus 1-Wire, solo necesitamos usar el pin de selección de chip para comunicarnos de vuelta al microcontrolador anfitrión.
He utilizado el STS-30-DIS producido por Sensirion en un proyecto anterior debido a su increíble precisión e indicaciones calibradas que son rastreables a NIST. Esto fue necesario ya que la instrumentación se desarrolló para una empresa de servicios alimentarios, requerida para recopilar datos con fines de informes gubernamentales. Con una huella pequeña, un amplio rango de voltaje, una precisión increíble y una salida digital linealizada de 16 bits, hay mucho que amar de este dispositivo si solo requieres detección de temperaturas positivas. Si necesitas detectar temperaturas por debajo del punto de congelación, la variante STS-30A-DIS está calificada para automoción y tiene un rango de detección de -40°C a 125°C. Sin embargo, este aumento en el rango de detección viene con un ligero costo para la precisión general.
En el artículo anterior sobre sensores de temperatura analógicos, hablé sobre lo excelentes que son los sensores de temperatura analógicos para aplicaciones como el monitoreo de procesos, para encender y apagar un ventilador, o para otros sistemas de gestión térmica que pueden funcionar sin intervención de un microcontrolador. El STS-30 ofrece un pin de ALERTA que se puede utilizar para cumplir una función similar. Está destinado para conectarse a un pin de interrupción de un microcontrolador; sin embargo, también tiene una nota de aplicación completa dedicada a él, y se puede utilizar para conmutar cargas automáticamente. La capacidad de interfaz con la función de interrupción del microcontrolador puede ser crucial. Permite al sensor notificar inmediatamente al microcontrolador con una señal de alta prioridad que algo necesita ser hecho de inmediato, en lugar de depender del sondeo infrecuente del sensor por parte del microcontrolador y la respuesta a los datos leídos. Si la salida de ALERTA se conecta a un transistor para permitirle conducir una carga, el sensor podría utilizarse tanto para propósitos de monitoreo/registro como para tener una función de gestión térmica autónoma. En comparación con las soluciones analógicas, esta configuración podría hacer que el STS-30 digital sea una opción más económica. No se requerirá un comparador separado, y el umbral para el pin de ALERTA puede ser configurado por el usuario a través de un microcontrolador/HMI sin la necesidad de que esté preestablecido en fábrica.
Los dispositivos de la serie STS-30 utilizan todos un bus I2C para las comunicaciones. El esquemático que estamos implementando para este artículo no incluye ninguna de las resistencias de pull-up que generalmente se requieren para que el bus de comunicaciones funcione correctamente. Estas resistencias de pull-up se instalarán en cambio en las placas anfitrionas. Como solo necesitamos un conjunto de resistencias de pull-up por bus, agregar resistencias a cada sensor añadiría múltiples resistencias de pull-up al bus y podría resultar en su mal funcionamiento. Además, todas las resistencias conectadas en paralelo reducirían su resistencia total.
El pin ADDR nos permite elegir entre dos direcciones diferentes para el dispositivo, lo que nos permite conectar dos componentes STS-30 al mismo bus I2C. Aunque esto puede no ser tan impresionante como las capacidades del dispositivo MAX31826 en el bus 1-Wire, sigue siendo conveniente ya que nos permite usar más de un dispositivo. Estoy conectando el pin ADDR a lógica baja (GND) ya que esto establece la dirección predeterminada en 0x4A, con la lógica llevada al estado alto, esto lo establece en la dirección alternativa de 0x4B.
Me gusta el paquete del STS-30 porque es compacto, pero aún así no demasiado complicado, por lo que puedes ensamblar tu placa a mano si estás utilizando una plantilla. El paquete del sensor más un condensador de desacoplamiento 0603 juntos son aproximadamente del mismo tamaño que el MAX31826 que vimos anteriormente. Con un condensador más pequeño, encajaría muy bien en una placa de alta densidad. La gran almohadilla de tierra bajo el CI proporciona un excelente camino para transferir calor desde un plano de tierra hasta la unión de detección de temperatura dentro del CI. Esto lo convierte en una opción perfecta para colocar al lado de cualquier dispositivo, como un MOSFET grande o un regulador, que utiliza el plano de tierra para descargar el exceso de calor en la placa. Colocar el CI en proximidad cercana a la fuente de calor dará resultados más precisos en la detección de temperatura.
Como mencioné anteriormente, encuentro fascinante el dispositivo EMC1883 producido por Microchip no solo porque tiene una gama de características fantásticas, sino que puede leer la temperatura detectada por una unión de transistor. El STS-30 que vimos anteriormente tenía un pin de interrupción de alerta activado por un valor absoluto; sin embargo, el EMC1883 puede configurarse para también generar una alerta basada en la tasa de cambio de la temperatura detectada. Esta alerta de tasa de cambio puede permitir que las soluciones inteligentes de gestión térmica se activen automáticamente en anticipación de su necesidad en lugar de después del evento. Esto tiene el potencial de mejorar la fiabilidad del dispositivo en su conjunto mediante la gestión cuidadosa de su temperatura de funcionamiento. Al igual que con el STS-30, es completamente configurable por software, lo que ofrece ventajas considerables sobre cualquier opción establecida de fábrica que probablemente necesitarías implementar si estuvieras usando un termostato completamente analógico para lograr los mismos resultados.
El modelo específico de la serie EMC8xx que estamos probando solo admitirá la detección de una única unión. Sin embargo, hay otros modelos en la serie que pueden proporcionar detección para hasta cinco uniones.
Como el STS-30, este es un sensor basado en I2C que permite instalar múltiples sensores en un único bus I2C. Una distinción es que la implementación del pin ADDR del EMC1833T es diferente de la naturaleza binaria de encendido/apagado del dispositivo STS-30. Este dispositivo te permite configurar hasta seis direcciones separadas utilizando diferentes valores de resistencias de pull-up. El pin ADDR también funciona como uno de los pines de interrupción, actuando como el Pin de Advertencia Térmica (junto con el pin de ALERTA/Advertencia Térmica 2). Como en la instalación del dispositivo anterior, no implementaré resistencias de pull-up en las líneas I2C en la placa del sensor de temperatura. Sin embargo, es necesario que se coloquen en algún lugar dentro de tu circuito para permitir que el bus de comunicaciones del sensor funcione correctamente.
La hoja de datos recomienda usar un transistor de unión bipolar 2N3904 como el elemento de detección remota, ya que no tengo un transistor de CPU disponible para usar en las mediciones. Estoy usando la variante de montaje superficial de un 2N3904 para detectar la temperatura en esta placa. El MMBT3904 está disponible prácticamente en todas las compañías de fabricación de silicio que tratan con BJTs - en este caso, elegí usar una parte de ON Semiconductor ya que estaba mejor abastecida. Había varios millones disponibles cuando miré por última vez en Octopart.
Como he hecho en artículos anteriores de esta serie, he colocado el elemento de detección de temperatura, nuestro transistor, dentro de la interrupción térmica. He colocado los elementos no sensibles detrás de la interrupción térmica. Esto evita que el EMC1833T pueda influir negativamente en la lectura de temperatura debido a cualquier calor que pueda generar por sí mismo.
Finalmente, tenemos el Si7051-A20 de Silicon Labs. Los resultados de este dispositivo son los que más me emociona ver en toda esta serie. El MAX31826 es un sensor bastante preciso; sin embargo, el Si7051-A20 ofrece una impresionante precisión de +/- 0.1°C con un consumo de energía increíblemente bajo de solo 195 nA al muestrear. El consumo de energía es al menos un orden de magnitud menor que todos los otros sensores de temperatura digitales y sustancialmente menor que los sensores de temperatura analógicos que vimos en el artículo anterior.
Donde muchos sensores tienen precisiones publicitadas muy altas, las cifras usualmente solo aplican para una porción limitada del rango de detección total. En contraste, el Si7051-A12 ofrece la precisión reportada a lo largo de su completo rango de detección de -40°C a +125°C. Lo que es más, el error de 0.1°C es un escenario de precisión en el peor de los casos, no el promedio o mínimo. Con su resolución de 14 bits seleccionada, el Si7051-A20 proporciona una lectura repetible de 0.01°C - ¡Me encantan los sensores precisos y repetibles!
Al igual que con los últimos dos sensores, el Si7051-A20 es un sensor compatible con I2C. Sin embargo, no ofrece un pin de dirección, lo que significa que solo puedes tener una única unidad conectada al bus I2C a menos que agregues un interruptor I2C o cambies la alimentación entre diferentes unidades conectadas en el mismo bus. Esto requeriría pines IO adicionales y añadiría complejidad al circuito, haciendo que el Si7051-A20 sea menos ideal para detectar múltiples ubicaciones a través de tu placa de circuito. El dispositivo tampoco tiene pines de alerta/interrupción, está destinado a ser utilizado puramente como un sensor de temperatura digital. Generalmente, si buscas automatizar la gestión térmica en tu placa de circuito, un sensor menos preciso y de menor costo será más que suficiente para tal aplicación.
Una de las características que realmente me gustó del STS-20 cuando lo usé por última vez fue la calibración certificada por NIST aplicada a cada dispositivo, ya que mi cliente requería esa característica. Aunque el Si7051-A20 no menciona esto en su hoja de datos, tiene un certificado de calibración disponible. También pude encontrar otro certificado de calibración más específico; sin embargo, este no se encuentra en el sitio web de Silicon Labs y, por lo tanto, podría aplicarse solo a las unidades particulares que esta empresa compró. Si es así, establece un precedente para que Silicon Labs emita certificados específicos para sus clientes.
Al igual que las otras implementaciones de I2C que hemos cubierto en este artículo, las líneas I2C de esta tarjeta no tienen resistencias de pull-up instaladas en las líneas de datos/reloj. Necesitarás incluir una resistencia de pull-up en cada línea en algún lugar dentro de tu circuito para permitir que el Si7051-A20 se comunique con éxito.
El paquete DFN de 6 pines también es el más fácil de prototipar manualmente de todas las opciones sin plomo que hemos cubierto en este artículo. Utilizando una plantilla o una herramienta de deposición de pasta como el Voltera V-One, este sensor sería increíblemente fácil de colocar manualmente y de reflujo utilizando herramientas básicas, lo que lo hace perfecto para prototipos en el laboratorio de casa u oficina.
Hemos examinado cuatro diferentes sensores de temperatura digitales en este artículo. Sin embargo, hay cientos de otras opciones de sensores de temperatura digitales disponibles que pueden cumplir con los requisitos específicos de tu proyecto, los cuales están bien abastecidos y disponibles. Mientras que los sensores de temperatura analógicos son excelentes para el monitoreo de procesos autónomos o uso con un convertidor de analógico a digital, los sensores de temperatura digitales ofrecen una conveniencia significativa al integrarse en un producto que tiene un microcontrolador. Como hemos visto en este artículo, hay sensores de temperatura digitales que pueden generar interrupciones y alertas en umbrales configurables, lo que permite aplicaciones emocionantes más allá de un termostato basado en comparador establecido de fábrica como probablemente se usaría con un sensor de temperatura analógico. La precisión y exactitud de los modernos sensores de temperatura digitales pueden ser excepcionalmente altas; sin embargo, muchas opciones consumen considerablemente más corriente que sus contrapartes analógicas, lo que puede proporcionar algún desplazamiento de temperatura debido al auto-calentamiento.
Los sensores de temperatura digitales más populares y mejor surtidos suelen utilizar un bus I2C para las comunicaciones; sin embargo, las opciones de bus SPI y 1-Wire también están disponibles fácilmente para satisfacer la disponibilidad de buses de comunicaciones alternativos para su proyecto.
Como mencioné al inicio del artículo, puede encontrar detalles de cada una de estas placas de sensores y todas las otras implementaciones de sensores de temperatura en GitHub. Todos estos diseños se publican bajo la licencia de código abierto MIT, que le permite hacer prácticamente cualquier cosa con el diseño para uso personal o comercial.
¿Le gustaría saber más sobre cómo Altium puede ayudarlo con su próximo diseño de PCB? Hable con un experto en Altium.