Hola maunix, entonces trata de hacer una comunicacion entre 2 PIC a un baud rate de 9600 con el oscilador internoa a 4MHz (el mayor) dejalo funcionando en ambientes distintos, y despues me cuentas.
Un saludo.
Atte. CARLOS.
Carlos, tampoco es que me voy a poner a armar un circuito para poder probar cada cosa que pongo en un post. Me parece bárbaro pensar diferente a otra persona y respeto las opiniones de todos pero he aquí mi pensamiento.
Lo que sí digo es que tengo una aplicación que corre en un ambiente de Radio Frecuencia con amplificadores de potencia, motores paso a paso, grandes consumos y donde el que gobierna todo es un 18F4580 corriendo a 32Mhz con el cristal interno.
Con la usart he usado 57600 y la he bajado a 19200 (en la que está actualmente ahora) simplemente porque no necesitaba más velocidad pero aclaro que en 57600 funcionaba perfecto.
El equipo se reporta con una PC constantemente y mayor velocidad significaba que la PC tenga que actualizar más rápdo los valores lo cual es totalmente innecesario (para mi aplicación) y reduciendo la velocidad puedo ver como varían ciertos parámetros bien.
Esa aplicación esta corriendo hace más de 6 meses sin problemas.
De todas formas, no vengo acá a convencer a nadie, pero de lo que estoy seguro es que un 1% o un 5% (para exagerar bien) de corrimiento de referencia del resonador de una usart no hará cambiar la comunicación y se efectuará tan bien como siempre.
Microchip claramente dice que el oscilador es interno (no se si es un RC, pero si es un RC no será un RC como los componentes discretos que uno coloca externamente). Es un oscilador compensado en temperatura y tensión que permite una precisión de un 1% lo cual es más que suficiente para la gran mayoría de las aplicaciones. Y a mi entender para el 100% de las aplicaciones que usen una comunicación serie asíncrona.
Nuevamente, a mi entender, (lo aclaro ya que no quiero generar polémica, simplemente exponer mi punto de vista)
si hay problemas con la comunicación con un PIC con cristal interno en diversos entornos será porque también los habría si fuera con un cristal externo.
En las comunicaciones que establezco, siempre hago algún tipo de chequeo tipo checksum o crc, no dejo librado a la comunicación la transmisión así porque sí. Esto lo vengo haciendo desde siempre y jamás tuve problemas con ningún hardware que he armado en este aspecto. Ya sea usando RS232 o RS485.
Pero como dije antes, es solo mi opinión.
Saludos