Communication I2C :un Master et 6 slaves
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Communication I2C :un Master et 6 slaves



  1. #1
    invite70684c77

    Communication I2C :un Master et 6 slaves


    ------

    Bonjour à Tous,

    Mon projet consiste en une communication entre un Master (PIC 16F876) et 5 Slaves (un RTC : DS1307 et 4 PIC16F876) suivant le protocole I2C: le Master récupère l'heure,minute et jour du DS1307 puis il les communique au 4 PIC pour qui'ils affichent l'heure et minute sur des afficheurs 7 segment construit avec des LED. Le Master et le DS1307 sont montée sur la même carte alors que les autres sont chacun sur une carte, lié par des fils souples de longueur de 70 cm (SDA et SCL) avec 2 résistances de Pull Up de 10K Chacune avec la carte de Master, la fréquence est de 100 Khz qui est imposée par le DS1307.

    Mon Problème est :
    1- J'ai constaté parfois que la Master n'arrivent pas à communiquer avec un ou 2 Slaves : Est-ce le problème est dû aux résistance de Pull Up(Je sais pas comment les calculer) ou bien à la longueur des fils( capacité je la connais pas) ou bien à d'autres choses car sur ISIS la simulation passe très bien (le Master communique avec tous les slaves sans exception).
    2- Juste pour confirmation : Hier j'ai remarqué que le Master n'arrive pas à communiquer avec aucun Slave même avec le DS1307 (qui est monté sur la même carte avec le Master) et lorsque j'ai vérifié j'ai trouvé qu'un fil SDA d'un seul slave est en mauvais contact (mauvaise soudure): est ce céla peut causer un arrêt complet de communication ? par ce que lorsque j'ai refait la soudure, la communication reprenne sauf pour un seul Slave.

    3- Quelle est la capacité d'un PIC en communication I2C (j'ai pas trouvé ça sur le DataSheet) , car on sait que la capacité max d'une communication I2C est de 400pf.

    Merci à tous le monde et bonne journée.

    -----

  2. #2
    Jack
    Modérateur

    Re : Communication I2C :un Master et 6 slaves

    La première chose que je ferais, c'est de mettre un scope pour observer l'allure des signaux.

    Si les trames ont l'air sympathiques, il faut se pencher sur le soft.

    A+

  3. #3
    polf

    Re : Communication I2C :un Master et 6 slaves

    bonjour,
    C'est intéressant ce projet
    1- Ca semble être un problème d'adaptation de ligne. A 100 kHz (freq std I2C) et 70 cm n'importe quelle nappe du commerce est OK. J'ai fait tourner un bus proche de I2C à 40 MHz sur 30m et ça marchait.
    Comme le principe de l'I2C est que les interfaces sur SDA et SCL sont des collecteurs ouverts, les résistances de pull-up sont là pour fournir le courant et établir le niveau 1 au repos. Elles ne servent pas à adapter la ligne, sinon il en faudrait une seule paire de 50 ohms environ à chaque extrémité de ligne. Mais ça ne marcherait pas car les interfaces ne peuvent probablement pas tirer tout ce courant.
    S'il y a bien des rebonds sur la ligne, on peut les soigner en lissant les fronts SDA et SCL en mettant une petite capa (t=RC) de 100pF (pour t=1us et R=10k) en parallèle avec une seule des résistances de pull-up à chaque extrémité (2 capas en tout).

    2- Faut croire que oui ! Si l'esclave croit qu'il est sollicité parce qu'il voit SDA à 0 (actif), ou s'il y a des glitches sur SDA (faux start bit ou stop bit) le système peut se planter.

    3- oui avec 400 pf on retarde les fronts de t=RC donc 4 us soit 40% d'un cycle SCL. 2x100pf me parait un bon compromis. Ca ne dépend pas de l'interface I2C donc c'est pas sur la datasheet.

    Bonne journée

  4. #4
    invite70684c77

    Re : Communication I2C :un Master et 6 slaves

    Bonjour,


    Merci Jack et polf pour vos interventions.

    -Jack : J'ai pas de scope à la maison, et Le problème est probablement du Hard et non du Soft car sur ISIS la simulation tourne très bien et je vois le bon déroulement de signaux avec I2C Analyser de ISIS.

    -polf : Je vais essayer avec le 2*100 pf .

    Donc je change pas les résitances de 10k ? car sur le web je vois pas mal des gens qui recommandent de 2.2k ou 4.7k ?

    Merci à vous et bonne après Midi.

  5. A voir en vidéo sur Futura
  6. #5
    Jack
    Modérateur

    Re : Communication I2C :un Master et 6 slaves

    J'ai pas de scope à la maison, et Le problème est probablement du Hard et non du Soft car sur ISIS la simulation tourne très bien et je vois le bon déroulement de signaux avec I2C Analyser de ISIS.
    La simulation, c'est bien pour débroussailler le chemin, mais ca ne prouve rien.
    Donc je change pas les résitances de 10k ? car sur le web je vois pas mal des gens qui recommandent de 2.2k ou 4.7k ?
    Ca ne coute rien d'essayer.

    A+

  7. #6
    polf

    Re : Communication I2C :un Master et 6 slaves

    Je ne pense pas que changer les résistances changerait quoi que ce soit. On est trop loin des valeurs d'adaptation (~50 ohms). Ca changerait juste le courant tiré, et avec 5 interfaces c'est déjà équivalent à une résistance unique de 2k.

  8. #7
    Jack
    Modérateur

    Re : Communication I2C :un Master et 6 slaves

    Citation Envoyé par polf Voir le message
    Je ne pense pas que changer les résistances changerait quoi que ce soit. On est trop loin des valeurs d'adaptation (~50 ohms). Ca changerait juste le courant tiré, et avec 5 interfaces c'est déjà équivalent à une résistance unique de 2k.
    Les spécifications du bus I2C donnent en mode standard, donc 100kHz, une résistance mini de 2kohms pour une alim de 5V. Donc ok de ce côté.

    En revanche, pour la résistance maxi, celle-ci est limitée par la capacité de la ligne. Pour 150pF, Rmax est de 5 kohm, donc avec 10k, on n'est sur de rien. Etant donné le nombre de circuits connectés, la charge capacitive sera loin d'être négligeable.

    A+

  9. #8
    RISC

    Re : Communication I2C :un Master et 6 slaves

    Salut,

    Je pense dans le cas présent qu'il faut faire très attention au calcul des résistances.
    Pour cela, autant se reporter à la spécification originale de l'I2C , voir section 16.1

    a+

  10. #9
    Jack
    Modérateur

    Re : Communication I2C :un Master et 6 slaves

    Nous avons les mêmes sources

    Tu as bien fait de donner le lien.

    A+

  11. #10
    invite70684c77

    Re : Communication I2C :un Master et 6 slaves

    Bonjour,

    Un grand Bravo à vous tous, Hier j'ai juste changé les résistances de pull up de 10k par d'autres 2.2 k et voilà le tout a tourné immédiatement et d'une façon impécable et parfaite.

    Encore une autre fois un grand Merci à vous tous.

    Bonne journée.

Discussions similaires

  1. Communication I2C : Master & 5 Slaves
    Par invite70684c77 dans le forum Électronique
    Réponses: 6
    Dernier message: 21/08/2009, 09h26
  2. communication I2c pic 16F88
    Par guillaumovitch dans le forum Électronique
    Réponses: 0
    Dernier message: 22/04/2009, 12h47
  3. Problème de communication I2C
    Par todd_terry dans le forum Électronique
    Réponses: 7
    Dernier message: 02/05/2008, 19h54
  4. USART 1 Master pour 6 Slaves?
    Par vinowan dans le forum Électronique
    Réponses: 8
    Dernier message: 06/03/2008, 12h40
  5. communication i2c entre deux pics
    Par invite45c27900 dans le forum Électronique
    Réponses: 2
    Dernier message: 02/11/2007, 22h56
Découvrez nos comparatifs produits sur l'informatique et les technologies.