Un thermomètre sur I2C, le LM76

Il s’agit maintenant de mettre en œuvre le composant LM76 de National Semiconducteur, permettant les fonctions de thermomètre digital.
Ce composant se retrouve généralement dans les ordinateurs mais également dans l’électronique domestique ou pour des applications bio-médicales.
Sa grande force est dans la précision dont il est capable.
Effectivement, il permet une approximation de ±1°c Max. (±0,5°c Max. à 25°C) tout en ayant une précision de lecture de 0.0625°c.
De plus, il possède six registres permettant sa configuration dans différentes fonctions comme le déclenchement d’une alarme selon des seuils définis dans ces registres.

Premièrement, il nous faut le Data-Sheet du composant Image (324 KB)

Les six registres permettent les fonctions suivantes :

Adresse 0 : Lecture de la température.
Adresse 1 : Configuration du composant (alarme , mise en veille, etc...)
Adresse 2 : THYST permettant de définir la tolérance des seuils, évitant de fait les marches et arrêts intempestifs des alarmes.
Adresse 3 : T_CRIT définissant la température critique, notamment utilisée afin de donner l’ordre à une machine de s’éteindre de suite.
Adresse 4 : TLOW définissant la température de seuil le plus bas.
Adresse 5 : THIGH définissant la température de seuil haut.

 

Image

Schéma interne du LM76

 

Toutefois, pour une application domestique, il n’est pas nécessaire de configurer les différents seuils, seul le registre de température courant sera utilisé.
Afin d’effectuer une lecture sur ce registre, il faut d’abord le sélectionner.
Pour ce faire, il suffit d’envoyer l’adresse du composant (72 de base) ainsi que l’adresse du registre.

 

Image

Sélection du registre de température

 

Une fois cette précaution prise, on peut lire la température contenue dans ce registre.

 

Image

Lecture des données formant la température

 

La première donnée représente les bits de poids forts et la seconde donnée les bits de poids faible ainsi que les indicateurs d’alarmes (3 derniers bits).

En regroupant les deux données et en hottant les 3 derniers bits, il s’agit d’un entier de 12 bits auquel vient s’ajouter un bit de signe.
Ce mot de 13 bits doit être vu comme un entier codé en complément à deux (integer).
Le bit de poids le plus faible représentant 0,0625°c, il est facile de déterminer la température ambiante.
Cependant, il est à noter la particularité du protocole de lecture qui demande un ack de la part du master afin de pouvoir lire la seconde donnée.

 

Joomla 1.6 Templates designed by Joomla Hosting Reviews