TODOPIC
Otros Microcontroladores / Dispositivos programables => Microcontroladores 8 bits => Mensaje iniciado por: leocaceres en 01 de Julio de 2018, 20:35:09
-
buenos dias !
básicamente estoy recibiendo en un PIC 16F873 datos a una velocidad de 9600 baudios y quiero retrasmitir esos mismos datos a 38400 baudios.
utilizo un xtal de 16Mhz porque según la hoja de datos del PIC , es con el que mejor se aproxima a las velocidades de 4800, 9600, 19200, 38400.
resulta que para la retransmision a 4800, 9600, y 19200 anda muy bien el programa, el problema lo tengo para 38400 baudios. que según la tabla de la hoja de datos del PIC, genera 35714 baudios, pero no me sirve.
consulta:
Alguno sabe de alguna posible solución para aproximarme mas a los 38400 baudios y disminuir el porcentaje de error ??
muchas gracias por su tiempo !
-
Que tal leocaceres
Definitivamente es posible generar el baud rate de 38400 basado en lo que mencionas. Lo que estas olvidando es aplicar la fórmula de la página 96 de la hoja de datos.
Baudrate = Fosc/[16*(x+1)]
En donde x es el valor a cargar en el registro SPBRG
Usando dicha fórmula, el valor para X es 25 si es que quieres transmitir a 38400bps. Que en realidad serían 38461.54 bps que solamente es el 0.16% de error. Lo cual es válido para las especificaciones que piden un error máximo del 3%.
Saludos
Elreypic
-
gracias por tu respuesta !
Impecable lo tuyo! en realidad, estaba usando la formula pero la correspondiente a BRGH = 0 .
Tenia que colocar BRGH = 1 para alta velocidad y después el valor de SPBRG que es de 25 como me decís vos.
muchas gracias !!