Contrôle Du Port I2C Du Yocto-I2C - Yoctopuce Yocto-I2C Mode D'emploi

Table des Matières

Publicité

• Une condition START est transmise. Sur la plupart des interfaces cet enchaînement STOP/
START peut être remplacé par une condition RESTART
• Suit l'adresse, sur 7 bits, suivie d'un bit à un pour indiquer une lecture, le byte suivant la
deuxième condition START est donc d'adresse de l'interface à joindre fois deux plus 1.
• L'interface I2C distante va répondre par la valeur du registre demandé.
• On peut ensuite
◦ Soit répondre par un NACK, pour indiquer qu'on a bien reçu le byte demandé et qu'on
souhaite s'en tenir là.
◦ Soit répondre par un ACK, et l'interface distante enverra automatiquement le byte
suivant si elle est capable d'incrémenter automatiquement son pointeur de registre. Il
faudra répondre à ce byte par un NACK ou un ACK et ainsi de suite.
• L'itération se termine par un STOP
Lecture de la valeur du registre 0x42 d'un périphérique dont l'adresse est 0x12
Lecture des valeurs des registres 0x42 à 0x44 d'un périphérique dont l'adresse est 0x12
Certains constructeurs prenant parfois des libertés avec le protocole I2C, ne soyez pas surpris si
vous rencontrez une interface I2C dont le fonctionnement, ou l'organisation des registres pourrait
être légèrement différents. Cela n'est généralement pas un problème, tant que le fonctionnement de
l'interface en question est clairement expliqué dans la documentation technique du produit qui
l'utilise.
5.2. Contrôle du port I2C du Yocto-I2C
Le port I2C du Yocto-I2C peut être contrôlé de deux manières différentes:
Protocole par messages
Lorsque l'on travaille par message, on envoie une séquence de code complète sur le bus I2C et on
lit ensuite la réponse qui a été détectée sur le bus. La réponse peut dans certains cas n'être qu'une
série de conditions ACK, ou parfois inclure des octets lus depuis le périphérique esclave. C'est la
manière la plus naturelle de travailler en I2C, et c'est celle qui est détaillée dans la suite de ce
chapitre.
Protocole code-par-code
Pour des applications particulières, il est aussi possible d'envoyer des codes I2C sur le bus tout en
lisant continuellement les valeurs retournées par le périphérique esclave. Ce peut être le cas par
exemple si le nombre d'octets à lire sur du périphérique esclave est transmis en tête de la réponse
elle-même. Dans ce cas, on peut envoyer les conditions déclanchant la lecture sur le bus I2C, lire le
premier octet envoyé, et continuer à envoyer des conditions ACK jusqu'à l'obtention du nombre
d'octets spécifiés par le périphérique avant d'envoyer la condition STOP.
www.yoctopuce.com
5. Le port I2C
23

Publicité

Table des Matières
loading

Table des Matières