Quelques exemples d'équivalence entre les séquences du debugger I2C sous Isis et la bibbliothèque Arduino Wire.h

On suppose que l'esclave I2C a une adresse sur 7 bits égale à $28 soit $50 pour une écriture et $51 pour une lecture :

Exemples

Séquence I2C debugger Isis

Équivalent Arduino (Wire.h)

Envoi de l'adresse de l'esclave $28

S $50 P

Wire.beginTransmission(0x28);

Wire.endTransmission();

Lecture de 3 octets

S $51 A A N P

Wire.requestFrom(0x28, 3);

if (Wire.available() == 3) {

MSB = Wire.read();

LSB = Wire.read();

}

Écriture d'une commande égale à $F3

S $50 $F3 P

Wire.beginTransmission(0x28);

Wire.write(0xF3);

Wire.endTransmission();

Écriture dans le registre $06 de la valeur $20

S $50 $06 $20 P

Wire.beginTransmission(0x28);

Wire.write(0x06);

Wire.write(0x20);

Wire.endTransmission();

Lecture d'un octet dans le registre $06

S $50 $06 Sr $51 N P

Wire.beginTransmission(0x28);

Wire.write(0x06);

Wire.endTransmission(false);//Restart

Wire.requestFrom(0x28, 1);

if (Wire.available() == 1)

byte = Wire.read() ;

Lecture de deux octets dans le registre $10

S $50 $10 Sr $51 A N P

Wire.beginTransmission(0x28);

Wire.write(0x10);

Wire.endTransmission(false);//Restart

Wire.requestFrom(0x28, 2);

if (Wire.available() == 2) {

MSB = Wire.read();

LSB = Wire.read();

}

Attention

Les trames I2C présentées ne s'appliquent pas à n'importe quel composant I2C, le tableau permet juste de connaître l'équivalence entre le langage Isis et le langage Arduino.

Pour chaque composant I2C, il faudra se référer à la documentation.