I2C multi-maître
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

I2C multi-maître



  1. #1
    invite5e9b0d45

    I2C multi-maître


    ------

    Bonjour à tous,

    J'utilise un bus I2C sur lequel se présente 3 PICs (18F4520 et 18F2520, suivant les besoins).

    Ils sont utilisés de la manière suivante :
    • ManagerBoard : MASTER
    • RFID Module : MASTER
    • UserInterface : SLAVE

    Le mode multi-maître semble fonctionner correctement ("ManagerBoard" et "RFID Module" envoient chacun leurs informations à "UserInterface", sans problème).
    Cependant, j'aimerai qu'à certains moments, le "RFID Module" envoie des données à la "ManagerBoard" (pour signaler qu'une donnée a été modifiée en local).

    J'agis donc de la manière suivante :
    • Lorsque la "ManagerBoard" n'envoie rien, elle passe en mode SLAVE (avant de repasser en MASTER pour envoyer des informations à nouveau)
    • Lorsque le "RFID Module" veut envoyer une donnée, il regarde si le bus est libre
    • Les réceptions esclaves sont gérées par des interruptions

    Ce système fonctionne (passage de MASTER à SLAVE sans soucis)... jusqu'au moment où le "RFID Module" envoie des données à la "Manager Board", d'où mes questions :
    • Est-il possible d'avoir un MASTER qui passe en SLAVE pour recevoir des données avant de repasser en MASTER ?
    • Si oui, qu'est-ce qui ne fonctionne pas dans la logique de ma programmation ?


    Merci d'avance,

    Masahiro

    -----

  2. #2
    invite5e9b0d45

    Re : I2C multi-maître

    Bonjour,

    Bonne nouvelle (en tout cas pour moi ^_^). Ça semble fonctionner !

    À force de persévérance, je me suis rendu compte que la "ManagerBoard" bloquait sur un test de condition. Je testais que le bus I2C était inactif
    Code:
    while ( ( SSPCON2 & 0x1F ) | ( SSPSTATbits.R_W ) )
    avant de désactiver le mode esclave. Depuis que j'ai commenté cette ligne, cela fonctionne. Bizarrement (?) je pensais être obligé de tester qu'elle ne recevait rien d'un maître extérieur avant de désactiver le mode esclave.

    J'aimerais tout de même une confirmation avant de continuer : peux-t-on utiliser ce mode (maître qui envoie des données à un autre maître) sans trop interférer sur le fonctionnement du bus I2C ?

Discussions similaires

  1. Transaction I2C entre deux pics 18f4550 (maître-esclave)
    Par lynal1 dans le forum Électronique
    Réponses: 9
    Dernier message: 12/04/2011, 15h17
  2. Liaison I2C entre deux PIC (Maître -Esclace)
    Par invite0c16129b dans le forum Électronique
    Réponses: 3
    Dernier message: 14/04/2010, 17h38
  3. I2C : mode maitre en software ( PIC16F87 )
    Par Toufinet dans le forum Électronique
    Réponses: 15
    Dernier message: 13/04/2008, 19h57
  4. Multi-prise maitre-esclave qui ne coupe pas?
    Par invite0345d784 dans le forum Dépannage
    Réponses: 1
    Dernier message: 10/04/2007, 19h31
  5. PIC18F452 - Maître-esclave I2c
    Par invitee1362fea dans le forum Électronique
    Réponses: 17
    Dernier message: 06/02/2007, 21h18
Découvrez nos comparatifs produits sur l'informatique et les technologies.