30#include "xc6xxx_fmc_spi.h"
42 cprao_aon_bbldo_adj_set(0x3C);
43 cprao_aon_lpoldo_adj_set(4);
51 cprao_aon_bbldo_adj_set(0x2a);
52 cprao_aon_lpoldo_adj_set(7);
58 cprao_aon_bbldo_adj_set(0x3C);
59 cprao_aon_lpoldo_adj_set(4);
65 cprao_aon_bbldo_adj_set(0x9C);
66 cprao_aon_lpoldo_adj_set(4);
72 cprao_aon_bbldo_adj_set(0x9C);
73 cprao_aon_lpoldo_adj_set(7);
79 cprao_aon_bbldo_adj_set(0x9C);
80 cprao_aon_lpoldo_adj_set(4);
99 adc_rf_ctl__pd_adc__setf(ADC_RF_CTL_PD_GADC_POWERDOWN);
114 adc_rf_ctl__pd_adc__setf(ADC_RF_CTL_PD_GADC_WAKWUP);
121 cprao_aon_reg1__timer_ao_sleep_clksw__setf(1);
123 val = cprao_aon_reg1__timer_ao_sleep_clksw__getf();
125 while ((val & 0x01) != 1) {
128 val = cprao_aon_reg1__timer_ao_sleep_clksw__getf();
134 cprao_aon_reg1__timer_ao_sleep_clksw__setf(0);
140 cprao_aon_sys_time_set((RST_READY_TIME << 12) | (OSC32_STABLE_TIME));
181 FMC_SPI_Flash_PowerDown();
198 cpr_fmc_ctl_set(0x3000 | (1 << 9));
200 for (
int i = 0; i < 10; i++) {
231 cpr_fmc_ctl_set(0x3503);
249 FMC_SPI_Flash_WakeUp();
297 cprao_aon_reg4__bb_coreldo_normal_sw_mux__setf(1);
303 rtc_rccal_en_set(0x00);
310 FMC_SPI_Flash_PowerDown();
330 cpr_fmc_ctl_set(0x3000 | (1 << 9));
332 for (
int i = 0; i < 10; i++) {
364 cpr_fmc_ctl_set(0x3503);
382 FMC_SPI_Flash_WakeUp();
423 adc_rf_ctl__pd_adc__setf(ADC_RF_CTL_PD_GADC_POWERDOWN);
435 FMC_SPI_Flash_PowerDown();
452 cpr_fmc_ctl_set(0x3000 | (1 << 9));
454 for (
int i = 0; i < 10; i++) {
485 cpr_fmc_ctl_set(0x3503);
503 FMC_SPI_Flash_WakeUp();
562 FMC_SPI_Flash_PowerDown();
566 cpr_fmc_ctl_set(0x3000 | (1 << 11) | (1 << 9));
595 cpr_fmc_ctl_set(0x3503);
612 FMC_SPI_Flash_WakeUp();
640 cprao_aon_puctrl1_set(0x5555F);
651 NVIC_DisableIRQ(GPIO_IRQn);
663 for (
int i = 0; i <
GPIO_36; i++) {
666 if (i == 18 || i == 19 )
669 }
else if (i == 33 || i == 34) {
677 }
else if (i == 20 || i == 21) {
746 NVIC_EnableIRQ(GPIO_IRQn);
751 cpr_ctlapbclken_grctl__rtc_pclk_en__setf(ENABLE);
752 cprao_aon_clken_grctl__rtc_clk_en__setf(ENABLE);
754 rtc_pwrkey_ctrl0_set(0);
755 rtc_pwrkey_ctrl1_set(0);
756 rtc_pwrkey_ctrl2_set(0);
770 if (level == DEEP_SLEEP_GPIO_WAKE_HIGH_LEVEL) {
773 val = rtc_pwrkey_ctrl0__powkey_edge__getf();
775 rtc_pwrkey_ctrl0__powkey_edge__setf(val);
777 }
else if (level == DEEP_SLEEP_GPIO_WAKE_LOW_LEVEL) {
780 val = rtc_pwrkey_ctrl0__powkey_edge__getf();
782 rtc_pwrkey_ctrl0__powkey_edge__setf(val);
788 val_ctl =rtc_pwrkey_ctrl1_get();
789 rtc_pwrkey_ctrl1__powkey_en__setf((1 << pin)|val_ctl);
791 rtc_pwrkey_ctrl2__powkey_inten__setf(ENABLE);
793 NVIC_EnableIRQ(RTC_IRQn);
800 if(cpr_ctlapbclken_grctl__rtc_pclk_en__getf()==DISABLE){
801 cpr_ctlapbclken_grctl__rtc_pclk_en__setf(ENABLE);
803 if(cprao_aon_clken_grctl__rtc_clk_en__getf()==DISABLE){
804 cprao_aon_clken_grctl__rtc_clk_en__setf(ENABLE);
807 val = rtc_pwrkey_soft_ctrl0_get();
808 val = val | (1 << pin);
809 rtc_pwrkey_soft_ctrl0_set(val);
811 val = rtc_pwrkey_soft_ctrl1_get();
817 rtc_pwrkey_soft_ctrl1_set(val);
820 val = rtc_pwrkey_ctrl3__aogpio_soft_out_en_h__getf();
821 val = val | (1 << (pin-32));
822 rtc_pwrkey_ctrl3__aogpio_soft_out_en_h__setf(val);
824 val = rtc_pwrkey_ctrl3__aogpio_soft_out_value_h__getf();
826 val &= ~(1<<(pin-32));
828 val |= (1<<(pin-32));
830 rtc_pwrkey_ctrl3__aogpio_soft_out_value_h__setf(val);
838 if(cpr_ctlapbclken_grctl__rtc_pclk_en__getf()==DISABLE){
839 cpr_ctlapbclken_grctl__rtc_pclk_en__setf(ENABLE);
841 if(cprao_aon_clken_grctl__rtc_clk_en__getf()==DISABLE){
842 cprao_aon_clken_grctl__rtc_clk_en__setf(ENABLE);
846 val = rtc_pwrkey_soft_ctrl0_get();
847 val = val | (1 << pin);
848 rtc_pwrkey_soft_ctrl0_set(val);
850 val = rtc_pwrkey_soft_ctrl1_get();
856 rtc_pwrkey_soft_ctrl1_set(val);
859 val = rtc_pwrkey_ctrl3__aogpio_soft_out_en_h__getf();
860 val = val | (1 << (pin-32));
861 rtc_pwrkey_ctrl3__aogpio_soft_out_en_h__setf(val);
863 val = rtc_pwrkey_ctrl3__aogpio_soft_out_value_h__getf();
865 if(( val & 1<<(pin-32)) == 0){
866 val |= (1<<(pin-32));
868 val &= ~(1<<(pin-32));
870 rtc_pwrkey_ctrl3__aogpio_soft_out_value_h__setf(val);
881 cprao_aon_dcdc_ctr_reg1__dcdc_ctrl__setf(vol_level);
888 cprao_aon_reg1__bb_coreldo_dcdc_sw_soft__setf(0);
889 cprao_aon_reg1__bb_coreldo_dcdc_sw_softsel__setf(0);
890 cprao_aon_reg1__bb_coreldo_dcdc_sw_mux__setf(1);
891 cprao_aon_dcdc_ctr_reg0_set(1<<6);
897 cprao_aon_dcdc_ctr_reg0__dcdc_en_soft__setf(1);
898 cprao_aon_dcdc_ctr_reg0__dcdc_bg_en_soft__setf(1);
901 cprao_aon_reg1__bb_coreldo_dcdc_sw_softsel__setf(1);
902 cprao_aon_reg1__bb_coreldo_dcdc_sw_soft__setf(1);
903 for (
volatile uint16_t dly = 0; dly < 600; dly++) ;
904 cprao_aon_reg1__bb_coreldo_dcdc_sw_mux__setf(0);
GPIO_FUN_SEL_TypeDef FunSel
CLOCK_LFCLK_Src_Typedef xc_clock_lfclk_src_get(void)
xc_clock_lfclk_src_get
CLOCK_HFCLK_In_Typedef xc_clock_hfclk_in_get(void)
xc_clock_hfclk_in_get
__RAM_CODE void xc_fmc_spi_flash_power_down(void)
xc_fmc_spi_flash_power_down
__RAM_CODE void xc_fmc_spi_flash_wake_up(void)
xc_fmc_spi_flash_power_down
void xc_gpio_init(GPIO_InitCfg_t *init_cfg)
xc_gpio_init
__RAM_CODE void xc_pwr_ao_timer_pclk32k_set(void)
void xc_pwr_pwrkey_write_pin(uint8_t pin, uint8_t level)
void xc_adc_wakeup(void)
xc_adc_wakeup
void xc_pwr_vol_set(void)
void xc_adc_powerdown(void)
xc_adc_powerdown
void xc_pwr_pwrkey_init(void)
void xc_pwr_ao_timer_pclk32m_Set()
__RAM_CODE void xc_deep_sleep()
void xc_pwr_dcdc_init(uint8_t vol_level)
void xc_pwr_gpio_sleep_config(void)
__RAM_CODE void xc_pwr_ble_sleep_enter(void)
void xc_pwr_gpio_lightsleep_wake_config(uint8_t pin, uint8_t edge_it)
__RAM_CODE void xc_sleep(void)
void xc_pwr_sleep_init(PWR_InitCfg_t *pwr_cfg)
void xc_pwr_pwrkey_toggle_pin(uint8_t pin)
__RAM_CODE void xc_pwr_cpu_sleep_enter(void)
void xc_pwr_pwrkey_deepsleep_wake_config(uint8_t pin, uint8_t level)
The header of xc_drv_pwr.c
static __inline void xc_pwr_bor_off(void)
static __RAM_CODE __inline void xc_pwr_rom_off(void)
static __inline void xc_pwr_rc32k_calib_off()
static __inline void xc_pwr_rfdigital_on(void)
static __inline void xc_pwr_modem_on(void)
static __inline void xc_pwr_osc_off(void)
static __inline void xc_pwr_rc16m_off(void)
static __inline void xc_pwr_pd_lightsleep_set(void)
static __inline void xc_pwr_wake_it_set(uint32_t Val)
static __inline void xc_pwr_revddldo_off()
static __inline void xc_pwr_pd_deepsleep_set(void)
static __inline void xc_pwr_rfdigital_off(void)
static __RAM_CODE __inline void xc_pwr_rom_on(void)
static __inline void xc_pwr_opa_tempsensor_off(void)
static __inline void xc_pwr_sleepsrc_mask_set(uint32_t val)
static __inline void xc_pwr_opa_volr_off(void)
static __inline void xc_pwr_usb_off(void)
static __inline void xc_pwr_modem_off(void)
void delay_us(uint32_t nus)