Aller au contenu

TCN75A : Je teste le capteur de température TCN75A

    Je vais tester pour vous le composant de chez Microchip TCN75A. Il s’agit d’un capteur de température couvrant une large plage de température ( – 40° à +125° ). Il est I2C, il n’y aura donc pas de conversion a faire entrer la valeur analogique et la température. Nous pourrons donc récupérer directement des données correspondant a la température mesurée par le capteur. Au passage il s’agit du même composant que le LM75B.

    Voici la doc complète si vous voulez la lire

    Pour ce qui me concerne, j’ai besoin de mesurer la température en différents points d’un produit que je fabrique. Je vais avoir besoin d’utiliser plusieurs TCN75A et comme on peut le voir sur le schéma de principe ci-dessous, ce composant est adressable.

    Application typique du TCN75A:

     

    TNC75A Typical application schématic

    L’adressage va se faire sur les pattes A0,A1,A2 du composant. Pour ceux qui connaissent les circuits I2C mémoire de type 24C, c’est exactement le même principe.

    Pour mon application ce sera extrêmement pratique. L’avantage d’un circuit adressable comme le TCN75A est de passer les données de plusieurs composants sur le même BUS de 2 fils, limitant du même coup le câblage.

    Les composants I2C ont tous a ma connaissance des résistances de « pull-up » ( mise au +VCC ) sur les pattes de données SDA ET SCL. Le TCN75A n’échappe pas a cette règle. Par habitude je mets toujours des résistances de 2K2 mais il faut savoir que suivant la vitesse a laquelle vous allez utiliser votre bus I2C il faudra peut être les ajuster , surtout si vous l’utilisez a haute vitesse.

    doc TCN75A pinout

    Voici ce que l’on trouve dans la documentation du TCN75A , tout d’abord, les pattes d’alimentation VDD et GND. Les pattes SCL et SDA qui sont respectivement les pattes d’horloge et la pattes de données. Ce sont ces pattes qui devront être connectées au VDD via une résistance de 2K2.

    La patte Alerte

    Une patte « Alerte » programmable avec 2 niveau. Cette patte peut être très pratique pour surveiller une température sans utiliser de temps d’horloge du microcontrôleur. Il s’agit simplement d’envoyer une configuration au composant pour que celui-ci active ou désactive sa patte alerte dans les plages de températures souhaitées. On peut tout a fait imaginer mettre une température de surchauffe a 70°c pour stopper un système et attendre qu’une température de 50 °c soit atteinte pour autoriser le redémarrage.

    Le TCN75A peut totalement gérer ça de lui même de façon autonome après avoir reçu sa configuration au démarrage.

    Electriquement cette patte est faite comme les pattes SCL et SDA  c’est un « open-drain » c’est a dire que le constructeur laisse sur la patte le drain d’un transistor mosfet pour que l’utilisateur puisse y raccorder une résistance au potentiel de son choix.

    Pour finir les pattes A0, A1, A2 , sont les pattes d’adressage. Elles vont nous permettre de mettre plusieurs composants sur le même bus I2C , soit les mêmes soit plusieurs différents pourvu qu’ils soient adressables. Le constructeur nous a mit un tableau en 3-2 avec des adresses possible pour le TCN75A de A6 à A0. Je pense que ces adresses sont câblées physiquement a l’intérieur du composant et reliées au potentiel a l’intérieur du TCN75A par le constructeur. Ca serait amusant de regarder la plaque de silicium pour voir si le composant possède plus de pattes que ce qui est câblé physiquement.

    Pour terminer seules les pattes A0, A1, A2 sont physiquement utilisables. On ne pourra donc mettre que 8 TCN75A sur le même bus I2C. Dans mon ca ca suffira amplement.

    La construction hardware

    Nous avons suffisamment d’informations pour pouvoir faire un schéma et une carte électronique. Nous allons donc faire le schéma sur KiCAD.

    Schéma TCN75A

    Voici le schéma de ma carte ci dessus. Dans mon cas j’ai besoin de mesurer la température a plusieurs endroit d’un système d’induction. J’ai donc doublé le connecteur sur la carte afin de pouvoir chainer les cartes capteur sur le même bus I2C.

    Une seule d’entre elle devra avoir les résistances de pull-up les autres n’en auront pas besoin. J’ai mit sur chacune des pattes d’adressage A0,A1,A2 une résistance au VCC et une au GND , bien entendu une seule de ces résistances devra être câblées par patte. Elle serviront a donner une adresse au composant correspondant.

    Seule la patte Alerte sera mise a part car chaque circuit doit pouvoir remonter une alerte qui lui sera propre.

    Le routage de la carte.

    J’ai besoin que le TCN75A soit plus haut que les autres composants pour pouvoir le positionner sur les surfaces que je vais avoir besoin de mesurer.

    Je vais donc devoir le monter sur une face de la carte seul et le reste des composants sur l’autre face. Voici ce que ca donne.

    Recto PCB TCN75A

    Verso PCB TCN75A

    J’ai fait 4 trous pour pouvoir « presser » le TCN75A bien a plat sur la surface a mesurer. Tous les composants iront sur l’autre face afin qu’aucun d’entre eux ne risque de trainer sur une surface métallique.

    J’ai mis l’empreinte d’un point de teste pour remonter l’alerte qui sera propre a chaque carte. Le connecteur HE10 8 pattes pour le bus de données est ici un femelle mais dans la pratique il sera remplacé par un male.

     

    Réception des circuits

    Voici le circuit imprimé:

    LM75 Circuit imprimé

    LM75 Circuit imprimé

     

    J’en ai monté un pour les essais:

    tnc75 Circuit imprimé TCN75 board

     

    Comme vous pouvez le voir le circuit est monté d’un coté pour la mesure et de l’autre les composants servant a la mise au plus du bus i2c et a l’adressage du bus pour pouvoir récupérer les données de température. Si on voulait gagner du temps et de l’espace sur cette carte les résistances de mise au plus du bus pourrait être externe et la configuration fixée a l’avance. Il nous resterait alors seulement le condensateur de découplage et le connecteur.

    Le test

    Pour faire simple je vais connecter le capteur de température sur  un analyseur logique LA2016 comme ceci :

    Le but ici est d’envoyer l’adresse I2C sur le bus a l’aide d’une carte que j’ai modifié pour ce test et de regarder ce que l’analyseur logique répond en retour.

    Voici le code très court fait sous Codevision pour obtenir des données toute les 200 ms:

     

    Code vision TCN75 C

    Vous voyez c’est tout simple , la boucle va répéter en continue l’envoi du code 0x95 qui correspond a l’adresse configurée sur ma carte , si tout ce passe bien celle ci devrait nous répondre avec la valeur de la température.

    Voici ce que l’on peut lire sur l’analyseur logique :

    TCN75 LA1620 analyseur logique

     

    On lit bien l’adresse ici 0x95 et le retour pour la température 17C.

    J’espère que cet article vous aura été utile n’hésitez pas a le commenter. Je peux également approfondir les fonctions interne de ce composant. Dites le moi dans les commentaires si ca vous intéresse.

    Pensez également a vous inscrire, des cours d’électronique sont en préparation et tout les inscrits avant la sortie en auront une partie gratuite !

     

    Sylvain Altmayer

     

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *