TODOPIC
Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: lolos123 en 01 de Enero de 2005, 12:44:00
-
A ver si me podéis echar una mano con ésto.
Yo quiero transmitir con usart a 4800 bps que según pone en el libro (Microcontroladores PIC Diseño práctico de aplicaciones Segunda parte PIC16F87x)
es uno de los valores normalizados, pues bien las cuestiones son las siguientes:
- Para obtener el valor x cargado en el registro SPBRG hay una fórmula, pero en el datasheet vienen además unas tablas BAUD RATES FOR ASYNCHRONOUS MODE (BRGH = 0) y BAUD RATES FOR ASYNCHRONOUS MODE (BRGH = 1) y los 4800 solo aparecen una vez: en fosc=20MHz y BRGH=1 aparece HIGH 4.883 - 255
¿Sólo se pueden obtener los 4800 haciendo caso de la tabla a 20 MHz cargando el valor 255 o es un error de las tablas?.
Si es un error, uso la formula y listo ¿no es así?.
¿que cristal le pondríais si en un caso voy a recibir a 4800 y a transmitir a 330 y en otro al revés recibo a 330 y transmito a 4800 ?
No se si me he liado un poco pero en fin , espero respuestas.
Gracias por vuestro tiempo.
-
Feliz año nuevo
Yo tengo esta formulita para calcular la velocidad < Baudios = Fosc/(n(X+1) >
Donde X es lo que quieres y n = 4.
Y si quieres saber el error por ejemplo a 16Mhz de 9.600 < Baudios = 16Mhz/(64(25+1)) = 9.615 Baudios>
En la teoria esto funciona ya que yo no la he utilizado por que mi lenguaje de programación me hace todos estos calculos de forma automatica...
-
perdon me equivoque...
para BRGH=0 -> n = 64, yo utilizo este
para BRGH=1 -> n = 16
-
Feliz año para ti también y gracias por responder.
En efecto esa fórmula es la que viene en el libro, lo que me llevaba a la duda eran las tablas.Por cierto que lenguaje usas que lo hace automático.
-
Pues utilizo el PIC BASIC de http://www.oshonsoft.com/
Que es una herramienta “para mi entender” muy buena para introducirse de una forma rapida y sencilla en el aprendizaje del ASM, ya que te genera un codigo en ASM muy optimizado y con algunos comentarios de forma automatica para que te sea mas facil interpretarlo...
Te puedes bajar la demo y si quieres por 19 euros te da la licencia para utilizar en mono puesto..., ademas tiene unos esquemas de montajes básicos que funcionan perfectamente y cosa buena si le preguntas algo te contesta seguro... en ingles claro...
Aqui tienes un ejemplo para 8Mhz
; Baud rate error: 15 (.156%)
BSF STATUS,RP0
MOVLW 0x0C -> este es el factor de correccion X
MOVWF SPBRG
BSF TRISC,6
BSF TRISC,7
MOVLW 0x20
MOVWF TXSTA
BCF STATUS,RP0
MOVLW 0x90
MOVWF RCSTA
--------------------------------------
como puedes ver con esta información que genera el compilador puedes estudiar la info de la hoja de características...
a otra cosa soy usuario registrados, vamos que he pagado la licencia....