The Power Management Controller (PMC) optimizes power consumption by controlling all system and user peripheral clocks. The PMC enables/disables the clock inputs to many of the peripherals and the Cortex-M Processor.
Modules | |
Related Project(s) | |
In this section you can find all the projects related to the Power Management Controller (PMC). | |
Quick Start Guide(s) | |
In this section you can find a list of all Quick Start guides related to the Power Management Controller (PMC). | |
Functions | |
void | pmc_clr_fast_startup_input (uint32_t ul_inputs) |
Clear the wake-up inputs for fast startup mode registers (remove event generation). More... | |
void | pmc_disable_all_pck (void) |
Disable all programmable clocks. More... | |
void | pmc_disable_all_periph_clk (void) |
Disable all peripheral clocks. More... | |
void | pmc_disable_clock_failure_detector (void) |
Disable Clock Failure Detector. More... | |
void | pmc_disable_interrupt (uint32_t ul_sources) |
Disable PMC interrupts. More... | |
void | pmc_disable_pck (uint32_t ul_id) |
Disable the specified programmable clock. More... | |
uint32_t | pmc_disable_periph_clk (uint32_t ul_id) |
Disable the specified peripheral clock. More... | |
void | pmc_disable_pllack (void) |
Disable PLLA clock. More... | |
void | pmc_enable_all_pck (void) |
Enable all programmable clocks. More... | |
void | pmc_enable_all_periph_clk (void) |
Enable all peripheral clocks. More... | |
void | pmc_enable_backupmode (void) |
Enable Backup Mode. More... | |
void | pmc_enable_clock_failure_detector (void) |
Enable Clock Failure Detector. More... | |
void | pmc_enable_interrupt (uint32_t ul_sources) |
Enable PMC interrupts. More... | |
void | pmc_enable_pck (uint32_t ul_id) |
Enable the specified programmable clock. More... | |
uint32_t | pmc_enable_periph_clk (uint32_t ul_id) |
Enable the specified peripheral clock. More... | |
void | pmc_enable_pllack (uint32_t mula, uint32_t pllacount, uint32_t diva) |
Enable PLLA clock. More... | |
void | pmc_enable_sleepmode (uint8_t uc_type) |
Enable Sleep Mode. More... | |
void | pmc_enable_waitmode (void) |
Enable Wait Mode. More... | |
uint32_t | pmc_get_interrupt_mask (void) |
Get PMC interrupt mask. More... | |
uint32_t | pmc_get_status (void) |
Get current status. More... | |
uint32_t | pmc_get_writeprotect_status (void) |
Return write protect status. More... | |
uint32_t | pmc_is_locked_pllack (void) |
Is PLLA locked? More... | |
uint32_t | pmc_is_pck_enabled (uint32_t ul_id) |
Check if the specified programmable clock is enabled. More... | |
uint32_t | pmc_is_periph_clk_enabled (uint32_t ul_id) |
Check if the specified peripheral clock is enabled. More... | |
void | pmc_mainck_osc_select (uint32_t ul_xtal_rc) |
Select Main Crystal or internal RC as main clock source. More... | |
void | pmc_mck_set_prescaler (uint32_t ul_pres) |
Set the prescaler of the MCK. More... | |
void | pmc_mck_set_source (uint32_t ul_source) |
Set the source of the MCK. More... | |
void | pmc_osc_bypass_main_xtal (void) |
Bypass main XTAL. More... | |
void | pmc_osc_disable_fastrc (void) |
Disable the internal fast RC. More... | |
void | pmc_osc_disable_main_xtal (void) |
Disable the main Xtal. More... | |
void | pmc_osc_disable_xtal (uint32_t ul_bypass) |
Disable the external Xtal. More... | |
void | pmc_osc_enable_fastrc (uint32_t ul_rc) |
Enable fast RC oscillator. More... | |
void | pmc_osc_enable_main_xtal (uint32_t ul_xtal_startup_time) |
Enable main XTAL oscillator. More... | |
uint32_t | pmc_osc_is_bypassed_main_xtal (void) |
Check if the main crystal is bypassed. More... | |
uint32_t | pmc_osc_is_ready_32kxtal (void) |
Check if the external 32k Xtal is ready. More... | |
uint32_t | pmc_osc_is_ready_fastrc (void) |
Check if the main fastrc is ready. More... | |
uint32_t | pmc_osc_is_ready_main_xtal (void) |
Check if the main crystal is ready. More... | |
uint32_t | pmc_osc_is_ready_mainck (void) |
Check if the MAINCK is ready. More... | |
void | pmc_pck_set_prescaler (uint32_t ul_id, uint32_t ul_pres) |
Set the prescaler for the specified programmable clock. More... | |
void | pmc_pck_set_source (uint32_t ul_id, uint32_t ul_source) |
Set the source oscillator for the specified programmable clock. More... | |
void | pmc_set_fast_startup_input (uint32_t ul_inputs) |
Set the wake-up inputs for fast startup mode registers (event generation). More... | |
void | pmc_set_writeprotect (uint32_t ul_enable) |
Enable or disable write protect of PMC registers. More... | |
void | pmc_switch_mainck_to_fastrc (uint32_t ul_moscrcf) |
Switch main clock source selection to internal fast RC. More... | |
void | pmc_switch_mainck_to_xtal (uint32_t ul_bypass, uint32_t ul_xtal_startup_time) |
Switch main clock source selection to external Xtal/Bypass. More... | |
uint32_t | pmc_switch_mck_to_mainck (uint32_t ul_pres) |
Switch master clock source selection to main clock. More... | |
uint32_t | pmc_switch_mck_to_pllack (uint32_t ul_pres) |
Switch master clock source selection to PLLA clock. More... | |
uint32_t | pmc_switch_mck_to_sclk (uint32_t ul_pres) |
Switch master clock source selection to slow clock. More... | |
uint32_t | pmc_switch_pck_to_mainck (uint32_t ul_id, uint32_t ul_pres) |
Switch programmable clock source selection to main clock. More... | |
uint32_t | pmc_switch_pck_to_mck (uint32_t ul_id, uint32_t ul_pres) |
Switch programmable clock source selection to mck. More... | |
uint32_t | pmc_switch_pck_to_pllack (uint32_t ul_id, uint32_t ul_pres) |
Switch programmable clock source selection to PLLA clock. More... | |
uint32_t | pmc_switch_pck_to_sclk (uint32_t ul_id, uint32_t ul_pres) |
Switch programmable clock source selection to slow clock. More... | |
void | pmc_switch_sclk_to_32kxtal (uint32_t ul_bypass) |
Switch slow clock source selection to external 32k (Xtal or Bypass). More... | |
void pmc_clr_fast_startup_input | ( | uint32_t | ul_inputs | ) |
Clear the wake-up inputs for fast startup mode registers (remove event generation).
ul_inputs | Wake up inputs to disable. |
References PMC_FAST_STARTUP_Msk.
Referenced by otg_dual_disable().
void pmc_disable_all_pck | ( | void | ) |
Disable all programmable clocks.
void pmc_disable_all_periph_clk | ( | void | ) |
Disable all peripheral clocks.
References pmc_disable_periph_clk(), PMC_MASK_STATUS0, and PMC_MASK_STATUS1.
void pmc_disable_clock_failure_detector | ( | void | ) |
Disable Clock Failure Detector.
References CKGR_MOR_KEY_PASSWD.
void pmc_disable_interrupt | ( | uint32_t | ul_sources | ) |
Disable PMC interrupts.
ul_sources | Interrupt sources bit map. |
void pmc_disable_pck | ( | uint32_t | ul_id | ) |
Disable the specified programmable clock.
ul_id | Id of the programmable clock. |
Referenced by config_uart_and_pck(), configure_tc(), genclk_disable(), main(), mcan_init(), run_switch_mainck_as_mck_test(), run_switch_pllack_as_mck_test(), and run_switch_slck_as_mck_test().
uint32_t pmc_disable_periph_clk | ( | uint32_t | ul_id | ) |
Disable the specified peripheral clock.
ul_id | Peripheral ID (ID_xxx). |
0 | Success. |
1 | Invalid parameter. |
Referenced by afec_disable(), otg_dual_disable(), pmc_disable_all_periph_clk(), run_periph_clk_cfg_test(), sysclk_disable_peripheral_clock(), and udd_disable().
void pmc_disable_pllack | ( | void | ) |
Disable PLLA clock.
Referenced by pll_config_write(), pll_disable(), pll_enable(), and pmc_enable_pllack().
void pmc_enable_all_pck | ( | void | ) |
Enable all programmable clocks.
void pmc_enable_all_periph_clk | ( | void | ) |
Enable all peripheral clocks.
References pmc_enable_periph_clk(), PMC_MASK_STATUS0, and PMC_MASK_STATUS1.
void pmc_enable_backupmode | ( | void | ) |
Enable Backup Mode.
Enter condition: WFE/(VROFF bit = 1) + (SLEEPDEEP bit = 1)
References SUPC_CR_KEY_PASSWD, SUPC_MR_KEY_PASSWD, and UNUSED.
Referenced by run_gpbr_test().
void pmc_enable_clock_failure_detector | ( | void | ) |
Enable Clock Failure Detector.
References CKGR_MOR_KEY_PASSWD.
void pmc_enable_interrupt | ( | uint32_t | ul_sources | ) |
Enable PMC interrupts.
ul_sources | Interrupt sources bit map. |
void pmc_enable_pck | ( | uint32_t | ul_id | ) |
Enable the specified programmable clock.
ul_id | Id of the programmable clock. |
Referenced by config_uart_and_pck(), configure_tc(), genclk_enable(), main(), mcan_init(), run_switch_mainck_as_mck_test(), run_switch_pllack_as_mck_test(), and run_switch_slck_as_mck_test().
uint32_t pmc_enable_periph_clk | ( | uint32_t | ul_id | ) |
Enable the specified peripheral clock.
ul_id | Peripheral ID (ID_xxx). |
0 | Success. |
1 | Invalid parameter. |
Referenced by _mcan_enable_peripheral_clock(), afec_enable(), afec_xdmac_configure(), at30tse_init(), bno055_i2c_bus_init(), config_uart_and_pck(), configure_button(), configure_buttons(), configure_tc(), configure_tc_trigger(), extint_initialize(), gfx_ili9325_init(), gfx_ili93xx_init(), gmac_low_level_init(), hsmci_init(), ili9488_init(), ISR(), main(), memories_initialization(), nm_bsp_register_isr(), nm_bus_init(), otg_dual_enable(), pmc_enable_all_periph_clk(), run_periph_clk_cfg_test(), run_ssc_test(), run_trng_test(), spi_xdmac_configure(), sys_init_timing(), sysclk_enable_peripheral_clock(), udd_enable(), and uhd_enable().
void pmc_enable_pllack | ( | uint32_t | mula, |
uint32_t | pllacount, | ||
uint32_t | diva | ||
) |
Enable PLLA clock.
mula | PLLA multiplier. |
pllacount | PLLA counter. |
diva | Divider. |
References pmc_disable_pllack().
Referenced by main(), and run_switch_pllack_as_mck_test().
void pmc_enable_sleepmode | ( | uint8_t | uc_type | ) |
Enable Sleep Mode.
Enter condition: (WFE or WFI) + (SLEEPDEEP bit = 0) + (LPM bit = 0)
uc_type | 0 for wait for interrupt, 1 for wait for event. |
References UNUSED.
Referenced by run_sleep_mode_test().
void pmc_enable_waitmode | ( | void | ) |
Enable Wait Mode.
Enter condition: WFE + (SLEEPDEEP bit = 0) + (LPM bit = 1)
uint32_t pmc_get_interrupt_mask | ( | void | ) |
Get PMC interrupt mask.
uint32_t pmc_get_status | ( | void | ) |
Get current status.
uint32_t pmc_get_writeprotect_status | ( | void | ) |
Return write protect status.
uint32_t pmc_is_locked_pllack | ( | void | ) |
uint32_t pmc_is_pck_enabled | ( | uint32_t | ul_id | ) |
Check if the specified programmable clock is enabled.
ul_id | Id of the programmable clock. |
0 | Programmable clock is disabled or unknown. |
1 | Programmable clock is enabled. |
uint32_t pmc_is_periph_clk_enabled | ( | uint32_t | ul_id | ) |
Check if the specified peripheral clock is enabled.
ul_id | Peripheral ID (ID_xxx). |
0 | Peripheral clock is disabled or unknown. |
1 | Peripheral clock is enabled. |
void pmc_mainck_osc_select | ( | uint32_t | ul_xtal_rc | ) |
Select Main Crystal or internal RC as main clock source.
ul_xtal_rc | 0 internal RC is selected, otherwise Main Crystal. |
References CKGR_MOR_KEY_PASSWD.
void pmc_mck_set_prescaler | ( | uint32_t | ul_pres | ) |
Set the prescaler of the MCK.
ul_pres | Prescaler value. |
Referenced by sysclk_set_prescalers().
void pmc_mck_set_source | ( | uint32_t | ul_source | ) |
Set the source of the MCK.
ul_source | Source selection value. |
Referenced by sysclk_set_source().
void pmc_osc_bypass_main_xtal | ( | void | ) |
Bypass main XTAL.
References CKGR_MOR_KEY_PASSWD.
void pmc_osc_disable_fastrc | ( | void | ) |
void pmc_osc_disable_main_xtal | ( | void | ) |
Disable the main Xtal.
References CKGR_MOR_KEY_PASSWD.
void pmc_osc_disable_xtal | ( | uint32_t | ul_bypass | ) |
Disable the external Xtal.
ul_bypass | 0 for Xtal, 1 for bypass. |
References CKGR_MOR_KEY_PASSWD.
Referenced by osc_disable().
void pmc_osc_enable_fastrc | ( | uint32_t | ul_rc | ) |
Enable fast RC oscillator.
ul_rc | Fast RC oscillator(4/8/12Mhz). |
References CKGR_MOR_KEY_PASSWD.
void pmc_osc_enable_main_xtal | ( | uint32_t | ul_xtal_startup_time | ) |
Enable main XTAL oscillator.
ul_xtal_startup_time | Xtal start-up time, in number of slow clocks. |
References CKGR_MOR_KEY_PASSWD.
uint32_t pmc_osc_is_bypassed_main_xtal | ( | void | ) |
Check if the main crystal is bypassed.
0 | Xtal is bypassed, otherwise not. |
uint32_t pmc_osc_is_ready_32kxtal | ( | void | ) |
Check if the external 32k Xtal is ready.
1 | External 32k Xtal is ready. |
0 | External 32k Xtal is not ready. |
Referenced by osc_is_ready().
uint32_t pmc_osc_is_ready_fastrc | ( | void | ) |
Check if the main fastrc is ready.
0 | Xtal is not ready, otherwise ready. |
uint32_t pmc_osc_is_ready_main_xtal | ( | void | ) |
Check if the main crystal is ready.
0 | main crystal is not ready, otherwise ready. |
uint32_t pmc_osc_is_ready_mainck | ( | void | ) |
Check if the MAINCK is ready.
Depending on MOSCEL, MAINCK can be one of Xtal, bypass or internal RC.
1 | Xtal is ready. |
0 | Xtal is not ready. |
Referenced by osc_is_ready().
void pmc_pck_set_prescaler | ( | uint32_t | ul_id, |
uint32_t | ul_pres | ||
) |
Set the prescaler for the specified programmable clock.
ul_id | Peripheral ID. |
ul_pres | Prescaler value. |
void pmc_pck_set_source | ( | uint32_t | ul_id, |
uint32_t | ul_source | ||
) |
Set the source oscillator for the specified programmable clock.
ul_id | Peripheral ID. |
ul_source | Source selection value. |
void pmc_set_fast_startup_input | ( | uint32_t | ul_inputs | ) |
Set the wake-up inputs for fast startup mode registers (event generation).
ul_inputs | Wake up inputs to enable. |
References PMC_FAST_STARTUP_Msk.
Referenced by main(), otg_dual_enable(), otg_io_pin_init(), udd_enable(), and uhd_enable().
void pmc_set_writeprotect | ( | uint32_t | ul_enable | ) |
Enable or disable write protect of PMC registers.
ul_enable | 1 to enable, 0 to disable. |
References PMC_WPMR_WPKEY_PASSWD.
void pmc_switch_mainck_to_fastrc | ( | uint32_t | ul_moscrcf | ) |
Switch main clock source selection to internal fast RC.
ul_moscrcf | Fast RC oscillator(4/8/12Mhz). |
0 | Success. |
1 | Timeout error. |
2 | Invalid frequency. |
References CKGR_MOR_KEY_PASSWD.
Referenced by main(), osc_enable(), and run_switch_mainck_as_mck_test().
void pmc_switch_mainck_to_xtal | ( | uint32_t | ul_bypass, |
uint32_t | ul_xtal_startup_time | ||
) |
Switch main clock source selection to external Xtal/Bypass.
ul_bypass | 0 for Xtal, 1 for bypass. |
0 | Success. |
1 | Timeout error. |
References CKGR_MOR_KEY_PASSWD.
Referenced by main(), osc_enable(), and run_switch_mainck_as_mck_test().
uint32_t pmc_switch_mck_to_mainck | ( | uint32_t | ul_pres | ) |
Switch master clock source selection to main clock.
ul_pres | Processor clock prescaler. |
0 | Success. |
1 | Timeout error. |
References PMC_TIMEOUT.
Referenced by main(), run_switch_mainck_as_mck_test(), run_switch_pllack_as_mck_test(), switch_mck_to_default(), and sysclk_init().
uint32_t pmc_switch_mck_to_pllack | ( | uint32_t | ul_pres | ) |
Switch master clock source selection to PLLA clock.
ul_pres | Processor clock prescaler. |
0 | Success. |
1 | Timeout error. |
References PMC_TIMEOUT.
Referenced by main(), run_switch_pllack_as_mck_test(), and sysclk_init().
uint32_t pmc_switch_mck_to_sclk | ( | uint32_t | ul_pres | ) |
Switch master clock source selection to slow clock.
ul_pres | Processor clock prescaler. |
0 | Success. |
1 | Timeout error. |
References PMC_TIMEOUT.
Referenced by main(), run_switch_mainck_as_mck_test(), run_switch_slck_as_mck_test(), and sysclk_init().
uint32_t pmc_switch_pck_to_mainck | ( | uint32_t | ul_id, |
uint32_t | ul_pres | ||
) |
Switch programmable clock source selection to main clock.
ul_id | Id of the programmable clock. |
ul_pres | Programmable clock prescaler. |
0 | Success. |
1 | Timeout error. |
References PMC_TIMEOUT.
Referenced by config_uart_and_pck(), main(), and run_switch_mainck_as_mck_test().
uint32_t pmc_switch_pck_to_mck | ( | uint32_t | ul_id, |
uint32_t | ul_pres | ||
) |
Switch programmable clock source selection to mck.
ul_id | Id of the programmable clock. |
ul_pres | Programmable clock prescaler. |
0 | Success. |
1 | Timeout error. |
References PMC_TIMEOUT.
uint32_t pmc_switch_pck_to_pllack | ( | uint32_t | ul_id, |
uint32_t | ul_pres | ||
) |
Switch programmable clock source selection to PLLA clock.
ul_id | Id of the programmable clock. |
ul_pres | Programmable clock prescaler. |
0 | Success. |
1 | Timeout error. |
References PMC_TIMEOUT.
Referenced by config_uart_and_pck(), mcan_init(), and run_switch_pllack_as_mck_test().
uint32_t pmc_switch_pck_to_sclk | ( | uint32_t | ul_id, |
uint32_t | ul_pres | ||
) |
Switch programmable clock source selection to slow clock.
ul_id | Id of the programmable clock. |
ul_pres | Programmable clock prescaler. |
0 | Success. |
1 | Timeout error. |
References PMC_TIMEOUT.
Referenced by config_uart_and_pck(), configure_tc(), and run_switch_slck_as_mck_test().
void pmc_switch_sclk_to_32kxtal | ( | uint32_t | ul_bypass | ) |
Switch slow clock source selection to external 32k (Xtal or Bypass).
ul_bypass | 0 for Xtal, 1 for bypass. |
References SUPC_CR_KEY_PASSWD, and SUPC_MR_KEY_PASSWD.
Referenced by main(), and osc_enable().