ETUDE DE LA CARTE I2C SUR PORT PARALLELE

Partie Logicielle
Bibliothèque du LM75

 

Vers page d'accueil
Vers la mienne
Vers page des pro
Vers pages des momes
Vers page photo
Mon bookmark
Vers plan du site
Page précédente

2.4 Bibliothèque du LM75

Cette étude logicielle est à considérer conjointement à la partie matériel.

Cette librairie (lm75.llb) comme toutes celles du projet est toujours disponible gratuitement sur la page de téléchargement.

2.4.1.Les modules de base de la bibliothèque du LM75

set_pointer.vi
L'étude de la datasheet montre que c'est un module fort utile pour ne pas dire nécessaire dès l'instant où on veut accèder aux registres autres que le registre de température. Il s'agit simplement d'éxécuter une écriture classique avec un octet d'adresse/commande en écriture suivi d'un octet pour le numéro du registre à sélectionner. La seul particularité est que la trame ne doit pas se terminer par un stop
Connecteur:

Pour respecter la convention sur laquelle est basé le projet, on retrouve les entrées/sorties param_I2C et ad_cmp qui permettent de chaîner les modules

Face avant:

Diagramme:

Grâce au module trame_sender.vi développé en début de projet l'écriture d'un tel module se résume à la transcrition des chronogramme de la datsheet en langage clair: envoyer_start, envoyer_octet, recevoir _ack...

read_temp.vi
Dans sa conception, ce module ressemble au précédent avec l'appel de trame_sender.vi pour lire les octes de température.

Connecteur: (sans commentaire)

Face avant: (peu utile...)

Diagramme:

Vers page d'accueil
Vers la mienne
Vers page des pro
Vers pages des momes
Vers page photo
Mon bookmark
Vers plan du site
Page précédente

 

 

 

La seule partie de traitement qui différe est la reconstitution de la valeur de la température à partir des octets lus.

set_temp.vi
Il ne s'agit pas de fixer la valeur de la température mesurée par le composant mais de pouvoir écrire dans les registre Thys et Tos. D'après la datasheet, il faut fixer la valeur du pointeur d'adresse (en utilisant biensûr le module set_pointer.vi développé ci-dessus).

Connecteur: (un p'tit dernier)

Face avant: (idem)

Tous les modules de cette bibliothèque étant sur le même model, il ne seront pas présentés dans la suite de l'étude...

Diagramme

Le seul commentaire qu'impose ce diagramme est l'absence de l'octet adresse/commande dans la trame puisqu'il est entendu que son utilisation doit se faire après celle du module set_pointeur.vi. En fait, il représente la suite de la trame puisque le module set_pointeur ne se termine pas par un stop.

read_config.vi
C'est tout ce qu'il y a de plus simple puisqu'il suffit de lire les chronogramme et de les transcrire. Avec un peu d'habitude cela devient vraiment très simple d'écrire ces modules. Il est toutefois remarquable qu'avec le LM75 la trame n'a pas la même structure lorsqu'il s'agit d'une écriture par rapport à une lecture. En lecture, il faut faire set_pointeur puis octet adresse/commande et lecture de l'octet ou des octets utiles alors qu'en écriture il faut faire set_pointer suivi directement de l'écriture des octets utiles. Cette différence s'explique facilement car set_pointeur est en fait une écriture, il est donc nécessaire de refixer la commande pour une lecture alors que pour une écriture la commande est déjà la bonne.

set_config.vi
Un petit coup de set_pointer et on envoi la données. Tout bête...

2.4.2.Les modules évolués.

Les 4 modules suivant ne présentent pas grand intérêt au niveau conception puisqu'ils sont constitué d'appels simple au modules développés ci-dessus. Le principe est toujours le même: set_pointeur.vi suivi read_temp.vi ou set_temp.vi
read_Thys.vi
read_Tos.vi
set_Thys.vi
set_Tos.vi

Les 4 suivants sont légèrement moins simple. Il s'agit de positionner individuellement les bits du registre de configuration sans toucher aux autres. La technique utilisé est: read_config.vi suivi du set_bit.vi et/ou reset_bit.vi appropriés et enfin set_config.vi. Pas de quoi s'extasier... (les modules set_bit.vi et reset_bit.vi font partie de la bibliothèque I2c_de_base.llb de la page de téléchargement)
set_fault_queue_size.vi
set_OS_mode.vi
set_OS_polarity.vi
set_shutdown.vi

Vers page d'accueil
Vers la mienne
Vers page des pro
Vers pages des momes
Vers page photo
Mon bookmark
Vers plan du site
Page précédente

2.4.3.Exemples d'applications

test_moduless.vi
Cette application permet de vérifier le fonctionnement de tous les modules appelés tous les uns après les autres.

thermometre_simple.vi

Difficile de faire plus simple puisqu'il suffit d'appeler read_temp.vi toutes les 300 ms par exemple.

dédiéelm75.vi

 

à suivre avec l'étude dune EEPROM et de RAM I2C utilie dans un banc de test pour stocker des paramètres le 19.09.2001...

  La suite avec: l'étude d'une mémoire EEPROM ST24C08 ou encore la table des matière du projet I2C