5. Le port I2C
Ce chapitre rappelle le fonctionnement d'un bus I2C et décrit les abstractions utilisées pour
implémenter différentes interfaces de contrôle I2C dans l'API Yoctopuce.
5.1. Fonctionnement d'un bus I2C
Un bus I2C est constitué de quatre lignes:
• La masse;
• L'alimentation, typiquement 1.8V ou 3.3V, plus rarement 5V;
• La ligne SCL qui transmet le signal d'horloge;
• La ligne SDA qui transmet le signal de données.
Une interface I2C communique en tirant les lignes SCL et SDA vers la masse (communication open
drain). Il y a donc toujours une résistance de pull-up entre la ligne d'alimentation du bus I2C et
chacune des lignes SCL et SDA. Notez que dans dans le cas du Yocto-I2C, ces résistances de pull-
up sont directement intégrées dans le module. Il n'est donc pas nécessaire d'ajouter des résistances
externe, sauf si vous désirez cumuler des résistances supplémentaires pour baisser l'impédance en
dessous de 4.7KΩ.
Un bus I2C est généralement piloté par un maître qui commande un ou plusieurs esclaves. Le
Yocto-I2C est conçu pour assumer le rôle du maître.
Les esclaves sont caractérisés par leur adresse, sur 7 bits, et possèdent en une liste de registres.
Chaque esclave doit impérativement avoir une adresse unique sur le bus. Communiquer avec un
périphérique I2C consiste à lire ou écrire des registres en utilisant la bonne adresse.
www.yoctopuce.com
Architecture typique d'un bus I2C
21