I2C multiples slave

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

Modérateur : Francois

Répondre
piper
Raspinaute
Messages : 658
Enregistré le : sam. 5 juin 2021 18:57

I2C multiples slave

Message par piper » lun. 5 févr. 2024 20:15

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

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

Re: I2C multiples slave

Message par destroyedlolo » mer. 14 févr. 2024 18:16

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.
  • 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.

piper
Raspinaute
Messages : 658
Enregistré le : sam. 5 juin 2021 18:57

Re: I2C multiples slave

Message par piper » ven. 16 févr. 2024 01:32

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

jelopo
Raspinaute
Messages : 310
Enregistré le : mer. 11 oct. 2017 10:23

Re: I2C multiples slave

Message par jelopo » ven. 16 févr. 2024 08:47

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+

piper
Raspinaute
Messages : 658
Enregistré le : sam. 5 juin 2021 18:57

Re: I2C multiples slave

Message par piper » ven. 16 févr. 2024 22:33

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

Répondre

Retourner vers « Les BUS interfaces »