PIC32 Oscillator - Secondary Oscillator

Last modified by Microchip on 2023/11/09 09:01

SOSC diagram

Secondary Oscillator (SOSC)

The Secondary Oscillator (SOSC) is designed specifically for low-power operation with an external 32 to 100 KHz crystal. The oscillator is connected to the SOSCO and SOSCI device pins and serves as a secondary crystal clock source for low-power operation. It can also drive Timer1 and/or the Real-Time Clock and Calendar (RTCC) module for Real-Time Clock (RTC) applications.

The following code sample demonstrates how to (a) enable the secondary oscillator for a specific device using configuration bit settings, and (b) how to perform simple run-time modification using the MPLAB® Harmony PLIB APIs

// Enable Secondary oscillator by default
#pragma config FSOSCEN = ON
// default System clock = Secondary oscillator
#pragma config FNOSC = SOSC

// Run-time configuration using Harmony functions shown below

// System Clock = SOSC (run-time config)
PLIB_OSC_SysClockSelect(OSC_ID_0, OSC_SECONDARY);
// Enable Secondary oscillator
PLIB_OSC_SecondaryEnable(OSC_ID_0);
// Disable Secondary oscillator
PLIB_OSC_SecondaryDisable(OSC_ID_0);

Detailed Overview

For more detail on the Secondary Oscillator module for a specific PIC32 device, please view the oscillator family reference manual chapter for that device, for example:

The device datasheet should then be consulted to verify the specific features implemented in that device.