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

Des infos, des conseils sur les bus DSI,CSI, I2C, SPI... du Raspberry Pi

Modérateur : Francois

Répondre
decxjo
Messages : 7
Enregistré le : jeu. 10 janv. 2019 19:01

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

Message par decxjo » jeu. 10 janv. 2019 19:20

+ 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
Modifié en dernier par decxjo le sam. 12 janv. 2019 00:01, modifié 1 fois.

destroyedlolo
Raspinaute
Messages : 1317
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

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

Message par destroyedlolo » jeu. 10 janv. 2019 20:33

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+
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

decxjo
Messages : 7
Enregistré le : jeu. 10 janv. 2019 19:01

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

Message par decxjo » 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?
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.

destroyedlolo
Raspinaute
Messages : 1317
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

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

Message par destroyedlolo » sam. 12 janv. 2019 16:23

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.
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

Bud Spencer
Raspinaute
Messages : 645
Enregistré le : lun. 15 août 2016 21:38

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

Message par Bud Spencer » mar. 15 janv. 2019 10:17

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).
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

decxjo
Messages : 7
Enregistré le : jeu. 10 janv. 2019 19:01

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

Message par decxjo » mar. 15 janv. 2019 11:06

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 ;)

Répondre

Retourner vers « Les BUS interfaces »