J'ai mon lcd et ma rtc en I2C sans résistance de pull up sur ma Mega et ça fonctionne.
J'ai ajouté le VL6180X toujours en I2C en essayant des 10k et des 2.2k. Ca fonctionne pas
J'ai ajouté une Uno (alimentée en 5V par la Mega) avec le VL6180X toujours en I2C et toujours sans résistance de pull up et ça fonctionne.
J'ai un peu raccourci la liaison et les câbles ne font plus qu'un bon mètre. A priori, ça ne viendrait donc pas de la longueur des câbles.
J'ai changé l'alim de la Mega par une plus puissante car j'ai ajouté la Uno. Mes cartes relais sont alimentées en 5V par une autre alim. Toutes les masses sont reliées entre elles. Les adresses des modules RTC, LCD et VL sont différentes.
C'est sûr que dans le boitier qui regroupe tout ce petit matèriel, il commence à y avoir du monde. je peux remplacer la Uno par une Nano mini usb pour faire de l'air mais bon....
J'aimerai bien régler le problème. Je n'aime pas rester sur un échec.
Et pour un débutant, je peux vous dire que c'est pas facile
EGT59:
... J'ai ajouté une Uno (alimentée en 5V par la Mega) avec le VL6180X toujours en I2C et toujours sans résistance de pull up et ça fonctionne. ...
Quand je lis cela, voici ce que je comprends :
le LCD et la RTC sont connectés sur le bus I2C de la méga
le VL6180X est connecté sur le bus I2C de la UNO
Comment dialoguent la Méga et le UNO ?
Mais peut-être que ce n'est pas cela, un petit schéma m'aiderait à comprendre.
Bon, vous êtes arrivé à réaliser les fonctionnalités que vous vouliez, mais au prix d'un UNO supplémentaire (j'espère que votre trésorerie ne va pas en souffrir ) et d'une insatisfaction intellectuelle. C'est toujours frustrant.
Avez-vous essayé :
la RTC et le VL6180X sans le LCD,
le LCD et le VL6180X sans la RTC.
Non, j'y ai pensé mais je ne l'ai pas fait. De toutes façons, les 3 doivent fonctionner ensemble. La RTC et le LCD, c'est ok ça j'en suis sûr.
Je pense que le VL8160X gêne le fonctionnement des deux puisque j'ai eu des pb sur le LCD (caractères bizarres) et sur la RTC (modification de l'heure), simultanément ou soit l'un, soit l'autre.
Les "semblant " de datasheet joints aux modules ne sont pas fiables.
Il faut que tu utilises la "vraie" datasheet : celle du circuit intégré que tu télécharges uniquement sur le site de son fabricant.
Tous les autres endroits de téléchargement risquent de fournir des versions trop anciennes.
Oui mais le composant fonctionne en 3V (il y a un régulateur sur la carte que tu montres, un régulateur 2,8V manifestement) ce qui fait que l'interface I²C ne doit pas recevoir de signaux 5V. En plus, il semblerait qu'il y ait déjà des tirages au + sur la carte mais comme il doivent être tirés au +2,8V cela doit modifier le niveau électrique sur SDA et SCL pour les autres périphériques.
Je pensais que le régulateur 2.8V s'occupait d'alimenter le composant.
Je ne dois donc pas alimenter le Vin en 5V, en 3V3 ça irait ou je dois diminuer jusqu'à 2.7-2.9?
Ou je dois modifier quelque chose sur les liaisons SDA/SCL?
Essaye de tracer le schéma I2C :
Tous les transistors sont des collecteurs ouverts
Tous les collecteurs sont reliés ensemble à la résistance de charge (ou à l'équivalent de toutes les différentes résistances de chaque module qui se retrouvent en paralèlle)
En conséquence si tu as UN seul module alimenté en 5V TOUS les transistors SDA ou SCL seront reliés au 5V même ceux des modules 3,3V et cela se passe mal.
Il existe des circuits spécialisés qui assure le changement de référence de tension il faut en ajouter pour faire l'interfaçage des tensions d'alim.
PS : tu montrais la photo d'un module et non pas celle du circuit intégré, d'où ma remarque qui se voulait être qu'un simple conseil, pas la peine de prendre la mouche.
A priori, le régulateur ne sert qu'à alimenter le composant VL6180X.
I²C communication
The VL6180X can be configured and its distance and ambient light readings can be queried through the I²C bus. Level shifters on the I²C clock (SCL) and data (SDA) lines enable I²C communication with microcontrollers operating at the same voltage as VIN (2.7 V to 5.5 V). A detailed explanation of the I²C interface on the VL6180X can be found in its datasheet (2MB pdf), and more detailed information about I²C in general can be found in NXP’s I²C-bus specification (1MB pdf).
Le module semble prévu pour que l'I2C fonctionne avec la tension du Vin ou j'interprète mal la st ?
The I²C pins, SCL and SDA, are connected to built-in level-shifters that make them safe to use at voltages over 2.8 V; they should be connected to an I²C bus operating at the same logic level as VIN.
Donc oui c'est compatible avec des I/O en 5V.
Il y a des 10K connectées à Vin (+5V) donc le bus est déjà polarisé par ces résistances.
Sur le schéma qui ne fonctionne pas, le GND de la RTC n'est pas connecté.
Les fils jaune et vert allant au VL6180 X sont connectés à un emplacement de la Mega où il n'y a pas de broches ? Ils devraient être connectés en 20 et 21 comme le sont le SDA et SCL allant à la RTC et à l'écran.