Page 1 sur 1

2 magnetomètres LIS3MDL (même adresse) en I2C oui c'est possible

Posté : jeu. 10 janv. 2019 19:20
par decxjo
+ après beaucoup d'exploration pour mon robot, et pour accéder à 2 magnétomètres ayant la même adresse I2C je vous fait part d'une solution possible.

+ le principe consiste à déconnecter du SCL chaque magnétomètre de façon indépendante et ne rétablir le SCL qu'en cas de besoin de communication.
+ Pour se faire il faut attribuer un GPIO pour commander un BC547 (transistor banal, avec un pont diviseur 5K/10) par sa base. La ligne SCL entre au collecteur et sort au drain et est donc interrompue quand le GPIO dévolu est au niveau bas et rétablie lorsqu'il est au niveau haut.
+ Par logiciel il suffit de rétablir le SCL du magnétomètre souhaité pour que lui seul soit visible sur le bus I2C.

Ce dispositif très simple et économique permet de ne pas se résigner à abandonner l'I2C dans le cas où plusieurs capteurs ont la même adresse I2C et qu'elle n'est pas programmable

Re: 2 magnetomètres LIS3MDL (même adresse) en I2C oui c'est possible

Posté : jeu. 10 janv. 2019 20:33
par destroyedlolo
Salut,

Y'a pas plusieurs bus I2C exposés sur la framboise ?
Il me semblait qu'il y en avait 2 sur le port 40 broches comme sur le BananaPro, non ?

A+

Re: 2 magnetomètres LIS3MDL (même adresse) en I2C oui c'est possible

Posté : ven. 11 janv. 2019 23:57
par decxjo
ben non je ne trouve qu'un bus I2C documenté sur Raspberry 2 ou 3 ...... ou je me trompe ?
d'ailleurs quel est l'intérêt d'en avoir 2 à moins de vouloir communiquer avec 2 fois 127 capteur?
Avec le petit montage proposé ci dessus, le bus reste exploitable par 125 autres capteurs pourvus qu'ils aient des adresse différentes ou si pour certains la collision d'adresse se présente, il est possible en consacrant d'autres GPIO d'étendre le contrôle du SCL à ces jumeaux.

Re: 2 magnetomètres LIS3MDL (même adresse) en I2C oui c'est possible

Posté : sam. 12 janv. 2019 16:23
par destroyedlolo
decxjo a écrit :
ven. 11 janv. 2019 23:57
ben non je ne trouve qu'un bus I2C documenté sur Raspberry 2 ou 3 ...... ou je me trompe ?
d'ailleurs quel est l'intérêt d'en avoir 2 à moins de vouloir communiquer avec 2 fois 127 capteur?
Ben justement d'avoir plusieurs fois le meme capteurs avec la meme adresse (meme si ton montage est parfaitement valide).
En plus, ca permet d'avoir plus de bande passante plus importante par exemple, si tu as des écrans I2C.

Re: 2 magnetomètres LIS3MDL (même adresse) en I2C oui c'est possible

Posté : mar. 15 janv. 2019 10:17
par Bud Spencer
decxjo a écrit :
jeu. 10 janv. 2019 19:20
Ce dispositif très simple et économique permet de ne pas se résigner à abandonner l'I2C dans le cas où plusieurs capteurs ont la même adresse I2C et qu'elle n'est pas programmable
il y a plus simple et plus efficace sans avoir a utiliser un GPIO de sélection et pour pas beaucoup plus cher. Il suffit simplement d'utiliser un switch I2C. On trouve des modules tca9548a (switch 8xI2C) tout monté pour a peine 5€. En plus ces modules ont 3 bits d'adressages, et là, l'usage d'une ou plusieurs GPIO prend un autres sens puisque qu'a chaque gpio utilisée (0 à 3) on double le nombre de perif. I2C utilisable avec la meme adresse (8,16,32,64).

Re: 2 magnetomètres LIS3MDL (même adresse) en I2C oui c'est possible

Posté : mar. 15 janv. 2019 11:06
par decxjo
Merci beaucoup je garde cette idée pour mon deuxième proto ... ça fera moins de soudure bien que le plaisir de "voir" par où passe le signal ;)