Page 1 sur 1

I2C multiples slave

Posté : lun. 5 févr. 2024 20:15
par piper
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)

Re: I2C multiples slave

Posté : mer. 14 févr. 2024 18:16
par destroyedlolo
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.

Re: I2C multiples slave

Posté : ven. 16 févr. 2024 01:32
par piper
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

Re: I2C multiples slave

Posté : ven. 16 févr. 2024 08:47
par jelopo
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+

Re: I2C multiples slave

Posté : ven. 16 févr. 2024 22:33
par piper
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