PIC32MZ Oscillator - Reference Clock
Reference Clock
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:
- 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 = FRC
PLIB_OSC_ReferenceOscBaseClockSelect (OSC_ID_0, OSC_REFERENCE_1, OSC_REF_BASECLOCK_FRC);
// disable ref clock #2
PLIB_OSC_ReferenceOscDisable(OSC_ID_0, OSC_REFERENCE_2);
// enable ref clock #3
PLIB_OSC_ReferenceOscEnable(OSC_ID_0, OSC_REFERENCE_3);
// refOscDiv #4 = 32768
PLIB_OSC_ReferenceOscDivisorValueSet (OSC_ID_0, OSC_REFERENCE_4, 32768);
// trimValue #1 = 256
PLIB_OSC_ReferenceOscTrimSet(OSC_ID_0, OSC_REFERENCE_1, 256);
// ref clock #3 is driven out REFCLKO3 pin
PLIB_OSC_ReferenceOutputEnable(OSC_ID_0, OSC_REFERENCE_3);