Projet de capteur de température : Circuits intégrés de capteur de température numérique

Mark Harris
|  Créé: Octobre 26, 2020  |  Mise à jour: Mars 16, 2021
Projet de capteur de température : Circuits intégrés de capteur de température numérique

Les capteurs de température numériques offrent le moyen le plus simple de mesurer et d'entrer une lecture de température très précise dans un microcontrôleur ou autre dispositif logique. Dans le dernier article de cette série sur les capteurs de température, nous avons examiné les capteurs de température analogiques. Bien qu'ils puissent sembler plus faciles à implémenter en prenant simplement une lecture ADC simple, pour obtenir la mesure la plus précise, vous devrez calibrer l'ADC de chaque appareil pendant la production, ce qui n'est pas toujours faisable. Dans cet article, nous explorons plusieurs options différentes de capteurs de température numériques. Les capteurs de température numériques seront généralement plus chers qu'un simple capteur de température analogique. Cependant, la facilité et la commodité de production en utilisant ces dispositifs rendent souvent le coût supplémentaire justifiable lorsque des niveaux élevés de précision de mesure sont requis. 

Les capteurs de température numériques constituent le cinquième type de capteur que nous examinons dans cette série. Nous concluons cette série avec le dernier article, qui mettra en compétition tous les capteurs que nous avons testés les uns contre les autres dans un concours en tête-à-tête sur une large gamme de conditions environnementales pour nous permettre de comparer leur fonctionnalité, leur précision et leur comportement. Nous avons commencé la série avec un article introductif dans lequel nous avons construit un ensemble de modèles pour des cartes de capteurs de température standard. Les versions analogiques et numériques peuvent être empilées grâce à l'utilisation de connecteurs mezzanine ou lues indépendamment à partir de leurs connecteurs de bord. Nous construirons des cartes hôtes pour tous ces capteurs plus tard dans la série, ce qui nous permettra de lire les données d'un seul capteur pour valider sa fonctionnalité ou de lire l'ensemble du stack de cartes afin que nous puissions enregistrer les données de tous ensemble.

Dans cette série, nous allons examiner une large gamme de capteurs de température, parler de leurs avantages et inconvénients, ainsi que de certaines topologies typiques pour leur mise en œuvre. La série couvrira les types de capteurs suivants :

Comme pour mes projets, vous pouvez trouver les détails du projet, les schémas, et les fichiers de la carte sur GitHub ainsi que les autres implémentations de capteurs de température. Le projet est publié sous la licence open-source MIT, ce qui vous permet d'utiliser les conceptions ou toute partie d'elles à des fins personnelles ou commerciales, comme vous le souhaitez.

Circuits Intégrés de Capteurs de Température Numériques

Supposons que vous soyez uniquement intéressé par la lecture des données issues d'un capteur de température à l'aide d'un microcontrôleur ou d'un autre dispositif logique. Dans ce cas, un capteur de température numérique est électriquement l'option la plus simple à mettre en œuvre. Les capteurs de température numériques peuvent offrir d'excellents niveaux de précision puisque toute la détection, la compensation et la conversion sont effectuées sur la puce. Il n'est pas nécessaire de calibrer l'ADC de votre microcontrôleur (ou ADC externe). De plus, vous n'avez pas à vous soucier de l'interférence électromagnétique provenant des pistes voisines ou d'autres dispositifs connectés au capteur de température analogique et au microcontrôleur qui pourraient influencer involontairement la lecture de la température.

Dans ce projet, nous allons mettre en œuvre quatre options différentes de capteurs de température numériques offrant diverses résolutions et gammes de détection.

Nom

MAX31826MUA+T

STS-30-DIS

EMC1833T

SI7051-A20-IMR

Type

Numérique

Numérique

Numérique

Numérique

Temp Min de détection (°C)

-55°C

0°C

-40°C

-40°C

Temp Max de détection (°C)

+125°C

+60°C

+125°C

+125°C

Plage de détection

Local

Local

Distant

Local

Résolution (Bits)

12

16

 

14

Précision (°C)

±0,5°C (+10°C à +85°C)

±2°C (-55°C à 125°C)

±0,2°C

±1°C (-20°C à +105°C)
±1,5°C (-40°C à +125°C)

±0,1°C

Température de fonctionnement (°C)

-55°C à +125°C

-40°C à +125°C

-40°C à +125°C

-40°C à +125°C

Fonctions

Bus 1 fil, Alimentation parasitaire

I²C

I²C, SMBus

I²C

Tension d'alimentation minimale

3 V

2,15 V

1,62 V

1,9 V

Tension d'alimentation maximale (V)

3,7 V

5,5 V

3,6 V

3,6 V

Consommation de courant (uA)

4 mA (lors de la lecture d'un niveau logique bas)

45 uA au repos
1,5 mA en mesure
Vdd*1,5 Alarme

700 uA en conversion,
75 uA en veille

195 nA

Fabricant

Maxim Integrated

Sensirion AG

Microchip

Silicon Labs

Boîtier

8-MSOP

8-VFDFN

8-VDFN

6-DFN


J'ai inclus l'EMC1833T parce que, pour moi, c'est un capteur fascinant. Il s'agit d'un dispositif de détection de température à distance, ce qui signifie qu'il n'utilise pas de capteur situé à l'intérieur du composant. Au lieu de cela, il détecte la température en convertissant la sortie d'un capteur externe, qui dans ce cas est un transistor, en un signal numérique. Je ne suis pas sûr qu'il appartienne nécessairement à cette catégorie de "capteur de température numérique" car il ne correspond pas tout à fait aux autres capteurs que nous examinons. Cependant, les transistors ne sont généralement pas bien connus pour être utilisés comme capteurs de température, donc je ne savais pas où le placer. Ce qui me fascine à propos de ce capteur, c'est qu'il peut mesurer la température en utilisant presque n'importe quel transistor. Si vous concevez un ASIC, alors vous pourriez facilement inclure un transistor supplémentaire sur la puce à cette fin. Vous pouvez ensuite utiliser ce transistor, qui peut être lu par un capteur tel que l'EMC1833T, pour prendre une mesure externe de la température de la puce sans avoir besoin d'ajouter de complexité supplémentaire à votre silicium. Une autre façon de voir cela est que vous pouvez surveiller la température de votre puce sans encourir de risque d'ingénierie associé à la conception et à la construction d'un capteur de température numérique sur mesure dans le silicium.

Implémentation de capteur numérique : MAX31826MUA+T

Le premier capteur que nous allons implémenter est le MAX31826 produit par Maxim Integrated. Ce capteur fonctionne sur un bus 1-Wire plutôt que sur les bus I2C ou SPI plus typiques. Un problème potentiel est que le 1-Wire est peu susceptible d'être proposé comme protocole de communication par le microcontrôleur sur lequel votre projet est basé. Cependant, c'est un protocole simple à bit-bang et présente un avantage considérable par rapport aux choix plus populaires en ce qu'il nécessite seulement deux fils pour faire fonctionner le capteur. Y compris l'alimentation, I2C nécessite quatre fils, et SPI a besoin de cinq fils. En revanche, 1-Wire ne nécessite qu'une masse et une ligne de données pour la plupart des applications, car il peut s'alimenter lui-même à partir de la ligne de données en utilisant une technique d'alimentation parasitaire. Intégré dans le capteur se trouve un condensateur qui peut maintenir l'alimentation pour le CI pendant les périodes où la ligne de données est à l'état bas, ce qui élimine le besoin d'une alimentation en tension dédiée dans la plupart des conditions normales de fonctionnement. Cela peut être une solution très pratique pour les cartes qui ont un espace disponible extrêmement limité.

Une autre caractéristique intéressante du capteur et de son bus 1-Wire est la capacité de définir une adresse de 4 octets pour le dispositif en utilisant des broches sélectionnables manuellement installées sur le boîtier du dispositif. Cela permet d'installer jusqu'à 16 capteurs de température sur un seul bus de données 1-Wire en donnant à chaque dispositif une adresse unique. Cela peut être une option très pratique si vous manquez de broches de microcontrôleur et, en même temps, nécessitez des capacités de détection utilisant un grand nombre de capteurs de température. 

En comparaison avec les capteurs que nous avons examinés dans les articles précédents de cette série, le MAX31826 est non seulement très précis mais fournit également des données de haute résolution. Le capteur offre une précision de +/- 0,5°C entre -10°C et +85°C, avec une précision de +/- 2°C sur sa gamme complète de température de -55°C à +125°C. Toutes les lectures du capteur sont livrées sous forme de valeurs de 12 bits, ce qui est une résolution plus élevée que celle offerte par la plupart des microcontrôleurs.

En tant que capteur de température, le MAX31826 a beaucoup à offrir, mais il est également équipé d'une EEPROM embarquée de 1 ko en tant que fonctionnalité supplémentaire. Je suppose qu'ils avaient un peu d'espace libre restant sur la puce. Si votre microcontrôleur n'a pas d'EEPROM intégrée et que vous avez besoin de stocker des données de configuration pour votre application, ce capteur de température vous couvre. Si vous avez besoin d'un stockage non-volatile supplémentaire, ce capteur de température réduira votre nombre de composants et économisera de l'espace sur la carte.

La fiche technique recommande d'alimenter directement le dispositif plutôt que d'utiliser l'alimentation par bus parasitaire lorsque les températures pourraient dépasser 100°C. Bien que la plupart des applications typiques n'auront pas besoin d'atteindre ces niveaux de température, les tests que nous allons réaliser avec le capteur dépasseront 100°C. Par conséquent, pour cet exercice, nous suivrons la recommandation d'alimenter directement le dispositif plutôt que d'explorer l'option fascinante de l'alimentation parasitaire.

MAX31826 Schematic

La forme de la carte et la disposition générale proviennent du modèle de projet que nous avons créé dans l'introduction de cette série. Comme nous n'utilisons aucun des bus de communication habituels, j'ai retiré les réseaux associés et leurs composants de la carte. Cependant, j'ai laissé les connexions sur le connecteur d'empilage pour m'assurer que cela ne pose pas de problèmes pour les autres capteurs empilés. Avec le bus 1-Wire, nous avons seulement besoin d'utiliser la broche de sélection de puce pour communiquer avec le microcontrôleur hôte.

MAX31826 3D Schematic

 

Implémentation du capteur numérique : STS-30-DIS

J'ai utilisé le STS-30-DIS produit par Sensirion dans un projet passé en raison de sa précision incroyable et de ses indications calibrées qui sont traçables jusqu'au NIST. Cela était nécessaire car l'instrumentation était développée pour une entreprise de services alimentaires, devant collecter des données à des fins de rapports gouvernementaux. Avec une petite empreinte, une large gamme de tensions, une précision incroyable et une sortie numérique linéarisée de 16 bits, il y a beaucoup à aimer dans ce dispositif si vous avez seulement besoin de détecter des températures positives. Si vous avez besoin de détecter des températures en dessous de zéro, la variante STS-30A-DIS est qualifiée pour l'automobile et possède une gamme de détection de -40°C à 125°C. Cependant, cette gamme de détection accrue se fait au détriment d'une légère perte de précision globale.

Dans l'article précédent sur les capteurs de température analogiques, j'ai parlé de l'excellence des capteurs de température analogiques pour des applications telles que la surveillance de processus, l'activation et la désactivation d'un ventilateur, ou pour d'autres systèmes de gestion thermique pouvant fonctionner sans intervention d'un microcontrôleur. Le STS-30 offre une broche ALERT qui peut être utilisée pour remplir une fonction similaire. Elle est destinée à être connectée à une broche d'interruption d'un microcontrôleur ; cependant, elle dispose également d'une note d'application complète qui lui est dédiée, et elle peut être utilisée pour commuter des charges automatiquement. La capacité à s'interfacer avec la fonction d'interruption du microcontrôleur peut être cruciale. Elle permet au capteur de notifier immédiatement le microcontrôleur avec un signal de haute priorité qu'une action doit être immédiatement entreprise, plutôt que de compter sur des interrogations peu fréquentes du capteur par le microcontrôleur et sur la réponse aux données lues. Si la sortie ALERT est connectée à un transistor pour lui permettre de piloter une charge, le capteur pourrait être utilisé à la fois pour des fins de surveillance/enregistrement ainsi que pour avoir une fonction de gestion thermique autonome. Comparé aux solutions analogiques, cette configuration pourrait bien rendre le STS-30 numérique une option moins coûteuse. Un comparateur séparé ne sera pas nécessaire, et le seuil pour la broche ALERT peut être configuré par l'utilisateur via un microcontrôleur/HMI sans que cela nécessite un réglage en usine.

Les dispositifs de la série STS-30 utilisent tous un bus I2C pour la communication. Le schéma que nous mettons en œuvre pour cet article n'inclut pas les résistances de tirage vers le haut qui sont généralement nécessaires pour que le bus de communication fonctionne correctement. Ces résistances de tirage seront plutôt installées sur les cartes hôtes. Comme nous avons besoin seulement d'un ensemble de résistances de tirage par bus, ajouter des résistances à chaque capteur ajouterait plusieurs résistances de tirage au bus et pourrait entraîner son dysfonctionnement. De plus, toutes les résistances connectées en parallèle réduiraient leur résistance globale.

La broche ADDR nous permet de choisir entre deux adresses différentes pour le dispositif, nous permettant de connecter deux composants STS-30 au même bus I2C. Bien que cela ne soit pas aussi impressionnant que les capacités du dispositif MAX31826 sur le bus 1-Wire, cela reste pratique car cela nous permet d'utiliser plus d'un dispositif. Je connecte la broche ADDR à l'état logique bas (GND) car cela définit l'adresse par défaut à 0x4A, avec la logique tirée vers l'état haut, cela la définit à l'adresse alternative de 0x4B.

STS30 Schematic

J'aime le boîtier sur le STS-30 car il est compact, mais pas trop non plus, ce qui vous permet d'assembler votre carte à la main si vous utilisez un pochoir. Le package du capteur plus un condensateur de découplage 0603 sont ensemble à peu près de la même taille que le MAX31826 que nous avons examiné ci-dessus. Avec un condensateur plus petit, il s'adapterait très bien sur une carte de haute densité. Le grand pad de masse sous le CI offre un excellent chemin pour transférer la chaleur d'un plan de masse à la jonction de détection de température à l'intérieur du CI. Cela en fait un choix parfait pour le placer à côté de n'importe quel dispositif, tel qu'un grand MOSFET ou un régulateur, qui utilise le plan de masse pour évacuer l'excès de chaleur dans la carte. Placer le CI à proximité immédiate de la source de chaleur donnera des résultats de détection de température plus précis.

STS-30-DIS Direct Connetion 3D

 

Implémentation de capteur numérique : EMC1833T

Comme je l'ai déjà mentionné, je trouve le dispositif EMC1883 produit par Microchip fascinant non seulement parce qu'il possède une gamme de caractéristiques fantastiques, mais aussi parce qu'il peut lire la température détectée par une jonction de transistor. Le STS-30 que nous avons examiné précédemment disposait d'une broche d'interruption d'alerte déclenchée par une valeur absolue ; cependant, l'EMC1883 peut être configuré pour générer également une alerte basée sur le taux de changement de la température détectée. Cette alerte de taux de changement peut permettre à des solutions de gestion thermique intelligente d'être activées automatiquement en anticipation de leur besoin plutôt qu'après l'événement. Cela a le potentiel d'améliorer la fiabilité de l'appareil dans son ensemble grâce à la gestion minutieuse de sa température de fonctionnement. Comme avec le STS-30, il est entièrement configurable par logiciel, ce qui offre des avantages considérables par rapport à toute option réglée en usine que vous auriez probablement besoin d'implémenter si vous utilisiez un thermostat entièrement analogique pour obtenir les mêmes résultats.

Le modèle spécifique de la série EMC8xx que nous testons ne prendra en charge la détection que d'une seule jonction. Cependant, il existe d'autres modèles dans la série qui peuvent fournir la détection pour jusqu'à cinq jonctions.

Comme le STS-30, il s'agit d'un capteur basé sur I2C qui permet d'installer plusieurs capteurs sur un seul bus I2C. Une distinction est que la mise en œuvre de la broche ADDR de l'EMC1833T est différente de la nature binaire marche/arrêt du dispositif STS-30. Ce dispositif vous permet de configurer jusqu'à six adresses distinctes en utilisant différentes valeurs de résistances de tirage. La broche ADDR fonctionne également comme l'une des broches d'interruption, agissant comme la broche d'alerte thermique (avec la broche d'alerte/avertissement thermique 2). Comme pour l'installation du dispositif précédent, je n'implémenterai pas de résistances de tirage sur les lignes I2C sur la carte du capteur de température. Cependant, elles doivent être installées quelque part dans votre circuit pour permettre au bus de communication du capteur de fonctionner correctement.

La fiche technique recommande d'utiliser un transistor bipolaire à jonction 2N3904 comme élément de détection à distance puisque je n'ai pas de transistor CPU disponible pour les mesures. J'utilise la variante de montage en surface d'un 2N3904 pour détecter la température sur cette carte. Le MMBT3904 est disponible chez pratiquement toutes les entreprises de fabrication de silicium qui traitent des BJTs - dans ce cas, j'ai choisi d'utiliser une pièce de ON Semiconductor car elle était la mieux approvisionnée. Il y avait plusieurs millions disponibles lorsque j'ai regardé la dernière fois sur Octopart.

EMC1833T Schematic Semiconductor

Comme je l'ai fait dans les articles précédents de cette série, j'ai placé l'élément de détection de température, notre transistor, à l'intérieur de la coupure thermique. J'ai placé les éléments non-sensibles derrière la coupure thermique. Cela empêche le EMC1833T d'influencer négativement la lecture de température en raison de toute chaleur qu'il pourrait lui-même générer.

EMC1833T 3D PCB Design

 

Implémentation du capteur numérique : Si7051-A20-IMR

Enfin, nous avons le Si7051-A20 de Silicon Labs. C'est le résultat de ce dispositif que j'attends avec le plus d'impatience de voir dans toute cette série. Le MAX31826 est un capteur assez précis ; cependant, le Si7051-A20 offre une précision impressionnante de +/- 0,1°C avec une consommation d'énergie incroyablement basse de seulement 195 nA lors de l'échantillonnage. La consommation d'énergie est au moins un ordre de grandeur inférieur à tous les autres capteurs de température numériques et substantiellement moins que les capteurs de température analogiques que nous avons examinés dans l'article précédent.

Alors que de nombreux capteurs affichent des précisions très élevées, ces chiffres s'appliquent généralement seulement à une portion limitée de la gamme de détection totale. En contraste, le Si7051-A12 offre la précision annoncée sur toute sa gamme de détection de -40°C à +125°C. Ce qui est encore plus remarquable, c'est que l'erreur de 0,1°C représente un scénario de précision dans le pire des cas, et non la moyenne ou le minimum. Avec sa résolution de 14 bits sélectionnée, le Si7051-A20 fournit une lecture répétable de 0,01°C - J'adore les capteurs précis et répétables !

Tout comme les deux derniers capteurs, le Si7051-A20 est un capteur compatible I2C. Cependant, il n'offre pas de broche d'adresse, ce qui signifie que vous ne pouvez connecter qu'une seule unité au bus I2C à moins d'ajouter un commutateur I2C ou de commuter l'alimentation entre différentes unités connectées sur le même bus. Cela nécessiterait des broches IO supplémentaires et ajouterait de la complexité au circuit, rendant le Si7051-A20 moins idéal pour la détection de multiples emplacements sur votre carte de circuit. Le dispositif n'a également aucune broche d'alerte/interruption, étant destiné à être utilisé purement comme un capteur de température numérique. Généralement, si vous cherchez à automatiser la gestion thermique sur votre carte de circuit, un capteur moins précis et moins coûteux sera largement suffisant pour une telle application.

L'une des fonctionnalités que j'ai vraiment appréciées sur le STS-20 lors de ma dernière utilisation était l'étalonnage certifié NIST appliqué à chaque appareil, car mon client exigeait cette fonctionnalité. Bien que le Si7051-A20 ne mentionne pas cela dans sa fiche technique, il dispose d'un certificat d'étalonnage disponible. J'ai également pu trouver un autre certificat d'étalonnage plus spécifique ; cependant, celui-ci n'est pas sur le site web de Silicon Labs et, par conséquent, peut seulement s'appliquer aux unités particulières que cette entreprise a achetées. Si c'est le cas, cela établit un précédent pour Silicon Labs qui délivre des certificats spécifiques pour ses clients.

Si7051-A20 Direct Connection Schematic

Comme les autres implémentations I2C que nous avons couvertes dans cet article, les lignes I2C de cette carte n'ont pas de résistances de tirage montées sur les lignes de données/horloge. Vous devrez inclure une résistance de tirage sur chaque ligne quelque part dans votre circuit pour permettre au Si7051-A20 de communiquer avec succès.

Le boîtier DFN à 6 broches est également le plus facile à prototyper à la main parmi toutes les options sans plomb que nous avons examinées dans cet article. En utilisant un pochoir ou un outil de dépôt de pâte comme le Voltera V-One, ce capteur serait incroyablement facile à placer à la main et à refusionner en utilisant des outils de base, ce qui le rend parfait pour le prototypage à la maison ou dans un laboratoire de bureau.

Si7051-A20 Direct Connection 3D PCB Schematic

 

Conclusion

Nous avons examiné quatre capteurs de température numériques différents dans cet article. Cependant, il existe des centaines d'autres options de capteurs de température numériques disponibles qui peuvent répondre aux exigences spécifiques de votre projet, qui sont bien approvisionnées et disponibles. Alors que les capteurs de température analogiques sont excellents pour la surveillance autonome des processus ou l'utilisation avec un convertisseur analogique-numérique, les capteurs de température numériques offrent une commodité significative lors de l'intégration dans un produit qui dispose d'un microcontrôleur. Comme nous l'avons vu dans cet article, il existe des capteurs de température numériques qui peuvent générer des interruptions et des alertes à des seuils configurables, ce qui permet des applications intéressantes au-delà d'un thermostat basé sur un comparateur réglé en usine comme vous l'utiliseriez probablement avec un capteur de température analogique. La précision et l'exactitude des capteurs de température numériques modernes peuvent être exceptionnellement élevées ; cependant, de nombreuses options consomment considérablement plus de courant que leurs homologues analogiques, ce qui peut fournir un certain décalage de température dû à l'auto-échauffement.

Les capteurs de température numériques les plus populaires et les mieux fournis utilisent généralement un bus I2C pour les communications ; cependant, les options de bus SPI et 1-Wire sont également facilement disponibles pour répondre à la disponibilité de bus de communications alternatifs pour votre projet.

Comme je l'ai mentionné au début de l'article, vous pouvez trouver les détails de chacune de ces cartes de capteurs et toutes les autres implémentations de capteurs de température sur GitHub. Ces conceptions sont toutes publiées sous la licence open-source MIT, qui vous permet de faire à peu près tout ce que vous voulez avec la conception pour un usage personnel ou commercial.

Voulez-vous en savoir plus sur comment Altium peut vous aider avec votre prochain design de PCB ? Parlez à un expert chez Altium.

Altium Designer Free Trial

 

A propos de l'auteur

A propos de l'auteur

Mark Harris est un ingénieur qui nous apporte plus de 12 ans d'expérience diversifiée dans l'industrie électronique, allant des contrats dans l'aérospatiale et la défense jusqu’au lancement de produits startup, dispositifs de loisirs en passant par une multitude d’autres accessoires. Avant de s'installer au Royaume-Uni, Mark était employé par l'un des plus grands organismes de recherche au Canada. Chaque jour, il travaillait sur un projet ou un défi différent impliquant l'électronique, la mécanique et les logiciels. Il est responsable de la publication de Celestial Database Library, la plus vaste bibliothèque de composants en base de données open source pour Altium Designer. Mark a une affinité particulière avec les équipements et les logiciels open source, la résolution de problèmes et les innovations appliquées à ce type de projets et leurs défis quotidiens. L'électronique est une passion ; suivre la transformation d’une idée en réalité, et interagir avec le monde est une source de plaisir sans fin.
Vous pouvez contacter Mark directement : mark@originalcircuit.com

Ressources associées

Documentation technique liée

Retournez à la Page d'Accueil
Thank you, you are now subscribed to updates.