Functions
Oscillator Management
Collaboration diagram for Oscillator Management:

Functions

static void osc_disable (uint32_t ul_id)
 
static void osc_enable (uint32_t ul_id)
 
static uint32_t osc_get_rate (uint32_t ul_id)
 
static bool osc_is_ready (uint32_t ul_id)
 

Oscillator Management

static void osc_wait_ready (uint8_t id)
 Wait until the oscillator identified by id is ready. More...
 

Oscillator identifiers

#define OSC_SLCK_32K_RC   0
 Internal 32kHz RC oscillator. More...
 
#define OSC_SLCK_32K_XTAL   1
 External 32kHz crystal oscillator. More...
 
#define OSC_SLCK_32K_BYPASS   2
 External 32kHz bypass oscillator. More...
 
#define OSC_MAINCK_4M_RC   3
 Internal 4MHz RC oscillator. More...
 
#define OSC_MAINCK_8M_RC   4
 Internal 8MHz RC oscillator. More...
 
#define OSC_MAINCK_12M_RC   5
 Internal 12MHz RC oscillator. More...
 
#define OSC_MAINCK_XTAL   6
 External crystal oscillator. More...
 
#define OSC_MAINCK_BYPASS   7
 External bypass oscillator. More...
 

Oscillator clock speed in hertz

#define OSC_SLCK_32K_RC_HZ   CHIP_FREQ_SLCK_RC
 Internal 32kHz RC oscillator. More...
 
#define OSC_SLCK_32K_XTAL_HZ   BOARD_FREQ_SLCK_XTAL
 External 32kHz crystal oscillator. More...
 
#define OSC_SLCK_32K_BYPASS_HZ   BOARD_FREQ_SLCK_BYPASS
 External 32kHz bypass oscillator. More...
 
#define OSC_MAINCK_4M_RC_HZ   CHIP_FREQ_MAINCK_RC_4MHZ
 Internal 4MHz RC oscillator. More...
 
#define OSC_MAINCK_8M_RC_HZ   CHIP_FREQ_MAINCK_RC_8MHZ
 Internal 8MHz RC oscillator. More...
 
#define OSC_MAINCK_12M_RC_HZ   CHIP_FREQ_MAINCK_RC_12MHZ
 Internal 12MHz RC oscillator. More...
 
#define OSC_MAINCK_XTAL_HZ   BOARD_FREQ_MAINCK_XTAL
 External crystal oscillator. More...
 
#define OSC_MAINCK_BYPASS_HZ   BOARD_FREQ_MAINCK_BYPASS
 External bypass oscillator. More...
 

Detailed Description

This group contains functions and definitions related to configuring and enabling/disabling on-chip oscillators. Internal RC-oscillators, external crystal oscillators and external clock generators are supported by this module. What all of these have in common is that they swing at a fixed, nominal frequency which is normally not adjustable.

Example: Enabling an oscillator

The following example demonstrates how to enable the external oscillator on XMEGA A and wait for it to be ready to use. The oscillator identifiers are platform-specific, so while the same procedure is used on all platforms, the parameter to osc_enable() will be different from device to device.

osc_enable(OSC_ID_XOSC);
osc_wait_ready(OSC_ID_XOSC);

Board-specific Definitions

If external oscillators are used, the board code must provide the following definitions for each of those:

Macro Definition Documentation

◆ OSC_MAINCK_12M_RC

#define OSC_MAINCK_12M_RC   5

Internal 12MHz RC oscillator.

Definition at line 92 of file same70/osc.h.

◆ OSC_MAINCK_12M_RC_HZ

#define OSC_MAINCK_12M_RC_HZ   CHIP_FREQ_MAINCK_RC_12MHZ

Internal 12MHz RC oscillator.

Definition at line 104 of file same70/osc.h.

◆ OSC_MAINCK_4M_RC

#define OSC_MAINCK_4M_RC   3

Internal 4MHz RC oscillator.

Definition at line 90 of file same70/osc.h.

◆ OSC_MAINCK_4M_RC_HZ

#define OSC_MAINCK_4M_RC_HZ   CHIP_FREQ_MAINCK_RC_4MHZ

Internal 4MHz RC oscillator.

Definition at line 102 of file same70/osc.h.

◆ OSC_MAINCK_8M_RC

#define OSC_MAINCK_8M_RC   4

Internal 8MHz RC oscillator.

Definition at line 91 of file same70/osc.h.

◆ OSC_MAINCK_8M_RC_HZ

#define OSC_MAINCK_8M_RC_HZ   CHIP_FREQ_MAINCK_RC_8MHZ

Internal 8MHz RC oscillator.

Definition at line 103 of file same70/osc.h.

◆ OSC_MAINCK_BYPASS

#define OSC_MAINCK_BYPASS   7

External bypass oscillator.

Definition at line 94 of file same70/osc.h.

◆ OSC_MAINCK_BYPASS_HZ

#define OSC_MAINCK_BYPASS_HZ   BOARD_FREQ_MAINCK_BYPASS

External bypass oscillator.

Definition at line 106 of file same70/osc.h.

◆ OSC_MAINCK_XTAL

#define OSC_MAINCK_XTAL   6

External crystal oscillator.

Definition at line 93 of file same70/osc.h.

◆ OSC_MAINCK_XTAL_HZ

#define OSC_MAINCK_XTAL_HZ   BOARD_FREQ_MAINCK_XTAL

External crystal oscillator.

Definition at line 105 of file same70/osc.h.

◆ OSC_SLCK_32K_BYPASS

#define OSC_SLCK_32K_BYPASS   2

External 32kHz bypass oscillator.

Definition at line 89 of file same70/osc.h.

◆ OSC_SLCK_32K_BYPASS_HZ

#define OSC_SLCK_32K_BYPASS_HZ   BOARD_FREQ_SLCK_BYPASS

External 32kHz bypass oscillator.

Definition at line 101 of file same70/osc.h.

◆ OSC_SLCK_32K_RC

#define OSC_SLCK_32K_RC   0

Internal 32kHz RC oscillator.

Definition at line 87 of file same70/osc.h.

◆ OSC_SLCK_32K_RC_HZ

#define OSC_SLCK_32K_RC_HZ   CHIP_FREQ_SLCK_RC

Internal 32kHz RC oscillator.

Definition at line 99 of file same70/osc.h.

◆ OSC_SLCK_32K_XTAL

#define OSC_SLCK_32K_XTAL   1

External 32kHz crystal oscillator.

Definition at line 88 of file same70/osc.h.

◆ OSC_SLCK_32K_XTAL_HZ

#define OSC_SLCK_32K_XTAL_HZ   BOARD_FREQ_SLCK_XTAL

External 32kHz crystal oscillator.

Definition at line 100 of file same70/osc.h.

Function Documentation

◆ osc_disable()

static void osc_disable ( uint32_t  ul_id)
inlinestatic

Definition at line 151 of file same70/osc.h.

◆ osc_enable()

static void osc_enable ( uint32_t  ul_id)
inlinestatic

Definition at line 109 of file same70/osc.h.

◆ osc_get_rate()

static uint32_t osc_get_rate ( uint32_t  ul_id)
inlinestatic

Definition at line 196 of file same70/osc.h.

◆ osc_is_ready()

static bool osc_is_ready ( uint32_t  ul_id)
inlinestatic

Definition at line 175 of file same70/osc.h.

◆ osc_wait_ready()

static void osc_wait_ready ( uint8_t  id)
inlinestatic

Wait until the oscillator identified by id is ready.

This function will busy-wait for the oscillator identified by id to become stable and ready to use as a clock source.

Parameters
idA number identifying the oscillator to wait for.

Definition at line 162 of file osc.h.



inertial_sense_ros
Author(s):
autogenerated on Sun Feb 28 2021 03:18:00