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