Sensores de temperatura digitais oferecem a maneira mais simples de medir e inserir uma leitura de temperatura altamente precisa em um microcontrolador ou outro dispositivo lógico. No último artigo desta série sobre sensores de temperatura, olhamos para os sensores de temperatura analógicos. Embora estes possam parecer mais fáceis de implementar, apenas realizando uma simples leitura ADC, para obter a medição mais precisa, você precisará calibrar o ADC de cada dispositivo durante a produção, o que nem sempre é viável. Neste artigo, estamos mergulhando em várias opções diferentes de sensores de temperatura digitais. Sensores de temperatura digitais geralmente serão mais caros do que um simples sensor de temperatura analógico. No entanto, a facilidade e conveniência de produção usando esses dispositivos muitas vezes tornam o custo adicional justificável onde altos níveis de precisão de medição são necessários.
Sensores digitais de temperatura são o quinto tipo de sensor que estamos analisando nesta série. Concluímos esta série com o artigo final, que colocará todos os sensores que testamos uns contra os outros em um confronto direto sob uma ampla gama de condições ambientais para nos permitir comparar sua funcionalidade, precisão e comportamento. Começamos a série com um artigo introdutório no qual construímos um conjunto de modelos para cartões de sensores de temperatura padrão. Tanto as versões analógicas quanto as digitais podem ser empilhadas por meio do uso de conectores mezanino ou lidas independentemente de seus conectores de borda. Estaremos construindo placas hospedeiras para todos esses sensores mais adiante na série, o que nos permitirá ler dados de um único sensor para validar sua funcionalidade ou ler o conjunto inteiro de placas para que possamos registrar os dados de todos eles juntos.
Nesta série, vamos dar uma olhada em uma ampla gama de sensores de temperatura, falando sobre suas vantagens e desvantagens, bem como algumas topologias típicas para sua implementação. A série cobrirá os seguintes tipos de sensores:
Assim como nos meus projetos, você pode encontrar os detalhes do projeto, os esquemáticos e os arquivos da placa no GitHub junto com as outras implementações de sensores de temperatura. O projeto é liberado sob a licença de código aberto MIT, que permite que você use os designs ou qualquer parte deles para fins pessoais ou comerciais, como desejar.
Suponha que você esteja interessado apenas em ler a saída de um sensor de temperatura usando um microcontrolador ou outro dispositivo lógico. Nesse caso, um sensor de temperatura digital é eletricamente a opção mais simples de implementar. Sensores de temperatura digitais podem oferecer excelentes níveis de precisão, pois toda a detecção, compensação e conversão são feitas no chip. Não há necessidade de calibrar o ADC do seu microcontrolador (ou ADC externo). Além disso, você não precisa se preocupar com a interferência eletromagnética de trilhas próximas ou outros dispositivos conectados ao sensor de temperatura analógico e o microcontrolador que poderiam influenciar involuntariamente a leitura da temperatura.
Neste projeto, estaremos implementando quatro diferentes opções de sensores de temperatura digitais com variadas resoluções e faixas de detecção.
Nome |
MAX31826MUA+T |
STS-30-DIS |
EMC1833T |
SI7051-A20-IMR |
Tipo |
Digital |
Digital |
Digital |
Digital |
Temperatura Mínima de Detecção (°C) |
-55°C |
0°C |
-40°C |
-40°C |
Temperatura Máxima de Detecção (°C) |
+125°C |
+60°C |
+125°C |
+125°C |
Faixa de Detecção |
Local |
Local |
Remoto |
Local |
Resolução (Bits) |
12 |
16 |
|
14 |
Precisão (°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 Operação (°C) |
-55°C a +125°C |
-40°C a +125°C |
-40°C a +125°C |
-40°C a +125°C |
Funções |
1 Wire Bus, Alimentação Parasita |
I²C |
I²C, SMBus |
I²C |
Tensão Mínima de Alimentação |
3 V |
2.15 V |
1.62 V |
1.9 V |
Tensão Máxima de Alimentação (V) |
3.7 V |
5.5 V |
3.6 V |
3.6 V |
Consumo de Corrente (uA) |
4 mA (quando lendo nível lógico baixo) |
45 uA em espera |
700 uA em conversão, |
195 nA |
Fabricante |
Maxim Integrated |
Sensirion AG |
Microchip |
Silicon Labs |
Encapsulamento |
8-MSOP |
8-VFDFN |
8-VDFN |
6-DFN |
Incluí o EMC1833T porque, para mim, é um sensor fascinante. Trata-se de um dispositivo de medição de temperatura à distância, o que significa que não utiliza um sensor localizado dentro do componente. Em vez disso, ele mede a temperatura convertendo a saída de um sensor externo, que neste caso é um transistor, em um sinal digital. Não tenho certeza se ele necessariamente se encaixa nesta categoria de “sensor de temperatura digital”, pois não se ajusta completamente aos outros sensores que estamos analisando. Ainda assim, transistores não são tipicamente conhecidos por serem usados como sensores de temperatura, então eu não tinha ideia de onde colocá-lo. O que me fascina neste sensor é que ele pode medir a temperatura usando quase qualquer transistor. Se você está projetando um ASIC, então poderia facilmente incluir um transistor extra no die para esse propósito. Você pode então usar este transistor, que pode ser lido por um sensor como o EMC1833T, para fazer uma medição externa da temperatura do die sem precisar adicionar qualquer complexidade adicional ao seu silício. Outra maneira de ver isso é que você pode monitorar a temperatura do seu die sem incorrer em qualquer risco de engenharia associado ao projeto e construção de um sensor de temperatura digital sob medida no silício.
O primeiro sensor que vamos implementar é o MAX31826 produzido pela Maxim Integrated. Este sensor opera em um barramento 1-Wire em vez dos mais típicos I2C ou SPI. Um problema potencial é que é improvável que o microcontrolador base do seu projeto ofereça o protocolo de comunicação 1-Wire. No entanto, é um protocolo simples de se implementar manualmente (bit-bang) e tem uma vantagem considerável sobre as escolhas mais populares, pois precisa de apenas dois fios para operar o sensor. Incluindo o fornecimento de energia, I2C requer quatro fios, e SPI precisa de cinco fios. Em contraste, 1-Wire só requer um terra e uma linha de dados para a maioria das aplicações, pois pode se alimentar da linha de dados usando uma técnica de alimentação parasita. Integrado ao sensor está um capacitor que pode sustentar a alimentação para o CI durante os períodos em que a linha de dados está em estado baixo, o que elimina a necessidade de uma fonte de alimentação dedicada sob a maioria das condições normais de operação. Isso pode ser uma solução muito conveniente para placas que têm espaço extremamente limitado disponível.
Outra característica interessante do sensor e do seu barramento 1-Wire é a capacidade de definir um endereço de 4 bytes para o dispositivo usando pinos selecionáveis manualmente instalados no pacote do dispositivo. Isso permite a instalação de até 16 sensores de temperatura em um único barramento de dados 1-Wire, dando a cada dispositivo um endereço único. Esta pode ser uma opção altamente conveniente se você estiver com poucos pinos no microcontrolador e, ao mesmo tempo, precisar de capacidades de detecção usando um grande número de sensores de temperatura.
Em comparação com os sensores que analisamos nos artigos anteriores desta série, o MAX31826 não é apenas altamente preciso, mas também entrega dados de alta resolução. O sensor oferece uma precisão de +/- 0,5°C entre -10°C e +85°C, com uma precisão de +/- 2°C em toda a sua faixa de temperatura de -55°C a +125°C. Todas as leituras do sensor são entregues como valores de 12 bits, o que é uma resolução maior do que a maioria dos microcontroladores oferece.
Como sensor de temperatura, o MAX31826 tem muito a oferecer, mas também vem equipado com uma EEPROM onboard de 1 kB como um recurso adicional. Acho que eles tinham algum espaço sobrando no die. Se seu microcontrolador não possui uma EEPROM integrada e você precisa armazenar alguns dados de configuração para sua aplicação, esse sensor de temperatura tem o que você precisa. Se você precisar de armazenamento não volátil adicional, esse sensor de temperatura reduzirá a quantidade de componentes e economizará espaço na placa.
A folha de dados recomenda alimentar o dispositivo diretamente em vez de usar energia parasita do barramento quando as temperaturas podem exceder 100°C. Embora a maioria das aplicações típicas não precise atingir esses níveis de temperatura, os testes pelos quais estaremos submetendo o sensor ultrapassarão 100°C. Portanto, para este exercício, seguiremos a recomendação de alimentar o dispositivo diretamente em vez de explorar a fascinante opção de energia parasita.
A forma da placa e o layout geral vêm do modelo de projeto que criamos na introdução desta série. Como não estamos usando nenhum dos barramentos de comunicação usuais, removi as redes associadas e seus componentes da placa. Ainda assim, deixei as conexões no conector de empilhamento para garantir que isso não cause nenhum problema para outros sensores empilhados. Com o barramento 1-Wire, só precisamos usar o pino de seleção de chip para comunicar de volta ao microcontrolador host.
Usei o STS-30-DIS produzido pela Sensirion em um projeto anterior devido à sua incrível precisão e indicações calibradas rastreáveis ao NIST. Isso foi necessário, pois o instrumento foi desenvolvido para uma empresa de serviços alimentícios, exigido para coletar dados para fins de relatórios governamentais. Com um tamanho compacto, ampla faixa de tensão, incrível precisão e saída digital linearizada de 16 bits, há muito o que amar neste dispositivo se você precisar apenas de detecção de temperatura positiva. Se você precisar detectar temperaturas abaixo do ponto de congelamento, a variante STS-30A-DIS é qualificada para automóveis e tem uma faixa de detecção de -40°C a 125°C. No entanto, este aumento na faixa de detecção vem com um pequeno custo para a precisão geral.
No artigo anterior sobre sensores de temperatura analógicos, falei sobre como os sensores de temperatura analógicos são ótimos para aplicações como monitoramento de processos, para ligar e desligar um ventilador, ou para outros sistemas de gerenciamento térmico que podem funcionar sem intervenção de um microcontrolador. O STS-30 oferece um pino ALERTA que pode ser usado para cumprir uma função semelhante. Ele é destinado à conexão a um pino de interrupção de um microcontrolador; no entanto, também possui uma nota de aplicação completa dedicada a ele, e pode ser usado para comutar cargas automaticamente. A capacidade de interface com a função de interrupção do microcontrolador pode ser crucial. Isso permite que o sensor notifique imediatamente o microcontrolador com um sinal de alta prioridade de que algo precisa ser feito imediatamente, em vez de depender da leitura infrequente do sensor pelo microcontrolador e da resposta aos dados lidos. Se a saída ALERTA for conectada a um transistor para permitir que ele acione uma carga, o sensor poderia ser usado tanto para fins de monitoramento/registro quanto para ter uma função de gerenciamento térmico autônoma. Comparado às soluções analógicas, essa configuração pode tornar o STS-30 digital uma opção mais barata. Um comparador separado não será necessário, e o limiar para o pino ALERTA pode ser configurado pelo usuário através de um microcontrolador/HMI sem a necessidade de ser configurado na fábrica.
Os dispositivos da série STS-30 utilizam todos um barramento I2C para comunicações. O esquemático que estamos implementando para este artigo não inclui nenhum dos resistores de pull-up que geralmente são necessários para o funcionamento correto do barramento de comunicações. Esses resistores de pull-up serão, em vez disso, instalados nas placas hospedeiras. Como só precisamos de um conjunto de resistores de pull-up por barramento, adicionar resistores a cada sensor adicionaria múltiplos resistores de pull-up ao barramento e poderia resultar em seu mau funcionamento. Além disso, todos os resistores conectados em paralelo reduziriam a resistência geral.
O pino ADDR nos permite escolher entre dois endereços diferentes para o dispositivo, permitindo-nos conectar dois componentes STS-30 ao mesmo barramento I2C. Embora isso possa não ser tão impressionante quanto as capacidades do dispositivo MAX31826 no barramento 1-Wire, ainda é conveniente, pois nos permite usar mais de um dispositivo. Estou conectando o pino ADDR ao nível lógico baixo (GND), pois isso define o endereço padrão como sendo 0x4A, com a lógica puxada para o estado alto, isso o define para o endereço alternativo de 0x4B.
Gosto do pacote no STS-30 pois é compacto, mas ainda assim não é excessivamente complicado, permitindo que você monte sua placa manualmente se estiver usando um estêncil. O pacote do sensor mais um capacitor de desacoplamento 0603 juntos têm aproximadamente o mesmo tamanho que o MAX31826 que examinamos acima. Com um capacitor menor, ele se encaixaria muito bem em uma placa de alta densidade. A grande almofada de aterramento sob o CI proporciona um excelente caminho para transferir calor de um plano de aterramento para a junção de detecção de temperatura dentro do CI. Isso o torna uma escolha perfeita para colocar ao lado de qualquer dispositivo, como um grande MOSFET ou um regulador, que utiliza o plano de aterramento para dissipar o excesso de calor na placa. Colocar o CI em proximidade próxima à fonte de calor proporcionará resultados mais precisos na detecção de temperatura.
Como mencionei anteriormente, acho o dispositivo EMC1883 produzido pela Microchip fascinante não apenas por ter uma gama de recursos fantásticos, mas porque pode ler a temperatura sentida por uma junção de transistor. O STS-30 que analisamos acima tinha um pino de interrupção de alerta acionado por um valor absoluto; no entanto, o EMC1883 pode ser configurado para também gerar um alerta baseado na taxa de mudança da temperatura sentida. Este alerta de taxa de mudança pode permitir que soluções inteligentes de gerenciamento térmico sejam ativadas automaticamente em antecipação à sua necessidade, em vez de após o evento. Isso tem o potencial de melhorar a confiabilidade do dispositivo como um todo, pelo gerenciamento cuidadoso de sua temperatura operacional. Assim como o STS-30, é totalmente configurável por software, o que oferece vantagens consideráveis sobre qualquer opção definida na fábrica que você provavelmente precisaria implementar se estivesse usando um termostato totalmente analógico para alcançar os mesmos resultados.
O modelo específico da série EMC8xx que estamos testando só suportará a detecção de uma única junção. No entanto, existem outros modelos na série que podem fornecer detecção para até cinco junções.
Assim como o STS-30, este é um sensor baseado em I2C que permite a instalação de múltiplos sensores em um único barramento I2C. Uma distinção é que a implementação do pino ADDR do EMC1833T é diferente da natureza binária de ligado/desligado do dispositivo STS-30. Este dispositivo permite que você configure até seis endereços separados usando diferentes valores de resistores de pull-up. O pino ADDR também funciona como um dos pinos de interrupção, atuando como o Pino de Aviso Térmico (junto com o pino de ALERTA/Aviso Térmico 2). Como na instalação do dispositivo anterior, não implementarei resistores de pull-up nas linhas I2C na placa do sensor de temperatura. No entanto, eles são necessários para serem instalados em algum lugar dentro do seu circuito para permitir que o barramento de comunicações do sensor funcione corretamente.
O datasheet recomenda o uso de um transistor de junção bipolar 2N3904 como o elemento de detecção remota, já que não tenho um transistor de CPU disponível para usar nas medições. Estou usando a variante de montagem em superfície de um 2N3904 para detectar a temperatura nesta placa. O MMBT3904 está disponível praticamente em todas as empresas de fabricação de silício que lidam com BJTs - neste caso, escolhi usar uma peça da ON Semiconductor, pois era a mais bem estocada. Havia vários milhões disponíveis quando eu olhei pela última vez no Octopart.
Como fiz em artigos anteriores desta série, coloquei o elemento de detecção de temperatura, nosso transistor, dentro da interrupção térmica. Coloquei os elementos não sensoriais atrás da interrupção térmica. Isso impede que o EMC1833T possa influenciar negativamente a leitura da temperatura devido a qualquer calor que possa gerar.
Finalmente, temos o Si7051-A20 da Silicon Labs. São os resultados deste dispositivo que mais estou ansioso para ver em toda esta série. O MAX31826 é um sensor bastante preciso; no entanto, o Si7051-A20 oferece uma impressionante precisão de +/- 0,1°C com um consumo de energia incrivelmente baixo de apenas 195 nA durante a amostragem. O consumo de energia é pelo menos uma ordem de magnitude menor que todos os outros sensores de temperatura digitais e substancialmente menor que os sensores de temperatura analógicos que examinamos no artigo anterior.
Onde muitos sensores têm precisões anunciadas muito altas, os números geralmente só se aplicam a uma parte limitada da faixa de detecção total. Em contraste, o Si7051-A12 oferece a precisão relatada em toda a sua faixa de detecção de -40°C a +125°C. O que é mais é que o erro de 0,1°C é um cenário de precisão no pior caso, não a média ou o mínimo. Com sua resolução de 14 bits selecionada, o Si7051-A20 fornece uma leitura repetível de 0,01°C - Eu adoro sensores precisos e repetíveis!
Assim como os dois últimos sensores, o Si7051-A20 é um sensor compatível com I2C. No entanto, ele não oferece um pino de endereço, o que significa que você só pode ter uma única unidade conectada ao barramento I2C, a menos que você adicione um switch I2C ou alterne a alimentação entre diferentes unidades conectadas no mesmo barramento. Isso exigiria pinos IO adicionais e adicionaria complexidade ao circuito, tornando o Si7051-A20 menos ideal para a detecção em múltiplos locais em sua placa de circuito. O dispositivo também não possui nenhum pino de alerta/interrupção, sendo destinado a ser usado puramente como um sensor de temperatura digital. Geralmente, se você está procurando automatizar o gerenciamento térmico em sua placa de circuito, um sensor menos preciso e de menor custo será mais do que suficiente para tal aplicação.
Uma das características que eu realmente gostei no STS-20 quando o usei pela última vez foi a calibração certificada pelo NIST aplicada a cada dispositivo, já que meu cliente exigia essa característica. Embora o Si7051-A20 não mencione isso em sua ficha técnica, ele possui um certificado de calibração disponível. Também consegui encontrar outro certificado de calibração mais específico; no entanto, este não está no site da Silicon Labs e, portanto, pode se aplicar apenas às unidades particulares que esta empresa comprou. Se for o caso, isso estabelece um precedente para a Silicon Labs emitir certificados específicos para seus clientes.
Assim como as outras implementações I2C que cobrimos neste artigo, as linhas I2C para este cartão não têm resistores de pull-up instalados nas linhas de dados/relógio. Você precisará incluir um resistor de pull-up em cada linha em algum lugar dentro do seu circuito para permitir que o Si7051-A20 comunique com sucesso.
O pacote DFN de 6 pinos é também o mais fácil de prototipar manualmente dentre todas as opções sem chumbo que abordamos neste artigo. Usando um estêncil ou uma ferramenta de deposição de pasta como o Voltera V-One, este sensor seria incrivelmente fácil de colocar manualmente e refazer o fluxo usando ferramentas básicas, tornando-o perfeito para prototipagem em casa ou no laboratório do escritório.
Examinamos quatro diferentes sensores de temperatura digitais neste artigo. No entanto, existem centenas de outras opções de sensores de temperatura digitais disponíveis que podem atender às necessidades específicas do seu projeto, que estão bem estocadas e disponíveis. Enquanto os sensores de temperatura analógicos são excelentes para monitoramento de processos autônomos ou uso com um conversor de analógico para digital, os sensores de temperatura digitais oferecem uma conveniência significativa ao integrar em um produto que possui um microcontrolador. Como vimos neste artigo, existem sensores de temperatura digitais que podem gerar interrupções e alertas em limiares configuráveis, o que permite aplicações interessantes além de um termostato baseado em comparador definido pela fábrica, como você provavelmente usaria com um sensor de temperatura analógico. A precisão e a exatidão dos sensores de temperatura digitais modernos podem ser excepcionalmente altas; no entanto, muitas opções consomem consideravelmente mais corrente do que seus equivalentes analógicos, o que pode fornecer algum desvio de temperatura devido ao autoaquecimento.
Os sensores de temperatura digitais mais populares e bem fornecidos normalmente utilizam um barramento I2C para comunicações; no entanto, as opções de barramento SPI e 1-Wire também estão prontamente disponíveis para atender à disponibilidade de barramentos de comunicações alternativos para o seu projeto.
Como mencionei no início do artigo, você pode encontrar detalhes de cada uma dessas placas de sensor e todas as outras implementações de sensores de temperatura no GitHub. Esses designs são todos liberados sob a licença de código aberto MIT, que permite que você faça praticamente qualquer coisa com o design para uso pessoal ou comercial.
Gostaria de saber mais sobre como a Altium pode ajudá-lo com o seu próximo design de PCB? Fale com um especialista na Altium.