Buenas a todos,
como parte de un proyecto, tengo un PIC16F648A comunicandose con dos puetos serie, pertenecientes a dos dispositivos diferentes. Uno de ellos funciona a 4800bauds, y el otro a 115200 . (la línea RX del PIC está multiplexada para permitir "escuchar" alternativamente a los dos dispositivos según el momento que sea).
Con el primer dispositivo, el de 4800, no tengo problema ninguno para recibir informacion en mi USART (este dispositivo solo me permite recibir, no admite que se le envíen datos).
Con el de 115200 sin embargo no he conseguido echarlo a andar (por cierto que este dispositivo sí admite tanto recepción como transmisión). La duda que me surge es si quizás es demasiado pedir una comunicacion a 115k usando un cristal de 4Mhz, no sé si el PIC irá algo "justo". Desde luego el datasheet da a entender que lo soporta, aunque eso sí, casi al límite ( SPBRG = .1 , mode = HIGH ) .
Para intentar ver un poco mejor el tema, he "pinchado" las lineas RX y TX, sacandolas a traves de un max232 y un db9 para poder "espiar" con el hiperterminal lo que se va transmitiendo ( RX_db9--->PIC_TX, TX_db9--->PIC_RX) .
Hecho esto, intento transmitir una pequeña cadena de texto a través del TX del PIC, y efectivamente aparece texto en el hiperterminal, pero completamente desfigurado, ningun caracter coincide ni por asomo con la cadena que envié desde el PIC.
Entonces, esto podría ser....
1) la USART mal inicializada... me extraña porque ya vengo de conseguir que funcione perfectamente en el caso del otro dispositivo, el de 4800bauds
2) cristal de 4Mhz demasiado "justo" para comunicarse a 115k ? Quizás deberia probar con uno de 16Mhz ?
muchas gracias por vuestras opiniones,
Pollastre