Hola Killer, he estado mirando el datasheet, el registro OSCCON, concretamente este bit. (PBDIV)
Pone que por defecto es DIV/8, pero también dice esto: "On Reset, these bits are set to the value of the FPBDIV Configuration bits (DEVCFG1<13:12>)."
Es decir, que si no lo configuro desde el main, se quedaría configurado por el FUSE DEVCFC1<13:12> y eso lo tengo entonces bien.
De todas formas también he probado al poner en el main:
OSCCONbits.PBDIV = 1; // PBCLK div/2
Con el mismo resultado.
Es como si el modulo UART estuviese tomando el clock de SYSCLK y no de PBCLK. O bien PBCLK va a lo mismo que SYSCLK.
Edito:
He probado por ejemplo el modulo SPI,
while(1) SpiChnPutC(1,0x55);
, que también coge la señal del PBCLK según datasheet, y si le activo el divisor /4, en el osciloscopio (el mio es de 20 Mhz) consigo ver la señal de clock a 18 Mhz.
En mi programa el SYSCLK está configurado a 72 Mhz, eso me confirma entonces que el PBCLK va a 72 MHZ diga lo que diga el FUSE DEVCFC1<13:12> y diga lo que diga OSCCON <20:19>
He estado viendo la Silicon Errata y no aparece nada al respecto, solo dice que si se modifica PBCLK al vuelo (mediante el registro OSCCON hay que dejar antes y después 64 NOP para evitar que pueda causar excepciones).
A ver, por mi, me da igual que PBCLK trabaje a 72 Mhz, teniéndolo en cuenta me basta. Pero me mosquea que tenga que tomar esa decisión forzada y no haber sido capaz de hacer funcionar algo que debería funcionar. Soy así de cabezón. Si algo tiene que funcionar y no funciona soy de los que se come la cabeza hasta que dilucide el por qué. No soy de los que se conformen poniendo las cosas así por que sí, por que "Así me funciona y punto".