Autor Tema: UART física o virtual  (Leído 3264 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jfmateos2

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3145
UART física o virtual
« en: 06 de Febrero de 2007, 15:50:41 »
Hola. No entiendo cuál es la diferencia entre que un PIC tenga UART física o virtual. Yo programa en PBP; imagino que para los que lo hacen en Assembler sí tiene importancia pero ¿y para mí? Alguien me lo puede explicar. Muchas gracias.

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: UART física o virtual
« Respuesta #1 en: 06 de Febrero de 2007, 16:26:43 »
jfmateos2:

A la hora de escribir tu código en PBP, en C, o en lenguaje para un compilador que sea capaz de detectar que los pines que estás usando en tu código corresponden o no a los de la USART del PIC para el que estás compilando:

La diferencia es Ninguna.

Tu escribes tu programa y listo, el compilador se encarga de los demás.

A la hora de ejecutar tu programa compilado en un PIC en el que usas la USART por un método o por otro :

La diferencia es Mucha.

La USART hace lo que tiene que hacer, enviar o recibir, sin necesidad de hacer uso de ningún programa almacenado en el PIC, es lo que se dice "por hardware". Si tu programa usa la USART y quieres escribir algo para que salga por ella, a la velocidad adecuada, y con todas las bendiciones de una comunicación como Dios manda, escribes tu dato en un registro del PIC y te olvidas. La USART realiza su cometido y si tiene algo que decirte levantará un flag o te interrumpirá para avisarte. Para recibir exactamente lo mismo, ella recibirá algo y te levantará un Flag o te interrumpirá para avisarte de que ha recibido algo, entonces vas tú y lo procesas en tu programa.

Si por el contrario usas una "USART" simulada tu programa crecerá para hacer todo esto que haría la USART por hardware. Debe parar toda la ejecución de otras tareas, en transmisión debe procesar tu byte para enviar uno a uno los bits que contiene, levantando o bajando la señal en el pin señalado y esperando los tiempos que definen tu comunicación. Para recibir debes estar constantemente mirando el pin de recepción y en cuanto aparezca algo ponerte a decodificar uno a uno los bits hasta rellenar un byte coherente. Todo esto DENTRO DE TU PROGRAMA y al margen de lo que realmente hagas en él. Tú no has escrito todo este código encargado de hacer esto pero tu Compilador si lo ha hecho por tí.

Como vés esta segunda opción es muy ineficiente tanto en tamaño como en prestaciones. Asi que si puedes usa la USART que para eso la han puesto los amables señores de Microchip.  :mrgreen:

P.D. En ASM es el artista el que se encarga de escribir su "USART" particular. Todos los que hemos escrito código ASM para micros antiguos le hemos hecho alguna vez en la vida. Antes las USART estaban fuera del micro, cuando estaban.  :D





« Última modificación: 06 de Febrero de 2007, 16:36:15 por RedPic »
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado jfmateos2

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: UART física o virtual
« Respuesta #2 en: 06 de Febrero de 2007, 16:31:05 »
Clarito, clarito. Muchas gracias RedPic.

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: UART física o virtual
« Respuesta #3 en: 06 de Febrero de 2007, 16:34:11 »
Ea, a mandar que para eso estamos.  :D

P.D. Después de escribir ESTE post he editado mi ANTERIOR post para corregir algunas palabras y añadir pequeñisimas apreciaciones. Prometo no editarlo mas. Palabra de PicManíaco.  :mrgreen:
« Última modificación: 06 de Febrero de 2007, 16:37:47 por RedPic »
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: UART física o virtual
« Respuesta #4 en: 08 de Febrero de 2007, 10:41:36 »
Explicado con absoluta Maestria!! :-/ :-/ :-/
Felicitaciones!!!
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado jfmateos2

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: UART física o virtual
« Respuesta #5 en: 27 de Febrero de 2007, 15:16:40 »
A ver si de verdad me he enterado.

Por ejemplo, si quiero utilizar la USART hardware de un PIC16F876 debo utilizar "obligatoriamente" los pin RC6 y RC7 para conectar al MAX232; si uso otros pines se utilizará la USART software ¿es así?

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: UART física o virtual
« Respuesta #6 en: 27 de Febrero de 2007, 15:21:57 »
E-X-A-C-T-O  :mrgreen:
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania


 

anything