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

[VHDL] Problème avec baudrate pour uart



  1. #1
    Astronomix

    [VHDL] Problème avec baudrate pour uart


    ------

    Bonjour,

    Je suis en train de programmer en vhdl un protocole uart pour mon github :
    https://github.com/NorianGuernine/UART-VHDL

    Malheureusement je bloque sur un problème qui me semble provenir du baudrate.

    Comme vous pouvez le voir dans mon fichier readme, en simulation pour un baudrate de 115200, tout semble fonctionner correctement avec la formule du calcul que j'ai écrite dans mon fichier readme pour le vecteur baudrate_clk_ticks et dont je trouve une valeur de 217.
    Le diviser par 4 vient du fait que dans mes process je n’exécute mon code que lors d'un rising edge.

    Maintenant j'essaye de programmer une demo en réel sauf que je n'arrive pas à lire mes données avec putty, en cherchant d'ou venait le problème, j'ai modifié la valeur de baudrate_clk_ticks par 432 (j'ai enlevé le /4 de ma formule) et la j'arrive à lire avec putty le caractère que j'envoi mais j'ai aussi une sorte de donnée illisible pour putty qui apparaît sur mon terminal.
    De part ce constat, j'en déduit que mon problème vient du calcul de mon baudrate mais je ne comprend pas pourquoi.
    Je précise que ma clock réel est de 100MHz et que j'ai utilisé une periode de 10ns dans mes simus donc normalement la valeur de baudrate_clk_ticks devrait être identique.

    Pourriez vous m'aider s'il vous plait ?

    -----

  2. Publicité
  3. #2
    Astronomix

    Re : [VHDL] Problème avec baudrate pour uart

    Bonjour,
    Je crois que j'ai trouvé, la clock de ma board est de 100MHz or j'ai fait mes simulations avec pour ma clock un état haut de 10ns et un état bas de 10ns donc ce n'est pas bon, cela me fait une clock de 50Mhz.
    Mon calcul pour la clock du baudrate avec mon /4 n'est pas bon non plus, il faut seulement que je divise par 2 pour avoir la bonne clock avec mon systeme de rising edge sur mes process.

    Je n'ai pas encore pu tester, j'essayerai ce soir mais en tout cas ça colle avec mes observations d'hier

  4. #3
    jiherve

    Re : [VHDL] Problème avec baudrate pour uart

    bonjour
    pas trop compris mais ton histoire de /4 n'a rien à voir avec le fait que tu utilises "rising edge" ce qui n'indique qu'un process synchrone; Comme c'est un UART il est plus probable qu'il y a un ou des process tournants à Baudrate*4 pour assurer la capture du flux entrant.
    JR
    l'électronique c'est pas du vaudou!

  5. #4
    Astronomix

    Re : [VHDL] Problème avec baudrate pour uart

    Bonjour,
    Merci pour votre aide.
    Je n'ai pas encore eu le temps de tester en réel mon composant RX mais je vais le modifier comme vous me l'avez conseillé avant de le tester.
    Je suis désolé si je n'ai pas été très claire dans mon message précédent.
    Je voulais dire que je me suis trompé dans mon calcul du baudrate, compte tenu de mon code, le calcul de la durée d'un bit n'est pas clockfrequency/baudrate/4 mais clockfrequency/baudrate/2 .
    En faisant cette modification mon programme fonctionne.

    Merci encore pour vos conseils

  6. A voir en vidéo sur Futura

Discussions similaires

  1. [Programmation] Problème calcul mathématiques avec et sans UART
    Par SportsEngine dans le forum Électronique
    Réponses: 8
    Dernier message: 11/05/2017, 22h53
  2. [Programmation] probléme d'uart avec pic 18f6620
    Par abir93 dans le forum Électronique
    Réponses: 0
    Dernier message: 24/04/2016, 18h14
  3. [Programmation] Problème en VHDL avec les multi fichiers vhdl
    Par drbug dans le forum Électronique
    Réponses: 2
    Dernier message: 02/02/2016, 11h32
  4. problème avec spi uart pic 16f4500
    Par zetaa dans le forum Électronique
    Réponses: 4
    Dernier message: 13/08/2015, 08h40
  5. Probléme avec le convertisseur UART/USB MCP2200
    Par Tevz dans le forum Électronique
    Réponses: 0
    Dernier message: 18/02/2011, 17h45
Découvrez nos comparatifs produits sur l'informatique et les technologies.