USART pic 16F877A
Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

USART pic 16F877A



  1. #1
    ben1015

    USART pic 16F877A


    ------

    Bonjour,

    Je programme en C (CCS) un pic 16F877A et j'ai plusieurs question au niveau de la liaison série. J'ai vu que je pouvais mettre en sortie (TX) n'importe quel PIN alors qu'il y a une broche RC6 (TX), quel est l'intéret d'utiliser une autre broche? Ensuite quand j'utilise la broche RC6 et que je met dans la config deux bits de stop,j'en ai qu'un. Par contre quand j'utilise la broche RB0 par exemple et que je configure deux bits de stop, j'ai bien les deux. Quel est l'explication possible?

    Merci d'avance

    -----

  2. #2
    invited3dcf66c

    Re : USART pic 16F877A

    Salut,
    Je n'ai pas lu la doc du compilateur mais il y a deux possibilités:
    - Soit il faut que tu renseignes la broche TX sous peine que cela ne marche pas,
    - Soit la bibliothèque USART de ton compilateur est capable de gérer l'USART en soft. Donc si tu renseignes la pin TX ça va utiliser le module hardware, si tu renseignes une autre pin ça va gérer ça en software. Dans ce cas, si tu n'utilises qu'un USART, utilises les pins dédiées et le module USART hardware, ce sera plus performant.

  3. #3
    ben1015

    Re : USART pic 16F877A

    Okay, Merci pour cette explication.

    Personne n'a d'idée pour mes bits de stop?

  4. #4
    Seb.26

    Re : USART pic 16F877A

    Citation Envoyé par ben1015 Voir le message
    Okay, Merci pour cette explication.
    Personne n'a d'idée pour mes bits de stop?
    Ton PIC sait il faire 2 bits de stop en hard ? (voir la datasheet...)

    ... si tu veux 2 bits de stop, il va peut être falloir tricher un peu et utiliser la transmission 9bits ...
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  5. A voir en vidéo sur Futura
  6. #5
    ben1015

    Re : USART pic 16F877A

    Effectivement mon pic ne génère pas deux bits de stop en hard, la solution est bien l'ajout d'un bit de données.
    Sinon une autre question, dans le compilateur je met "baud=" pour définir la vitesse, si je met "baud=250000" est-ce que j'aurai bien une liaison à 250 Kbits par seconde? Quel est la différence entre baud et bits par seconde dans une liaison série?

    Merci

  7. #6
    ben1015

    Re : USART pic 16F877A

    Bonsoir,

    Pour la solution du neuvième bits, qui devra simuler un autre bit de stop, toutes mes variables sont sur 8 bits, je suis obligé de toutes les passées sur 16 bits pour pouvoir avoir mon bit de stop supplémentaire?
    Y'a t-il une astuce? Car si l'unique solution est de passé toutes mes variables sur 16 bits, cela double la mémoire.

    Merci d'avance

  8. #7
    invite5725992d

    Re : USART pic 16F877A

    Salut,

    Citation Envoyé par ben1015
    Sinon une autre question, dans le compilateur je met "baud=" pour définir la vitesse, si je met "baud=250000" est-ce que j'aurai bien une liaison à 250 Kbits par seconde?
    Oui

    Citation Envoyé par ben1015
    Quel est la différence entre baud et bits par seconde dans une liaison série
    Aucune

  9. #8
    Seb.26

    Re : USART pic 16F877A

    Citation Envoyé par ben1015 Voir le message
    Pour la solution du neuvième bits, qui devra simuler un autre bit de stop, toutes mes variables sont sur 8 bits, je suis obligé de toutes les passées sur 16 bits pour pouvoir avoir mon bit de stop supplémentaire?
    Heu ...

    C'est quoi le rapport ?!!

    Au lieu d'envoyer 1b_Start + 8b_Data + 1b_Stop

    tu vas envoyer 1b_Start + 9b_Data + 1b_Stop

    Mais le 9ème bit de Data sera toujours à 0 pour simuler le 2ème bits de Stop (le premier en fait : le second sera le "vrai" 1er bit de stop ... )
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  10. #9
    ben1015

    Re : USART pic 16F877A

    Bonjour,

    Le bit de stop doit être à un niveau logique 1, et vu que mes variables envoyées sont codées sur 8 bits, je ne vois pas comment mettre le neuvième bit à 1, vu que je "donne" à la liaison uniquement 8 bits.
    Désolé si cela n'est pas très clair, si oui dit moi le, j'essaierai de formuler ma question autrement.

    Merci

  11. #10
    ben1015

    Re : USART pic 16F877A

    C'est bon j'ai trouvé!
    Tout d'abord il faut préciser dans la déclaration de la liaison que l'on utilise des données sur 9 bits (longdata).
    Code:
    #use rs232(baud=250000,rcv=PIN_C7,xmit=PIN_C6,bits=9,parity=N,LONG_DATA)
    Ensuite quand j'envoie ma donnée, j'ajoute 256 à la vrai valeur pour pouvoir créer mon bit de stop supplémentaire.
    Code:
    putc((b[0]+256));
    Merci à vous deux!

  12. #11
    invite5725992d

    Re : USART pic 16F877A

    Citation Envoyé par pseudoguyanais Voir le message
    Aucune
    Oups on dirait que je suis allé un peu vite. En fait oui il y a une petite différence, même si dans ton application en particulier je ne pense pas qu'il y en ai. Regarde ce lien, il y a une bonne explication :
    http://www.tech-faq.com/difference-b...baud-rate.html

    En gros le baud rate c'est l'envoie par seconde d'un paquet si tu veux ce paquet peut être fait de bits si tu dis qu'un paquet = un bit tu retombe sur du bits par seconde.

    Voilà

  13. #12
    Seb.26

    Re : USART pic 16F877A

    Lis la datsheet ( le chapitre sur l'UART )

    Tout ce que tu as à faire, c'est de mettre le 9ème bit à 1, puis écrire comme avant dans TXREG tes 8b de donnée ...

    Et évidement, il faut dire à l'UART que tu veux envoyer 9bits, elle peut pas le deviner ...

    (... pense aussi à la réception ... )
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

Discussions similaires

  1. usart pic
    Par coeur noire dans le forum Électronique
    Réponses: 2
    Dernier message: 21/07/2010, 13h52
  2. Usart<-----> pic
    Par invite03f050fe dans le forum Électronique
    Réponses: 0
    Dernier message: 26/07/2009, 14h46
  3. pic 16F877A
    Par invite636b8579 dans le forum Électronique
    Réponses: 22
    Dernier message: 01/04/2009, 16h00
  4. USART pic
    Par invitecb49b6c0 dans le forum Électronique
    Réponses: 5
    Dernier message: 04/08/2008, 17h47
  5. USART sur PIC
    Par invite820b5138 dans le forum Électronique
    Réponses: 6
    Dernier message: 23/04/2007, 08h39
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...