Un des intérets majeurs de l'I2C est d'etre implémenté ou implémentable sur des microcontroleurs (comme c'est d'ailleur fait dans tous les équipements grand public : téléviseurs, magnétoscopes,...).
Le primier fabriquant à avoir implémenté de l'I2C sur un microcontroleur fut Philips (logique, c'est lui qui a inventé l'I2C).
Dans la famille de microcontroleur Philips utilisant l'I2C on ne retrouve presque que la série MCS51 (les 80C51 et dérivés), dont 2 modèles qui pour moi sont les plus intéressants : le 80C552, qui fait ofice de chef de famille avec son I2C orienté octet et tous ces attribut en plus (convertisseurs A/N, port d'ES en plus, timer, watch dog, port PWM,...) et le 80C652, un 80C51 avec en plus l'interface I2C du 552, avantage indiscutable : il est pin à pin compatible avec le 80C51 de base...
On peut quand meme utiliser l'I2C sur d'autre modèles, notament les 80C31, en faisant du bit-banging sur les ports d'ES. (ca marche aussi très bien !)
Les sources pour utiliser l'interface I2C du 552 en assembleur sont disponibles, mais je trouve que sa gestion est assez lourde (par contre la vitesse de traitement est excellente avec le flowchart publié par Philips).
Personellement j'ai adapté le source en assembleur pour l'écrire en C, plus facile à lire et à modifier (au dépend de la vitesse d'exécution)...Pour cela j'ai utilisé le compilateur freeware SDC51 (dispo sur le net).
L'exemple téléchargeable (en C) est suffisament commenté pour etre compris par tous. Pour les currieux, j'y ai mis le source en assembleur d'un convertisseur serie/I2C (pas très bien fait, mais au moins il tourne !).
PS : je sais qu'il existe la famille 80C75x qui possède une interface I2C orientés bit, je ne l'ai jamais utilisée et je n'ai pas le temps de m'y mettre...
(C) Marc BOUGET - 1998