Sommaire

Préambule I2C

Le bus I2C a déjà été abordé dans un précédent chapitre pour tenter d’expliquer « grossièrement » le fonctionnement de celui-ci sans trop entrer dans les détails.

Le développement de pilotes matériels fait appel à de nombreuses connaissances très différentes et nécessitera une maîtrise plus poussée du fonctionnement du bus I2C.

D’une façon générale, un bus est vu comme un périphérique lent, infiniment plus lent que la mémoire. C’est donc un monde où il faut communiquer le moins possible, mais avec le plus d’efficacité possible. Il n’est pas rare de devoir manipuler des bits dans un pilote.

Dans un pilote, le code est à cheval entre une fonction Python de haut niveau comme read_temperature() et la machinerie nécessaire pour encoder la requête, l’envoyer sur le bus I2C, réceptionner les données et en faire quelque chose de compréhensible (transformer l’information en entier, valeur décimale en bits et vice versa).

Ce n’est pas un sujet facile à vulgariser !

Ce chapitre s’attardera sur les concepts à maîtriser pour le portage d’un pilote vers MicroPython.