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.