multiplexage I2C

bonjour a tous,

J'ai un montage I2C assez simple avec un maître (Arduino Nano) et 4 esclaves (module RTC et 3 cartes HT16K33 ). Ils ont tous une adresse physique. Je voudrais simplement connaitre votre façon de câbler l'I2C.

Sur une carte de prototypage c'est pas très compliquer mais pour un rendu final propre je ne sais pas quoi utiliser pour le switch des câbles du maître vers les esclaves. Est-ce que l'on peut simplement souder les 4 files ensemble ? Faut il utiliser une carte multiplexeur? Vu que tous les modules ont une adresse en dur je ne voit pas vraiment l’intérêt

Je cherche un simple switch 1:4 de signal ne prenant pas trop de place avec un pin d'entrée qui dispatch le signal sur 4 pin de sortie.

merci de votre aide

hello

je me posais justement la meme question, dans le cas où 2 modules ont la même adresse i2c FIXE, cas des am2320b pour moi : 2 am2320+oled i2c : j'utilise SoftwareWire, qui permet d'utiliser d'autres pins que a4 a5 pour le bus i2c en esclave, sauf que on ne peut pas partager i2c avec un autre module meme si adresse différente, donc c'est un module i2c par déclaration des sda scl.
dans votre cas, c'est différent, on peut allouer une adresse entre 0x70 et 0x77 différente pour chaque ht16k, vous n'avez pas besoin ni d'un émulateur i2c soft ni d'un multiplexer
il vous suffit de configurer chaque ht16 avec une adresse différente
configuer adresse I2C ht16k
et cabler tout en parallèle, à vous de voir

Oui pas besoin d'autre chose si les esclaves ont tous une adresse différente. Il suffit de les connecter en parallèle et d'ajouter une résistance de pull-up sur chaque ligne du bus, entre la ligne et le VCC. Valeur 4.7k ou 10k

Sinon un simple multiplexeur analogique (c'est le nom français de ce que tu cherches) sur la ligne de données (SDA) fera l'affaire.
Il faut bien évaluer le besoin après avoir modifié toutes les adresses qui peuvent l'être pour minimiser la taille du mutiplexeur.

Comme la ligne SDA est bidirectionnelle le multiplexeur doit être analogique.

@PYRIAME

I2C est un bus multi-points.
Tu relies tous les SDA ensemble, tous les SCK ensemble, tu modifies les adresses de deux de tes modules HT16K33 comme elektrax le dit en #1 :
Une petite goutte de soudure sur A0 pour le premier module.
Une petite goutte de soudure sur A1 pour le deuxième module.

Tu obtiens trois modules avec des adresses 0x70, 0x71, 0x72

Tu relies 3x HT16K33 + RTC sur l'ARDUINO et tu vérifies : I2CScanner

Ensuite dans le code tu devras créer 3 instances d'objet HT16K33 + 1 objet RTC et les initialiser tous.

La seule difficulté : posséder un fer à souder.

Tu n'auras probablement pas besoin d'ajouter des résistances de pull-up car les cartes HT16K33 les possèdent déjà :

@+

hbachetti:
Tu n'auras probablement pas besoin d'ajouter des résistances de pull-up car les cartes HT16K33 les possèdent déjà :

Bonjour
Oui et en complement de ta reponse , il faut aussi faire attention au nombre de dispo I²C prééquipé de pull-up mis en // ,
on peu tres vite se retrouver avec une R pull-up resultante trop faible sur les lignes SDA/SCL.

ET dans ce cas il faut supprimer des R :grin:

Bonjour et merci a tous pour vos réponses très instructives.

Je suis dans le concret du montage la . La platine de test sa va un moment mais quant on passe à la production des questions idiotes apparaissent :slight_smile:

La mienne : "Pas de problème de perte de signal si je soude a la rache 4 files a l'étain ?

Merci pour le mot clé "multiplexeur analogique" je pense que c'est ce que je recherche. Après si le soudage des bus I2C pose pas de problème de parasitage je vais pas trop me casser la nenete :slight_smile:

384 LED a driver, j'ai (fait) fabriquer ma propre PCB, que le truc fonctionne pas parce que j'ai mal souder 2 files sa va m’énerver :slight_smile:

Le projet est ici: retour vers le futur

PYRIAME:
Bonjour et merci a tous pour vos réponses très instructives.

Je suis dans le concret du montage la . La platine de test sa va un moment mais quant on passe à la production des questions idiotes apparaissent :slight_smile:

La mienne : "Pas de problème de perte de signal si je soude a la rache 4 files a l'étain ?

:grin: :smiley:

Utilise plutôt un bon fer à souder avec "une bonne soudure" comme hbachetti te l'a suggéré

Je pense que PYRIAME veut parler de souder 4 fils pour ses SDA et SCL.

Non, tu peux faire comme ça :

Avec 4 fils au lieu de 3

Une soudure et un bout de gaine thermo si tu as ça.

oui c'est sa je suis sur la soudure :slight_smile:

Merci pour la photo. Je vais donc faire une soudure avec gaine thermo et on verra bien ce que sa donne . Merci pour votre aide