Correction TD2 EXERCICE1 : PCF8574 La communication I2C avec ce périphérique est initiée par un maître qui envoie une condition de démarrage, une transition haut-bas sur l'E/S SDA alors que l'entrée SCL est haute. Après la condition de démarrage, l'octet d'adresse de périphérique est envoyé, bit important (MSB) en premier, y compris le bit de direction de données (R/W). Cet appareil ne répond pas à l'adresse générale de l'appel. Après la réception de l'octet d'adresse valide, ce périphérique répond avec un accusé de réception, une valeur faible sur l'E/S SDA pendant le plus fort de l'impulsion d'horloge liée à l'accusé de réception. Les entrées d'adresse (A0-A2) de l'équipement esclave ne doivent pas être changées entre les conditions de démarrage et d'arrêt. L'octet de données suit l'acquittement d'adresse. Si le bit R/W est élevé, les données de ce périphérique sont les valeurs lues sur le port P. Si le bit R/W est faible, les données proviennent du maître et doivent être transmises au port P. L'octet de données est suivi d'un accusé de réception envoyé par cet appareil. Si d'autres octets de données sont envoyés par le maître, après l'acquittement, ils sont ignorés par ce périphérique. Les données sont sorties uniquement si des octets complets sont reçus et acquittés. Les données de sortie seront valides à l'instant, tpv, après la transition bas-haut de SCL et pendant le cycle d'horloge pour l'acquittement. Une condition d'arrêt, qui est une transition de bas à haut sur l'E/S SDA alors que l'entrée SCL est haute, est envoyée par le maîtriser. EXERCICE 2 : PCF8591 Le PCF8591 est un dispositif d'acquisition de données CMOS 8 bits, monopuce, basse consommation, à alimentation simple, avec quatre entrées analogiques, une sortie analogique et une interface bus I2C série. Trois broches d'adresse A0, A1 et A2 sont utilisées pour programmer l'adresse matérielle, ce qui permet d'utiliser jusqu'à huit périphériques connectés au bus I2C sans matériel supplémentaire. L'adresse, le contrôle et les données vers et depuis l'appareil sont transférés en série via le bus I2C bidirectionnel à deux lignes. Les fonctions du dispositif comprennent un multiplexage d'entrée analogique, une fonction de poursuite et de maintien sur puce, une conversion analogique-numérique de 8 bits et une conversion numérique-analogique de 8 bits. Le taux de conversion maximum est donné par la vitesse maximale du bus I2C. Adressage Chaque appareil PCF8591 dans un système de bus I2C est activé en envoyant une adresse valide à l'appareil. L'adresse est constituée d'une partie fixe et d'une partie programmable. La partie programmable doit être réglée en fonction des broches d'adresse A0, A1 et A2. L'adresse est toujours envoyée en tant que premier octet après la condition de démarrage dans le protocole de bus I2C. Le dernier bit de l'octet d'adresse est le bit de lecture / écriture qui définit la direction du transfert de données suivant (voir Tableau 5 à la page 13, Figure 15 à la page 13 et Figure 16 à la page 13). Octet de contrôle Le deuxième octet envoyé à un périphérique PCF8591 est stocké dans son registre de contrôle et est requis pour contrôler la fonction du périphérique. Le quartet supérieur du registre de contrôle est utilisé pour activer la sortie analogique et pour programmer les entrées analogiques comme entrées asymétriques ou différentielles. Le quartet inférieur sélectionne l'un des canaux d'entrée analogiques définis par le quartet supérieur (voir Figure 4). Si l'indicateur d'incrémentation automatique est activé, le numéro de canal est incrémenté automatiquement après chaque conversion A / N. Si le mode d'incrémentation automatique est souhaité dans les applications où l'oscillateur interne est utilisé, le drapeau de validation de sortie analogique doit être défini dans l'octet de contrôle (bit 6). Cela permet à l'oscillateur interne de fonctionner en continu, empêchant ainsi les erreurs de conversion résultant du délai de démarrage de l'oscillateur. Le drapeau de validation de sortie analogique peut être réinitialisé à d'autres moments pour réduire la consommation d'énergie au repos. La sélection d'un canal d'entrée inexistant entraîne l'attribution du numéro de canal disponible le plus élevé. Par conséquent, si l'indicateur d'incrémentation automatique est activé, le canal sélectionné suivant est toujours le canal 0. Les bits les plus significatifs des deux quartets sont réservés aux futures fonctions possibles et doivent être mis à 0 logique. Après une réinitialisation à la mise sous tension (POR) Dans ce cas, tous les bits du registre de contrôle sont remis à 0. Le convertisseur N / A et l'oscillateur sont désactivés pour économiser l'énergie. La sortie analogique est commutée sur un état de haute impédance Conversion D / A Le troisième octet envoyé à un dispositif PCF8591 est stocké dans le registre de données DAC et est converti en la tension analogique correspondante en utilisant le convertisseur N / A sur puce. Ce convertisseur N / A se compose d'une chaîne de diviseur de résistance connectée à la tension de référence externe avec 256 prises et commutateurs de sélection. Le décodeur de prises commute l'une de ces prises sur la ligne de sortie du CNA (voir la figure 5). La tension de sortie analogique est tamponnée par un amplificateur à gain unitaire à mise à zéro automatique. Le réglage du drapeau de validation de sortie analogique du registre de contrôle active ou désactive cet amplificateur tampon. Dans l'état actif, la tension de sortie est maintenue jusqu'à ce qu'un autre octet de données soit envoyé. Le convertisseur N / A sur puce est également utilisé pour la conversion A / N en approximation successive. Afin de libérer le DAC pour un cycle de conversion A / N, l'amplificateur à gain unitaire est équipé d'un circuit de poursuite et de maintien. Ce circuit maintient la tension de sortie pendant l'exécution de la conversion A / N. Tension de référence Pour la conversion D / A et A / D, une référence de tension externe stable ou la tension d'alimentation doit être appliquée à la chaîne du diviseur de résistance (broches VREF et AGND). La broche AGND doit être connectée à la masse analogique du système. Il peut avoir un décalage DC en référence à VSS. Une basse fréquence peut être appliquée aux broches VREF et AGND. Cela permet l'utilisation du convertisseur N / A en tant que multiplicateur à un quadrant (voir la section 10 et la figure 6) Le convertisseur A / N peut également être utilisé comme un diviseur analogique à un ou deux quadrants. La tension d'entrée analogique est divisée par la tension de référence. Le résultat est converti en un code binaire. Dans cette application, la tension de référence doit rester stable pendant le cycle de conversion. Oscillateur Un oscillateur sur puce génère le signal d'horloge requis pour le cycle de conversion A / N et pour rafraîchir l'amplificateur tampon à mise à zéro automatique. Lors de l'utilisation de cet oscillateur, la broche EXT doit être connectée à VSS. La fréquence de l'oscillateur est disponible sur la broche OSC. Si la broche EXT est connectée à VDD, la sortie de l'oscillateur OSC est commutée sur un état haute impédance permettant d'envoyer un signal d'horloge externe à OSC. Le bus I2C est destiné à la communication bidirectionnelle à deux lignes entre différents circuits intégrés ou modules. Les deux lignes sont une ligne Serial DAta (SDA) et une ligne Serial CLock (SCL). Les deux lignes doivent être connectées à une alimentation positive via une résistance de pull-up. Le transfert de données peut être initié uniquement lorsque le bus n'est pas occupé. Les entrées doivent être connectées à VSS ou VDD lorsqu'elles ne sont pas utilisées. Les entrées analogiques peuvent également être connectées à AGND ou VREF. Afin d'éviter les bruits de masse et d'alimentation excessifs et de réduire au minimum la diaphonie entre les voies de signaux numériques et analogiques, la disposition des cartes de circuits imprimés doit être conçue avec soin. Les lignes d'alimentation communes à un périphérique PCF8591 et les circuits numériques bruyants et les boucles de masse doivent être évitées. Des condensateurs de découplage (> 10 µF) sont recommandés pour les entrées d'alimentation et de tension de référence. vcc: alim ou niveau logique haut pour un circuit TTL vdd: alim ou niveau logique haut pour un circuit CMOS gnd: masse ou niveau logique bas pour un circuit TTL vss: masse ou niveau logique bas pour un circuit CMOS