Bonjour, je cherche à voir s'il est possible (et d'après le web, cela l'est), la mise en place d'une communication totalement bidirectionnelle en I2C entre 2 Pi
C'est à dire, que l'un et l'autre peuvent, de leur propre initiative, envoyer une trame à son voisin et en obtenir une réponse.
Chacun ayant son adresse I2C et écoutant le port I2C pour traiter les demandes
J'ai réalisé un test en C
Pour l'un d'eux, le programme tourne, envoie des trames
Pour l'autre, dès qu'il cherche à répondre à une trame reçue, il plante.
Mais si je retire la partie du code qui le rend esclave, alors il répond normalement.
Ce n'est pas du code que je demande.
C'est juste de savoir s'il l'un de vous y est déjà parvenu ou le cas échéant, un lien vers une page web (j'en ai vu des pages sur le sujet avant de poster !)
Au niveau hardware, les 2 pi partagent la même masse
Leurs pins SDA/SCL sont reliés respectivement entre eux au travers du pull up de 4,7 K ohms
Ce montage fonctionne très bien avec une comme classique (1 maitre et 1 esclave)
I2C multiples slave
Modérateur : Francois
I2C multiples slave
3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32
-
- Raspinaute
- Messages : 1605
- Enregistré le : dim. 10 mai 2015 18:44
- Localisation : Dans la campagne à côté d'Annecy
- Contact :
Re: I2C multiples slave
Je ne l'ai pas fait mais oui, le mode "multi-maitre" est prévu dans les standard I2C.
La connexion se faisant à collecteur ouvert, il n'y a pas de problème électroniquement parlant : reste à trouver les programmes qui savent le faire.
La connexion se faisant à collecteur ouvert, il n'y a pas de problème électroniquement parlant : reste à trouver les programmes qui savent le faire.
- 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: I2C multiples slave
Oui j'ai lu aussi que c'est prévu (c'est dit dans mon post)
Je n'ai trouvé aucun exemple de code
Je me suis lancé et cela ne fonctionne pas comme je l'ai dit.
Tant pis, je vais trouver une autre option mais l'i2c aurait été cool, j'ai 17 arduinos qui doivent échanger des données en local (ne me parlez pas d'ethernet ni de wifi, il seront installés à quelques centimètres les uns des autres)
Et chacun doit pouvoir être maitre et esclave (émettre de sa propre initiative s'il en a besoin quand il en a besoin, écouter et répondre si nécessaire)
Il y a bien le rs232 mais en adressage c'est limité à 16
Ou peut être via des interrupteurs logiques ? Faut que j'essaie
Je n'ai trouvé aucun exemple de code
Je me suis lancé et cela ne fonctionne pas comme je l'ai dit.
Tant pis, je vais trouver une autre option mais l'i2c aurait été cool, j'ai 17 arduinos qui doivent échanger des données en local (ne me parlez pas d'ethernet ni de wifi, il seront installés à quelques centimètres les uns des autres)
Et chacun doit pouvoir être maitre et esclave (émettre de sa propre initiative s'il en a besoin quand il en a besoin, écouter et répondre si nécessaire)
Il y a bien le rs232 mais en adressage c'est limité à 16
Ou peut être via des interrupteurs logiques ? Faut que j'essaie
3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32
Re: I2C multiples slave
Bonjour,
dans le premier message il est évoqué la communication bidirectionnelle entre 2 PI et dans le dernier message entre 17 Arduino. Dans votre projet il y a les 2 plateformes qui doivent communiquer ensembles aussi ? Trouver un protocole bidirectionnel compatible avec les modes de communication PI et Arduino ne va pas être facile.
Bonnes recherches
A+
dans le premier message il est évoqué la communication bidirectionnelle entre 2 PI et dans le dernier message entre 17 Arduino. Dans votre projet il y a les 2 plateformes qui doivent communiquer ensembles aussi ? Trouver un protocole bidirectionnel compatible avec les modes de communication PI et Arduino ne va pas être facile.
Bonnes recherches
A+
Re: I2C multiples slave
Oui, avant de monter 17 pi, on commence par vérifier la faisabilité pour 2.
Je ne vois pas la différence entre 2 device i2c en slave et 17, du moment qu'il y a assez d'adresses disponibles
Mais visiblement, bien que cela soit possible d'après la doc, il semble que personne n'ai essayé (ou réussi) de mettre 2 device en slave i2c
Je ne vois pas la différence entre 2 device i2c en slave et 17, du moment qu'il y a assez d'adresses disponibles
Mais visiblement, bien que cela soit possible d'après la doc, il semble que personne n'ai essayé (ou réussi) de mettre 2 device en slave i2c
3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32