Go Down

Topic: Mini Efis pour ULM: Probléme de gestion I2C (Read 1 time) previous topic - next topic

A_Chaillous

Bonjour,
Je suis en cours de finalisation d'un projet de mini EFIS pour ULM. Celui-ci comporte un altimétre, variométre, badin, horizon artificiel, bille, deux capteurs de température.
J'aimerais y ajouter une horloge avec un circuit RTC branché sur le port I2C en même temps que le MPU6050 (gyroscope). le problème suivant apparait lorsque je connecte le circuit RTC: l'horizon artificiel ne fonctionne plus!
Je suppose qu'il s'agit d'un soucis d'adressage de port I2C, j'ai donc fait un scann des ports I2C sur un circuit à part (arduino uno), du circuit RTC. voila ce que j'obtiens:
0x50
0x68
Lorsque je fais un scan avec seulement le MPU6050 sur mon mega:
0x68
0x77

lorsque je fais un scan avec les deux circuits ensemble:
0x50
0x68

je suis débutant dans la gestion des I2C et mes questions sont les suivantes:
A quoi correspondent ses deux adresse trouvées alors qu'il n'y a qu'un seul capteur de branché?
Les résistances de Pull-up sont-t-elles obligatoires lorsque l'on branche deux capteurs en I2C?
Est-ce-que le fait de déclarer les librairies des capteurs permet au circuit de différencier ces derniers?

J'ai essayé de trouver un tuto simple pour la gestion de deux capteurs en I2C sans succés!
Merci par avance
André

bricoleau

Ce que tu appelles "capteur" est une platine sur laquelle il peut y avoir plusieurs périphériques I2C, chacun répondant à sa propre adresse.

Par exemple, si tu utilises une platine tinyRTC, celle-ci contient un DS1307 qui répond à l'adresse 0x68 (non modifiable) et une eeprom qui répond à l'adresse 0x50. Ce sont les deux puces que tu peux voir soudées sur la platine.

Le problème est que le MPU6050 utilise aussi l'adresse 0x68, d'où conflit.
Certaines platines MPU6050 disposent d'un cavalier qui permet de changer l'adresse en 0x69.
Tutoriels arduino : http://forum.arduino.cc/index.php?topic=398112.0

3Sigma

Certaines platines MPU6050 disposent d'un cavalier qui permet de changer l'adresse en 0x69.
Et certaines sont configurées en dur pour fonctionner à l'adresse 0x69 (et sont Made in France):
http://www.drotek.com/shop/fr/home/42-mpu6050-gyro-accelerometre.html

A_Chaillous

Merci beaucoup pour ces infos. c'est effectivement plus clair.
Donc si je change mon capteur par un ayant une adresse en 0x69 plus de soucis!
A+

bricoleau

Certaines platines MPU6050 disposent d'un cavalier qui permet de changer l'adresse en 0x69.

Tutoriels arduino : http://forum.arduino.cc/index.php?topic=398112.0

A_Chaillous

J'ai vu qu'en mettant la pin AD0 sur high, l'adresse passait de 0x68 à 0x69. il s'agit de mettre la pin AD0 au 3,3V? J'ai trouvé un tuto en Anglais, mais je voudrais être sur.
A+

3Sigma

J'ai vu qu'en mettant la pin AD0 sur high, l'adresse passait de 0x68 à 0x69. il s'agit de mettre la pin AD0 au 3,3V?
Il faut mettre AD0 au 3.3V et (très important) couper le même AD0 de la masse, sinon c'est le court-circuit !

A_Chaillous

Meric pour cette réponse.
J'ai un nouveau soucis:
Je n'ai pas de AD0 sur ma carte MPU6050 !!
J'ai dans l'ordre: VCCIN, 3?3V,GND, SCL, SDA, FSYNC, INTA, DRDY

A votre avis laquelle correspond a AD0?
Merci de votre aide
André

3Sigma

A priori aucune, en général AD0 n'est pas accessible. Mais pour être sûr, as-tu un lien vers la doc de ta carte ?

A_Chaillous

Je pense que ma carte est en fait un GY87. Sur le MPU 6050 il ya une pin AD0 qui peut être reliée au 3,3 V afin de modifier l'adresse I2C de la carte.
QUID du GY 87?

3Sigma

Si je crois ça (http://www.thaieasyelec.com/downloads/ESEN245/GY87-MS-7.jpg), AD0 est branché à la masse "en dur" et il n'y a pas moyen de le changer sauf si tu es un pro du fer à souder.

A_Chaillous

effectivement cela semble compromis :(
Merci pour l'aide
A+

Go Up