PIC32MZ Oscillator - Reference Clock

Reference Clock

refclk.PNG

There are four reference clocks in the PIC32MZ devices. They can be used to drive peripherals or an output Reference Clock (REFCLKOx) pin.

The reference clock can be derived from any of the following clock sources:System Phased-Lock Loop,Primary Oscillator,Fast RC Oscillator,Low-Power RC Oscillator,Backup Fast RC Oscillator,Secondary Oscillator,System Clock,Peripheral Bus Clock, and Reference Clock input.

Each reference clock has a high-precision divider based on this formula:

refclk_formula.PNG
  • refOscDiv can be any integer from 1 to 32768,
    • when refOscDiv = 0, the output clock = the input clock.
  • trimValue can be any integer from 1 to 512.
// ref clock #1 base = FRCPLIB_OSC_ReferenceOscBaseClockSelect (OSC_ID_0, OSC_REFERENCE_1, OSC_REF_BASECLOCK_FRC);// disable ref clock #2PLIB_OSC_ReferenceOscDisable(OSC_ID_0, OSC_REFERENCE_2);// enable ref clock #3PLIB_OSC_ReferenceOscEnable(OSC_ID_0, OSC_REFERENCE_3);// refOscDiv #4 = 32768PLIB_OSC_ReferenceOscDivisorValueSet (OSC_ID_0, OSC_REFERENCE_4, 32768);// trimValue #1 = 256PLIB_OSC_ReferenceOscTrimSet(OSC_ID_0, OSC_REFERENCE_1, 256);// ref clock #3 is driven out REFCLKO3 pinPLIB_OSC_ReferenceOutputEnable(OSC_ID_0, OSC_REFERENCE_3);