Autor Tema: Dudas con la USART  (Leído 2930 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado armador

  • PIC10
  • *
  • Mensajes: 8
Dudas con la USART
« en: 17 de Febrero de 2011, 08:12:07 »
¡Hola! ¿Qué tal? Soy nuevo por el foro y supongo que como muchos empiezo tema nuevo con dudas que tengo.  :D
Espero que podais ayudarme con esto.

Tengo un proyecto entre manos en el que tengo que usar la USART de un pic. De momento, estoy programándolo con un PIC16F628A, aunque quizás esto cambie, pero bueno, no viene al caso. Estoy utilizando MPLAB para llevarlo a cabo. La cuestión es que no tengo mucha experienza utilizando USART ni nada por el estilo y tengo algunas dudas al respecto.

Cuando quiero simular el programa utilizando el MPLAB SIM, no hay forma de que el programa salga del bucle de interrupción de fin de transmisión:

Código: [Seleccionar]
ESPERAR
banksel PIR1
btfss PIR1,TXIF ; Para comprobar el fin de la transmisión
goto ESPERAR


Después quería preguntar si se puede simular una comunicación USART utilizando Proteus.

Muchas gracias de antemano!

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Dudas con la USART
« Respuesta #1 en: 17 de Febrero de 2011, 12:32:26 »
Busca en el foro como simular UART con MPLAB, LeonPIC dejo algo al respecto.

Y si, en proteus se puede simular.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado armador

  • PIC10
  • *
  • Mensajes: 8
Re: Dudas con la USART
« Respuesta #2 en: 17 de Febrero de 2011, 13:17:00 »
Busca en el foro como simular UART con MPLAB, LeonPIC dejo algo al respecto.

Y si, en proteus se puede simular.


Saludos!

Muy buenas!!!

Pues he encontrado ese post y bueno, básicamente un código muy parecido a lo que yo ya tenía, pero de todas formas, aun modificando el código para acoplarlo perfectamente cuando simulo con MPLAB SIM, se queda "enganchado" en ese bucle de interrupción...puede que sea cosa del simulador (todavía no tengo el PIC y no puedo programarlo).

De todas formas, me temo que no será cuestión únicamente del simulador porque al intentar implementar el circuito en Proteus tampoco consigo llegar a buen puerto...

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Dudas con la USART
« Respuesta #3 en: 17 de Febrero de 2011, 13:42:25 »
Ese bit se va a colocar a 1 lógico cuando se reciba el bit stop en la comunicación. Si el módulo está encendido y bien configurado, esto ocurre. Coloca lo demás.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado armador

  • PIC10
  • *
  • Mensajes: 8
Re: Dudas con la USART
« Respuesta #4 en: 17 de Febrero de 2011, 15:34:01 »
Ese bit se va a colocar a 1 lógico cuando se reciba el bit stop en la comunicación. Si el módulo está encendido y bien configurado, esto ocurre. Coloca lo demás.


Saludos!

Bueno, probaré alguna cosa más y si no esperaré a tener el circuito montado y ver qé ocurre entonces.

Desconectado c@Lic_0

  • PIC10
  • *
  • Mensajes: 36
    • Una tasita de cafe
Re: Dudas con la USART
« Respuesta #5 en: 19 de Febrero de 2011, 11:50:07 »
Bueno mas que darte la solucion a tu problema sera una aclaracion :D :D :D, esto puede ayudarte posteriormente

Citar

Código:
ESPERAR
   banksel PIR1
   btfss    PIR1,TXIF    ; Para comprobar el fin de la transmisión
   goto   ESPERAR


Al preguntar btfss PIR1,TXIF no estas verificando si la trasmision a finalizado, lo que haces es verificar que el dato(llamemoslo DATA1) que pusiste en TXREG pase al registro de desplazamiento(el cual hace la trasmision del dato) :-/ :-/ :-/, y por ende tu registro TXREG queda vacio para que puedas colocar otro dato(esto no quiere decir que ya se trasmitio el dato que pusiste anteriormente, me refiero al DATA1) :mrgreen: :mrgreen: :mrgreen:
Te dejo una grafica en adjuntos

PD: el grafico es de notas de aplicacion, concretamente la AN774

Desconectado armador

  • PIC10
  • *
  • Mensajes: 8
Re: Dudas con la USART
« Respuesta #6 en: 21 de Febrero de 2011, 07:41:57 »
Bueno mas que darte la solucion a tu problema sera una aclaracion :D :D :D, esto puede ayudarte posteriormente

Citar

Código:
ESPERAR
   banksel PIR1
   btfss    PIR1,TXIF    ; Para comprobar el fin de la transmisión
   goto   ESPERAR


Al preguntar btfss PIR1,TXIF no estas verificando si la trasmision a finalizado, lo que haces es verificar que el dato(llamemoslo DATA1) que pusiste en TXREG pase al registro de desplazamiento(el cual hace la trasmision del dato) :-/ :-/ :-/, y por ende tu registro TXREG queda vacio para que puedas colocar otro dato(esto no quiere decir que ya se trasmitio el dato que pusiste anteriormente, me refiero al DATA1) :mrgreen: :mrgreen: :mrgreen:
Te dejo una grafica en adjuntos

PD: el grafico es de notas de aplicacion, concretamente la AN774

Entiendo, gracias por la explicación. Más que fin de la transmisión, sería fin de la programación referente a la transmisión, ¿no?

Desconectado armador

  • PIC10
  • *
  • Mensajes: 8
Re: Dudas con la USART
« Respuesta #7 en: 18 de Abril de 2011, 13:36:56 »
Bueno, después de haber dejado un poco abandonado el asunto por diversos motivos he vuelto recientemente a ello y he hecho algunas modificaciones en el código con lo que creo que ya está bien, ahora toca programar y ver si realmente funciona!

Sin embargo, creo que no será así, ya que haciendo la simulación en Proteus, no hay forma de obtener ninguna señal...

Desconectado armador

  • PIC10
  • *
  • Mensajes: 8
Re: Dudas con la USART
« Respuesta #8 en: 18 de Abril de 2011, 14:26:23 »
El problema que tengo con Proteus es que al usar el Virtual Terminal, envía lo que envíe recibo 00, 02, 04, dependiendo que entrada active.

« Última modificación: 18 de Abril de 2011, 15:32:31 por armador »


 

anything