Programmation I2c sur raspberry Pi
Bonjour,
Habitué à la programmation I2c en Arduino j'arrive à gérer tout les cas.
Mais pour une application j'utilise Raspberry Pi en python.
Mais il y a 2 cas de trame I2c que je ne sais programmer en python.
1er cas: Par exemple lire 8 octets d'un composant d'adresse I2c 0x48 mais qui n'a pas d'adresse de registre ?
Ecrire 0x48+R puis lire les 8 octets
En Arduino
Code:
1 2 3 4 5 6 7
| Wire.requestFrom(0x48, 8);
while (Wire.available())
{
tab[0]= Wire.read();
//8 fois
} |
En Python ?
read_byte (adr)n'utilise pas de registre mais c'est seulement pour un octet.
read_bloc_data (adr, reg) utilise une registre et ne peu correspondre à la trame I2C nécessaire.
2eme cas: Par exemple lire 8 octets d'un composant d'adresse I2c 0x48 mais qui à un registre de 16 bit (par exemple lire à partir de 0x0F00)?
Ecrire 0x48+W / Ecrire 0xF0 / Ecrire0x00 / Ecrire 0x48+R puis lire les 8 octets
En Arduino :
Code:
1 2 3 4 5 6 7 8 9 10
| Wire.beginTransmission(0x48);
Wire.Wire(0xF0);
Wire.Wire(0x00);
Wire.endTransmission();
Wire.requestFrom(0x48, 8);
while (Wire.available())
{
tab[0]= Wire.read();
//8 fois
} |
En Python ?
read_bloc_data (0x48, 0xF000) de dois pas fonctionner?
Je ne sais command résoudre ces cas en python ?