Chip-specific oscillator management functions.
Copyright (c) 2010-2018 Microchip Technology Inc. and its subsidiaries.
Macros | |
#define | AVR32_SCIF_OSCCTRL1 0x00000028 |
#define | AVR32_SCIF_OSCCTRL32_MODE_CRYSTAL_AGC AVR32_SCIF_OSCCTRL32_MODE_CRYSTAL_ACG |
#define | AVR32_SCIF_OSCCTRL32_MODE_CRYSTAL_NO_AGC AVR32_SCIF_OSCCTRL32_MODE_CRYSTAL_NO_ACG |
#define | OSC0_MODE_VALUE UNDEFINED |
Board-dependent value written to the MODE bitfield of PM_OSCCTRL(0) More... | |
#define | OSC0_STARTUP_TIMEOUT UNDEFINED |
Number of slow clock cycles to wait for OSC0 to start. More... | |
#define | OSC0_STARTUP_VALUE UNDEFINED |
Board-dependent value written to the STARTUP bitfield of PM_OSCCTRL(0) More... | |
#define | OSC1_MODE_VALUE UNDEFINED |
Board-dependent value written to the MODE bitfield of PM_OSCCTRL(1) More... | |
#define | OSC1_STARTUP_TIMEOUT UNDEFINED |
Number of slow clock cycles to wait for OSC1 to start. More... | |
#define | OSC1_STARTUP_VALUE UNDEFINED |
Board-dependent value written to the STARTUP bitfield of PM_OSCCTRL(1) More... | |
#define | OSC32_MODE_VALUE UNDEFINED |
#define | OSC32_STARTUP_TIMEOUT UNDEFINED |
#define | OSC32_STARTUP_VALUE UNDEFINED |
Oscillator identifiers | |
#define | OSC_ID_OSC0 0 |
External Oscillator 0. More... | |
#define | OSC_ID_OSC1 1 |
External Oscillator 1. More... | |
#define | OSC_ID_RC8M 2 |
Internal 8 MHz RC oscillator. More... | |
#define | OSC_ID_OSC32 3 |
External 32 kHz oscillator. More... | |
#define | OSC_ID_RC120M 4 |
Internal 120 MHz RC oscillator. More... | |
#define | OSC_ID_RCSYS 5 |
Internal System RC oscillator. More... | |
OSC0/OSC1 mode values | |
#define | OSC_MODE_EXTERNAL AVR32_SCIF_OSCCTRL_MODE_EXT_CLOCK |
External clock connected to XIN. More... | |
#define | OSC_MODE_XTAL AVR32_SCIF_OSCCTRL_MODE_CRYSTAL |
Crystal connected to XIN/XOUT. More... | |
OSC32 mode values | |
#define | OSC32_MODE_EXTERNAL AVR32_SCIF_OSCCTRL32_MODE_EXT_CLOCK |
External clock connected to XIN32. More... | |
#define | OSC32_MODE_XTAL AVR32_SCIF_OSCCTRL32_MODE_CRYSTAL_AGC |
Crystal connected to XIN32/XOUT32. More... | |
#define | OSC32_MODE_XTAL_HC AVR32_SCIF_OSCCTRL32_MODE_CRYSTAL_NO_AGC |
Crystal connected to XIN32/XOUT32 in high current mode. More... | |
OSC0/OSC1 startup values | |
#define | OSC_STARTUP_0 AVR32_SCIF_OSCCTRL0_STARTUP_0_RCOSC |
0 cycles More... | |
#define | OSC_STARTUP_4 AVR32_SCIF_OSCCTRL0_STARTUP_4_RCOSC |
4 cycles (35 us) More... | |
#define | OSC_STARTUP_8 AVR32_SCIF_OSCCTRL0_STARTUP_8_RCOSC |
8 cycles (70 us) More... | |
#define | OSC_STARTUP_16 AVR32_SCIF_OSCCTRL0_STARTUP_16_RCOSC |
16 cycles (140 us) More... | |
#define | OSC_STARTUP_32 AVR32_SCIF_OSCCTRL0_STARTUP_32_RCOSC |
32 cycles (280 us) More... | |
#define | OSC_STARTUP_64 AVR32_SCIF_OSCCTRL0_STARTUP_64_RCOSC |
64 cycles (560 us) More... | |
#define | OSC_STARTUP_128 AVR32_SCIF_OSCCTRL0_STARTUP_128_RCOSC |
128 cycles (1.1 ms) More... | |
#define | OSC_STARTUP_256 AVR32_SCIF_OSCCTRL0_STARTUP_256_RCOSC |
256 cycles (2.2 ms) More... | |
#define | OSC_STARTUP_512 AVR32_SCIF_OSCCTRL0_STARTUP_512_RCOSC |
512 cycles (4.5 ms) More... | |
#define | OSC_STARTUP_1024 AVR32_SCIF_OSCCTRL0_STARTUP_1024_RCOSC |
1024 cycles (9.0 ms) More... | |
#define | OSC_STARTUP_2048 AVR32_SCIF_OSCCTRL0_STARTUP_2048_RCOSC |
2048 cycles (18 ms) More... | |
#define | OSC_STARTUP_4096 AVR32_SCIF_OSCCTRL0_STARTUP_4096_RCOSC |
4096 cycles (36 ms) More... | |
#define | OSC_STARTUP_8192 AVR32_SCIF_OSCCTRL0_STARTUP_8192_RCOSC |
8192 cycles (71 ms) More... | |
#define | OSC_STARTUP_16384 AVR32_SCIF_OSCCTRL0_STARTUP_16384_RCOSC |
16384 cycles (142 ms) More... | |
OSC32 startup values | |
#define | OSC32_STARTUP_0 AVR32_SCIF_OSCCTRL32_STARTUP_0_RCOSC |
0 cycles More... | |
#define | OSC32_STARTUP_128 AVR32_SCIF_OSCCTRL32_STARTUP_128_RCOSC |
128 cycles (1.1 ms) More... | |
#define | OSC32_STARTUP_8192 AVR32_SCIF_OSCCTRL32_STARTUP_8192_RCOSC |
8192 cycles (72.3 ms) More... | |
#define | OSC32_STARTUP_16384 AVR32_SCIF_OSCCTRL32_STARTUP_16384_RCOSC |
16384 cycles (143 ms) More... | |
#define | OSC32_STARTUP_65536 AVR32_SCIF_OSCCTRL32_STARTUP_65536_RCOSC |
65536 cycles (570 ms) More... | |
#define | OSC32_STARTUP_131072 AVR32_SCIF_OSCCTRL32_STARTUP_131072_RCOSC |
131072 cycles (1.1 s) More... | |
#define | OSC32_STARTUP_262144 AVR32_SCIF_OSCCTRL32_STARTUP_262144_RCOSC |
262144 cycles (2.3 s) More... | |
#define | OSC32_STARTUP_524288 AVR32_SCIF_OSCCTRL32_STARTUP_524288_RCOSC |
524288 cycles (4.6 s) More... | |
RC oscillator frequency limits | |
The frequency of the internal RC oscillators may drift a bit as a result of temperature changes. These definitions provide upper and lower limits which may be used to calculate upper and lower limits of timeouts, derived clock frequencies, etc. | |
#define | OSC_RCSYS_NOMINAL_HZ 115000 |
Nominal frequency of RCSYS in Hz. More... | |
#define | OSC_RCSYS_MIN_HZ 100000 |
Minimum frequency of RCSYS in Hz. More... | |
#define | OSC_RCSYS_MAX_HZ 120000 |
Maximum frequency of RCSYS in Hz. More... | |
#define | OSC_RC8M_NOMINAL_HZ 8000000 |
Nominal frequency of RC8M in Hz. More... | |
#define | OSC_RC120M_NOMINAL_HZ 120000000 |
Nominal frequency of RC120M in Hz. More... | |
Functions | |
void | osc_priv_disable_osc0 (void) |
void | osc_priv_disable_osc1 (void) |
void | osc_priv_disable_osc32 (void) |
void | osc_priv_disable_rc120m (void) |
void | osc_priv_disable_rc8m (void) |
void | osc_priv_enable_osc0 (void) |
void | osc_priv_enable_osc1 (void) |
void | osc_priv_enable_osc32 (void) |
void | osc_priv_enable_rc120m (void) |
void | osc_priv_enable_rc8m (void) |
bool | osc_priv_osc0_is_ready (void) |
bool | osc_priv_osc1_is_ready (void) |
bool | osc_priv_osc32_is_ready (void) |
bool | osc_priv_rc120m_is_ready (void) |
bool | osc_priv_rc8m_is_ready (void) |
Oscillator Management | |
static void | osc_enable (uint8_t id) |
Enable oscillator id. More... | |
static void | osc_disable (uint8_t id) |
Disable oscillator id. More... | |
static bool | osc_is_ready (uint8_t id) |
Determine whether oscillator id is ready. More... | |
static uint32_t | osc_get_rate (uint8_t id) |
Return the frequency of oscillator id in Hz. More... | |
#define AVR32_SCIF_OSCCTRL1 0x00000028 |
#define AVR32_SCIF_OSCCTRL32_MODE_CRYSTAL_AGC AVR32_SCIF_OSCCTRL32_MODE_CRYSTAL_ACG |
#define AVR32_SCIF_OSCCTRL32_MODE_CRYSTAL_NO_AGC AVR32_SCIF_OSCCTRL32_MODE_CRYSTAL_NO_ACG |