Electronic – PIC32MX can’t get 80 MHz Clock from Internal RC OSC

clockclock-speedmicrocontrolleroscillatorpic

I am using PIC32MX795F512L with the internal RC oscillator. By changing the settings of the config, I can get to 60 MHz max. But I can't get to 80 MHz. When I change the config for 80 MHz, PIC32 just won't run. Here is my config settings for 80 MHz clock speed.

    #pragma config FNOSC =  001            // 001       // FRCPLL       // Internal Fast RC oscillator (8 MHz) w/ PLL
    //#pragma config JTAGEN = OFF         // Disable JTAG
    #pragma config FSOSCEN = OFF        // Disable Secondary Oscillator
    #pragma config OSCIOFNC = OFF       // Enable CLKO Output on the OSCO Pin
    #pragma config FCKSM = CSECMD       // Enable Clock Switching & Fail-Safe Clock Monitor (FSCM) 
    #pragma config FWDTEN = OFF         // Watchdog Timer Disabled

    //#pragma config ICESEL = ICS_PGx1    // ICE/ICD Comm Channel Select
    #pragma config FPLLIDIV = DIV_2     // Divide FRC before PLL (now 4 MHz)
    #pragma config FPLLMUL =  MUL_20     // PLL Multiply (now 80 MHz)
    #pragma config FPLLODIV = DIV_1     // Divide After PLL (now 40 MHz)
                                        // see figure 8.1 in datasheet for more info
    #pragma config FPBDIV = DIV_1       // PBCLK = SYCLK

The same config above runs on the Explorer 16 Board. But It doesn't run in my custom designed PCB.

Best Answer

If you want speeds as high as 80MHz, you will need to use an external oscillator.

The FRC (Fast RC oscillator) maximun frequency is 8MHz, you can divide it by 2/4/.../256, but you can't increase it.