Sommaire

Introduction

Déjà abordé à de multiples reprises (cf. Programmer - Bus I2C), le bus I2C est un bus permettant de brancher de nombreux périphériques par l’intermédiaire d’une interface 3 fils avec SDA pour le transport des bits de données et SCL pour le transport du signal d’horloge et la masse.

images/07RI34b.png

Bus I2C de la carte MicroPython Pyboard

La carte Pyboard dispose par ailleurs de deux bus I2C pouvant être manipulés par l’intermédiaire de l’API et la classe I2C proposée par le module machine.  

Transmettre l’information, un véritable défi

Les informations sont transmises bit à bit sur un bus I2C et, fondamentalement, les données transférées sont des octets. Comme chaque octet est encodé sur 8 bits, un bus I2C est uniquement capable de transférer une donnée numérique dont la valeur évolue et est comprise 0 et 255. C’est très limité pour transmettre de grandes valeurs, des nombres négatifs ou même des valeurs décimales.

Cela n’est qu’une partie de la limitation technique, puisque les périphériques I2C peuvent être, dans une certaine mesure, paramétrés (un peu comme régler un appareil photo avant la prise de vue).

Cela met en évidence deux choses :

  • Qu’il y a un protocole de communication entre le microcontrôleur et le capteur. Protocole qui codifie les informations ...