+ 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
2 magnetomètres LIS3MDL (même adresse) en I2C oui c'est possible
Modérateur : Francois
2 magnetomètres LIS3MDL (même adresse) en I2C oui c'est possible
Modifié en dernier par decxjo le sam. 12 janv. 2019 00:01, modifié 1 fois.
-
- 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
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+
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.
Re: 2 magnetomètres LIS3MDL (même adresse) en I2C oui c'est possible
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.
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.
-
- 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
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.
-
- 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
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).
Re: 2 magnetomètres LIS3MDL (même adresse) en I2C oui c'est possible
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 
