Le PCF8591 supporte 4 entrées et une sortie analogique, toutes d'une résolution de 8 bits. Les Broches AIN0 à AIN3 correspondent aux entrées analogiques et la broche AOUT à la sortie analogique. Les broches VREF et AGND correspondent aux tensions de références pour les conversions dans un sens ou dans l'autre. Ces valeurs peuvent êtres différentes de la tension d'alimentation Vdd et Vss (qui est généralement de 5V) mais doivent toutefois se tenir dans l'intervalle de ces dernières. La broche EXT à Vss permet d'indiquer l'utilisation de l'oscillateur interne pour les conversions numériques, le signal est alors disponible sur la Broche OSC. Inversement, la broche EXT à VDD indiquera utilisation d'un oscillateur externe qui devra être appliqué à la broche OSC (L'utilisation d'un oscillateur externe est sans intérêt en usage courant)
L'adresse Du PCF 8591 est codifié sur 7 bits avec un 8em bit (R/W) indiquant le sens du transfert. Cette adresse est constituée d'une partie fixe et d'une partie «programmable» à partir des broches A0 à A2, ce qui permet d'envisager le raccordement de 8 circuits de ce type sur un même bus I2C.
Le pilotage du circuit s'effectue par la lecture ou l'écriture d'une série de données sur le Bus I2C, mais les choses sont un peu plus complexes que dans le cas du PCF8574.
Pour envoyer des données à ce circuit, on commencera par lui envoyer son adresse avec R/W à 0. Le protocole de ce circuit prévoie ensuite la transmission de 2 octets.
Le premier octet est destiné au registre de contrôle qui configure le circuit et qui permet :
A la mise en service du circuit, les bits de ce registre de configuration sont tous placé à 0.
Suivant la programmation des entrées analogiques, 2, 3 ou 4 valeurs pourront êtres effectivement consultées lors des lectures.
Le deuxième octet qui peut être envoyé au circuit est lui destiné à la sortie analogique (Broche AOUT). La tension que peut prendre cette sortie est comprise entre AGND et VREF pour des valeurs numériques comprises entre 0 et 255. Cette sortie ne fonctionne que si elle a été activée dans le registre de contrôle.
La lecture du circuit nécessite d'adresser celui-ci avec le bit R/W à 1. Les octets renvoyés par le circuit correspondent ensuite aux valeurs d'un ou plusieurs canaux analogiques suivant que l'option d'autoincrémentation soit active ou pas.
Si le bit d'auto incrémentation est à l'état haut (bit 2 du registre de configuration) les canaux sont sélectionnés les uns après les autres, les No de canaux non disponibles étant sautés automatiquement. (Attention ici à ne pas confondre canaux et entrées)
Comme la conversion nécessite un certain temps l'octet renvoyé correspondra à la conversion effectuée durant la précédente lecture comme le montre la figure ci-contre. Le mode de fonctionnement du circuit implique de ce fait que la première donnée renvoyée à chaque nouvelle lecture risque de ne pas être valide, correspondant à la dernière conversion de la précédente consultation
Le PCF8591 supporte quelques broches destinées à sa configuration, notamment le réglage des tensions de références que le schéma ci-contre permet d'exploiter. Le potentiomètre RV1 permet d'ajuster le seuil de la conversion et RV2 sont amplitude. Pour régler ce montage, placez RV2 à mi-course, puis appliquez la tension minimum à mesurer sur l'une des entrée et ajustez RV1 de façon à obtenir tout juste 0. Ensuite appliquez la tension maximum de mesure et ajustez RV2 de façon à obtenir tout juste 255.
Si l'amplitude de votre mesure est simplement 0 - 5V, les potentiomètres ne sont pas vraiment utiles et il suffit de reliez AGND à la masse et VREF au 5V.
Des potentiomètres raccordés aux entrées analogiques permettent de réaliser des détecteurs de position simples et efficaces pour la mesure d'angles, de courses, de niveaux,.... L'utilisation de potentiomètres linéaires est préférable car permettant d'avoir un résultat proportionnel à la position. Les potentiomètres classiques on un angle de rotation de 270° à 300° mais il existe aussi des potentiomètres à 360° sans buté ainsi que des potentiomètres à glissière avec des courses jusqu'à 10 cm.
Une résistance CTN permet de réaliser un capteur de température simple. La précision n'est pas extraordinaire mais suffisante pour bon nombre de petites applications entre -20° à +40° C. Pour une plage de conversion analogique de 0 - 5V (AGND,VREF), la température sera donnée par la formule :
T°c = -0,357 MESUR + 53,92 ( ou T°c est la température en dégrée Celsius et MESUR le résultat binaire de la mesure)
Le 555 est réputé pour ces usages multiples comme générateur de signaux. Il est mis ici à l'œuvre pour piloter un servomoteur. Les servomoteurs ce positionnent sur une plage de -90° à +90° en réponse à un signal carré de niveau haut allant de 1ms à 2 ms, ce signal devant être répété toutes les 20 ms (sans répétition, le servomoteur prend la position puis passe en "roue libre"). La largeur de l'impulsion est modulée par le transistor T1 et sera raccordé à la sortie analogique d'un PCF8591.
Retourner en haut de la page