Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

bus i2c ou UART et RTC



  1. #1
    Voltron

    bus i2c ou UART et RTC

    Bonsoir,

    je travaille sur un petit projet scolaire ou je dois faire communiquer 4 pic en mode 1 maitre-3 esclaves, les données transférés seront des trames contenant 2 ou 3 octets de data (selon le pic esclave),

    maitre : 16F877
    esclaves : 3x 16f876

    les 3 pics esclaves ne sont pas sur la même carte que le pic maitre (en effet, le premier est a quelques centimètres, le deuxième a 25cm et le 3eme est a a peu prés 3 mètres avec un risque de présence d´un léger parasite du a une machine a cote), ma question est :est ce qu´un bus i2c peut les faire communiquer sans perte dans ces conditions ?

    on m´a dit que ca sera mieux avec l´RS232 (mais la il va y avoir un chantier pour utiliser 3 UART soft en meme temps ou bien garder le hard et utiliser un genre de Quad x-STATE Buffer (74ls125) pour multiplexer les entrer RX et TX ), au fait, est ce quelqu´un a déjà essayé ça ? , ou bien l´RS485.

    je pense aussi mettre un horloge temps réel ,j´ai lu quelque part sur ce forum que les RTC ont des interface I2C, comment faire pour la raccorder a mon pic maitre (4eme esclave ???)

    merci d´avance d´éclairer ma lanterne.

    -----


  2. Publicité
  3. #2
    Gérard

    Re : bus i2c ou UART et RTC

    Bonjour,
    Pour autant de composants, je dirais I2C.
    3 m c'est long, mais il existe des amplis (drivers) pour prolonger le bus. Je n'ai pas de ref en tête.

    Pour la RTC en I2C, c'est pareil que les autre composants, chacun son adresse.

  4. #3
    microchip

    Re : bus i2c ou UART et RTC

    Bonsoir,

    Pas de problème si tu utilises les USARTS pour interconnecter tes PICs à condition d'utiliser le mode 9 bits.
    Ce mode spécial a justement été prévu pour faire des petits réseaux avec les PICs.
    Dans ce mode 9 bits, l'adresse de l'esclave auquel le maître veut parler est transmise. Chaque esclave vérifie si c'est son adresse et se met à l'écoute.
    Les autres attendent la prochaine trame.
    Il te suffit de décider de ton petit protocole (combien d'octets fait chaque trame) et de cette manière tu peux utiliser la RS232 en mode réseau.

    Je te déconseille complètement l'I2C qui n'est pas du tout prévu pour autrechose que des liaisons sur un circuit imprimé, même s'il existe des drivers spéciaux pour "booster" les signaux.
    Dernière modification par microchip ; 12/11/2008 à 21h34. Motif: correction
    Here to help ;=)

  5. #4
    Voltron

    Re : bus i2c ou UART et RTC

    Bonjour Gérard et microchip,

    merci de m'avoir répondu


    Citation Envoyé par Gérard Voir le message
    Bonjour,
    Pour autant de composants, je dirais I2C.
    3 m c'est long, mais il existe des amplis (drivers) pour prolonger le bus. Je n'ai pas de ref en tête.

    Pour la RTC en I2C, c'est pareil que les autre composants, chacun son adresse.

    j'ai fait une petite recherche sur le net et je ne suis tombé que sur des RTC en i2C (Dallas entre autres) , existe-t-il des RTC utilisant un autre bus/protocole ??
    je pose cette question car il me semble qu'une RTC serait mieux en seule esclave p/p au PIC maitre vu que sa lecture est périodique et assez fréquente ?? , si on ajoute un périphérique (un autre esclave) qui partage son bus i2c cela risquerait d'avoir des conséquences sur la gestion du temps du PIC maitre ?

    me tromperais-je ?

    Citation Envoyé par microchip Voir le message
    Bonsoir,

    Pas de problème si tu utilises les USARTS pour interconnecter tes PICs à condition d'utiliser le mode 9 bits.
    Ce mode spécial a justement été prévu pour faire des petits réseaux avec les PICs.
    Dans ce mode 9 bits, l'adresse de l'esclave auquel le maître veut parler est transmise. Chaque esclave vérifie si c'est son adresse et se met à l'écoute.
    Les autres attendent la prochaine trame.
    Il te suffit de décider de ton petit protocole (combien d'octets fait chaque trame) et de cette manière tu peux utiliser la RS232 en mode réseau.

    Je te déconseille complètement l'I2C qui n'est pas du tout prévu pour autrechose que des liaisons sur un circuit imprimé, même s'il existe des drivers spéciaux pour "booster" les signaux.
    j´ai déjà écrit un protocole entre deux USART, avec envoie de deux ou 3 octet comme data et un STX ='<' au début et ETX='>' pour marquer respectivement le début et la fin de la trame.

    lors de la configuration, j´ai pas spécifier le nombre de bits (ça devrait être 8 bits par défaut):

    Code:
    #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
    , Si j'utilise ce 9ieme bit comme adresse de l´esclave , est ce que je peut connecter tout les RX et TX des esclaves au RX et TX du maitre (comme un vrai bus) , la communication sera-t-elle en full duplexe ??

    on m'a dit que l´RS232 n´est pas prévu pour les réseaux , mais c´est plutôt l´RS485,quel avantage/inconvénient p/p a ce dernier ?

  6. #5
    Gérard

    Re : bus i2c ou UART et RTC

    Citation Envoyé par microchip Voir le message
    Bonsoir,

    .....

    Je te déconseille complètement l'I2C qui n'est pas du tout prévu pour autrechose que des liaisons sur un circuit imprimé, même s'il existe des drivers spéciaux pour "booster" les signaux.
    Ceci n'est pas mon avis, le bus I2C est tout à fait capable de résoudre ce problème.

    Pourquoi les drivers auraient été inventés si ce n'est pour augmenter la distance ?

  7. A voir en vidéo sur Futura
  8. #6
    HULK28

    Re : bus i2c ou UART et RTC

    Salut à tous,

    comme le dis Microchip l'I2C est à la base prévu pour des interconnections courtes même si le P82B715 permet d'étendre les liaisons il faut se méfier de l'usage qui en est fait.
    Pour faire des liaisons en milieu "bruités" c'est une fausse bonne solution car ce bus n'est pas différentiel comme peu l'être le RS485 plus adapté à ce type de chose.
    Si c'est pour des transmissions sensibles je le déconseille vivement aussi, si c'est pour récupérer l'heure on peut faire une dizaine de transferts de données et comparer les différentes transmissions pour vérifier si c'est concordant.
    Le problème de l'I2C est qu'il manque cruellement de contrôle (pas de bits de contrôles, parité ou autres "checksum") et le rend très vulnérable aux parasites de lignes.
    Il est très facile de faire planter une liaison I2C de quelques mètres.
    @+

  9. Publicité
  10. #7
    Voltron

    Re : bus i2c ou UART et RTC

    Bonjour,

    merci beaucoup a tous les participants, vous m'avez bien aidée a me décider , je voudrais simplement ajouter que l'RTC sera placée sur la même carte que le PIC (maitre) qui en fera usage (donc y aura pas de problème avec l'i2c si le milieu n'est pas perturbé).

  11. #8
    Voltron

    Re : bus i2c ou UART et RTC

    Citation Envoyé par Voltron Voir le message
    j'ai fait une petite recherche sur le net et je ne suis tombé que sur des RTC en i2C (Dallas entre autres) , existe-t-il des RTC utilisant un autre bus/protocole ??
    je pose cette question car il me semble qu'une RTC serait mieux en seule esclave p/p au PIC maitre vu que sa lecture est périodique et assez fréquente ?? , si on ajoute un périphérique (un autre esclave) qui partage son bus i2c cela risquerait d'avoir des conséquences sur la gestion du temps du PIC maitre ?
    bonjour,

    si cela peut intéresser quelqu'un , j'ai trouvé une RTC (Dallas, a croire qu'il n'y a que cette marque sur le marché ) avec liaison SPI:

    Interfacing an SPI-Interface RTC with a PIC Microcontroller

    DS1305 Serial Alarm Real-Time Clock

Sur le même thème :

Discussions similaires

  1. Espionner le bus I2C
    Par Slimounet45 dans le forum Électronique
    Réponses: 12
    Dernier message: 20/05/2011, 17h48
  2. bus I2C
    Par Maje dans le forum Électronique
    Réponses: 2
    Dernier message: 29/06/2008, 23h28
  3. Bus I2C
    Par Eleomir dans le forum Électronique
    Réponses: 15
    Dernier message: 15/04/2007, 10h58
  4. Alimentation RTC I2C
    Par Toufinet dans le forum Électronique
    Réponses: 2
    Dernier message: 24/01/2007, 20h58
  5. Bus I2c
    Par chrichri51 dans le forum Électronique
    Réponses: 6
    Dernier message: 30/10/2005, 13h53