hello,
Yes, default choice is 1MHZ when using internal oscillator
To avoid change of FOSC at reset , add to the init program :
Code:
#define OSCILLATEUR_INTERNE
....
....
void main()
{
....
#ifdef OSCILLATEUR_INTERNE // i use define to switch between QUARTZ Oscill and Internal Oscill
// the internal oscillator is set to the default frequency of 1 MHz.
// The Internal Oscillator Frequency Select bits (IRCF<2:0>)
// select the frequency output of the internal oscillator block
// pour conserver 19200 bauds à 16Mhz sinon retombe à 1200 bauds
OSCCON=0b01110000;
// OSCCONbits.IRCF2=1; //HFINTOSC – (16 MHz)
// OSCCONbits.IRCF1=1;
// OSCCONbits.IRCF0=1;
OSCTUNE=0;
OSCTUNEbits.PLLEN=0; // 1= avec PLL => 64Mhz ou 40Mhz 0 =sans PLL => 16Mhz ou 10Mhz
#endif
what is your speed of UART link ?
Are you using interrupt for receiving data ?
Do you have also trouble when sending data ?
i allready use 18F46K22 with internal oscillator at 19200 bauds ( FOSC=16MHz) NO problemo..
Maybe you also can adjust OSCTUNE ...