Autor Tema: calculos de la usart  (Leído 6381 veces)

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

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
calculos de la usart
« en: 30 de Agosto de 2009, 14:45:34 »
hola.ya que he estado haciendo a mano unas tablas para la configuracion de la usart.he decidido ponerlas aqui para tenerlas a mano todo el que quiera usarlas.


calculos para el baudrate de la usart

segun las formulas para el calculo del baudrate de la usart.

Baud Rate=Fosc/(16(X+1)) para (Higth Speed) en modo Asincrono
Baud Rate=Fosc/(64(X+1)) para (Low Speed)   en modo Asincrono

voy a explicar los calculos a realizar para su configuracion.

dos cosas importantes para configurar la usart.es guardar los valores correctos en los registros TXSTA,RCSTA y SPBRG
en el registro TXSTA debemos configurar el bit SYNC para seleccionar el modo de velocidad.
el valor que introduzcamos en el registro SPBRG sera muy importante para que la velocidad en baudios sea la correcta.
y su valor esta entre 0 y 255 en decimal.

si queremos saber que velocidad en baudios nos va a dar un cristal determinado.realizaremos la formula que describo arriva.
y que pondre unos ejemplos abajo.

para alta velocidad.bit SYNC de TXSTA a 0 estos son los crystales mas comunes para el uso de la usart.

crystal  3.686400 Mhz/(16(3+1)) =57600 Baud     valor de SPBRG=3
crystal 11.059200 Mhz/(16(11+1))=57600 Baud   valor de SPBRG=11
crystal 18.432000 Mhz/(16(19+1))=57600 Baud   valor de SPBRG=19



crystal  3.686400 Mhz/(16( 5+1))=38400 Baud     valor de SPBRG=5
crystal  6.144000 Mhz/(16( 9+1))=38400 Baud     valor de SPBRG=9
crystal 11.059200 Mhz/(16(17+1))=38400 Baud   valor de SPBRG=17
crystal 14.745600 Mhz/(16(23+1))=38400 Baud   valor de SPBRG=23
crystal 18.432000 Mhz/(16(29+1))=38400 Baud   valor de SPBRG=29
crystal 19.660800 Mhz/(16(31+1))=38400 Baud   valor de SPBRG=31


para baja velocidad.bit SYNC de TXSTA a 1 estos son los crystales mas comunes para el uso de la usart.

crystal  3.686400 Mhz/(64(3+1)) =19200 Baud     valor de SPBRG=3
crystal  6.144000 Mhz/(64(5+1)) =19200 Baud     valor de SPBRG=5
crystal 11.059200 Mhz/(64(9+1))   =19200 Baud   valor de SPBRG=9
crystal 14.745600 Mhz/(64(17+1))=19200 Baud   valor de SPBRG=17
crystal 18.432000 Mhz/(64(23+1))=19200 Baud   valor de SPBRG=23
crystal 19.660800 Mhz/(64(29+1))=19200 Baud   valor de SPBRG=29

crystal  3.686400 Mhz/(64(5+1)) =9600 Baud        valor de SPBRG=5
crystal  6.144000 Mhz/(64(9+1)) =9600 Baud        valor de SPBRG=9
crystal 11.059200 Mhz/(64(17+1))=9600 Baud   valor de SPBRG=17
crystal 14.745600 Mhz/(64(23+1))=9600 Baud   valor de SPBRG=23
crystal 18.432000 Mhz/(64(29+1))=9600 Baud   valor de SPBRG=29
crystal 19.660800 Mhz/(64(31+1))=9600 Baud   valor de SPBRG=31



si queremos saber si un crystal nos biene bien para una configuracion de la usart.cogeremos el valor del crystal y le dividiremos
el valor de la velocidad que queramos usar.por ejemplo:

3.686400 Mhz/38400=96. como 96 es entero y podemos dividirlo entre 16 o 64.que son los valores usados en la configuracion en el modo
         de alta y baja velocidad.pues este crystal servira perfectamente para que no haya ningun porcentage de error
         de transmision de datos.

si dividimos 96 entre 64.veremos que nos da 1.5 valor que no nos sirve para configuracion en alta velocidad.pero si lo dividimos entre 16
          nos da el valor 6 que si que es un entero.que tendremos que restarle 1.asi tenemos el valor 5.que sera el que
          metamos en el registro SPBRG.para una transmision en modo de baja velocidad.


dos crystales que son muy convenientes tener a mano son los de 3.6864Mhz y 19.660800 que nos serviran para los pic de 4 y 20Mhz respectivamente.
y que pueden trabajar a las velocidades mas comunes de 9600,19200,38400 y 57600.

se pueden utilizar muchos mas valores.pero ya habria que calcularlos.
« Última modificación: 03 de Septiembre de 2009, 10:15:50 por groundman »
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: calculos de la usart
« Respuesta #1 en: 30 de Agosto de 2009, 15:41:09 »
uff! Que trabajo te has tomado. En el soft ConfigPIC está la posibilidad de configurar el Baud Rate según el cristal utilizado. Indica el error que se esta cometiendo al seleccionar la velocidad con Higth Speed o Low Speed.

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

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re: calculos de la usart
« Respuesta #2 en: 30 de Agosto de 2009, 16:55:25 »
Excelente trabajo groundman, la verdad es que estoy empezando con el usart y me has alegrado la vida. Suerte que hay gente que sabe y dispuesta a compartir todo su saber con los borricos como yo.  :mrgreen:
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.


 

anything