123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219 |
- ////////////////////////////////////////////////////////////////////////////////
- /// @file reg_pwr.h
- /// @author AE TEAM
- /// @brief THIS FILE CONTAINS ALL THE FUNCTIONS PROTOTYPES FOR THE SERIES OF
- /// MM32 FIRMWARE LIBRARY.
- ////////////////////////////////////////////////////////////////////////////////
- /// @attention
- ///
- /// THE EXISTING FIRMWARE IS ONLY FOR REFERENCE, WHICH IS DESIGNED TO PROVIDE
- /// CUSTOMERS WITH CODING INFORMATION ABOUT THEIR PRODUCTS SO THEY CAN SAVE
- /// TIME. THEREFORE, MINDMOTION SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT OR
- /// CONSEQUENTIAL DAMAGES ABOUT ANY CLAIMS ARISING OUT OF THE CONTENT OF SUCH
- /// HARDWARE AND/OR THE USE OF THE CODING INFORMATION CONTAINED HEREIN IN
- /// CONNECTION WITH PRODUCTS MADE BY CUSTOMERS.
- ///
- /// <H2><CENTER>© COPYRIGHT MINDMOTION </CENTER></H2>
- ////////////////////////////////////////////////////////////////////////////////
- // Define to prevent recursive inclusion
- #ifndef __REG_PWR_H
- #define __REG_PWR_H
- // Files includes
- #include <stdint.h>
- #include <stdbool.h>
- #include "types.h"
- #if defined ( __CC_ARM )
- #pragma anon_unions
- #endif
- ////////////////////////////////////////////////////////////////////////////////
- /// @brief PWR Base Address Definition
- ////////////////////////////////////////////////////////////////////////////////
- #define PWR_BASE (APB1PERIPH_BASE + 0x7000) ///< Base Address: 0x40007000
- ////////////////////////////////////////////////////////////////////////////////
- /// @brief PWR Register Structure Definition
- ////////////////////////////////////////////////////////////////////////////////
- typedef struct {
- union {
- __IO u32 CR; ///< Control register, offset: 0x00
- __IO u32 CR1;
- };
- union {
- __IO u32 CSR; ///< Control Status register offset: 0x04
- __IO u32 CSR1;
- };
- __IO u32 CR2; ///< Control register 2 offset: 0x08
- __IO u32 CR3; ///< Control register 3 offset: 0x0C
- __IO u32 CR4; ///< Control register 4 offset: 0x10
- __IO u32 CR5; ///< Control register 5 offset: 0x14
- __IO u32 CR6; ///< Control register 6 offset: 0x18
- __IO u32 SR; ///< Status register offset: 0x1C
- __IO u32 SCR; ///< clear status register offset: 0x20
- __IO u32 CFGR; ///< Configuration register offset: 0x24
- } PWR_TypeDef;
- ////////////////////////////////////////////////////////////////////////////////
- /// @brief PWR type pointer Definition
- ////////////////////////////////////////////////////////////////////////////////
- #define PWR ((PWR_TypeDef*) PWR_BASE)
- ////////////////////////////////////////////////////////////////////////////////
- /// @brief PWR_CR register Bit definition
- ////////////////////////////////////////////////////////////////////////////////
- #define PWR_CR_LDPS_Pos (0)
- #define PWR_CR_LDPS (0x01U << PWR_CR_LDPS_Pos) ///< Domain Write Protction
- #define PWR_CR_PDDS_Pos (1)
- #define PWR_CR_PDDS (0x01U << PWR_CR_PDDS_Pos) ///< Power Down Deepsleep
- #define PWR_CR_CSBF_Pos (3)
- #define PWR_CR_CSBF (0x01U << PWR_CR_CSBF_Pos) ///< Clear Standby Flag
- #define PWR_CR_LPR_Pos (13)
- #define PWR_CR_LPR (0x01U << PWR_CR_LPR_Pos) ///< Low power run
- #define PWR_CR_VOS_Pos (14)
- #define PWR_CR_VOS0 (0x00U << PWR_CR_VOS_Pos) ///< Modulator Voltage Output Select 1.80V
- #define PWR_CR_VOS1 (0x01U << PWR_CR_VOS_Pos) ///< Modulator Voltage Output Select 1.70V
- #define PWR_CR_VOS2 (0x02U << PWR_CR_VOS_Pos) ///< Modulator Voltage Output Select 1.60V
- #define PWR_CR_VOS3 (0x03U << PWR_CR_VOS_Pos) ///< Modulator Voltage Output Select 1.55V
- ////////////////////////////////////////////////////////////////////////////////
- /// @brief PWR_CSR register Bit definition
- ////////////////////////////////////////////////////////////////////////////////
- #define PWR_CSR_SBF_Pos (1)
- #define PWR_CSR_SBF (0x01U << PWR_CSR_SBF_Pos) ///< Standby Flag
- #define PWR_CSR_VOSRDY_Pos (14)
- #define PWR_CSR_VOSRDY (0x01U << PWR_CR_VOSRDY_Pos) ///< Voltage Modulator Output Selection Ready
- ////////////////////////////////////////////////////////////////////////////////
- /// @brief PWR_CR2 register Bit definition
- ////////////////////////////////////////////////////////////////////////////////
- #define PWR_CR2_EWUP1_Pos (0)
- #define PWR_CR2_EWUP1 (0x01U << PWR_CR2_EWUP1_Pos) ///< Enable WKUP1 wake-up pin
- #define PWR_CR2_EWUP2_Pos (1)
- #define PWR_CR2_EWUP2 (0x01U << PWR_CR2_EWUP2_Pos) ///< Enable WKUP2 wake-up pin
- #define PWR_CR2_EWUP3_Pos (2)
- #define PWR_CR2_EWUP3 (0x01U << PWR_CR2_EWUP3_Pos) ///< Enable WKUP3 wake-up pin
- #define PWR_CR2_EWUP4_Pos (3)
- #define PWR_CR2_EWUP4 (0x01U << PWR_CR2_EWUP4_Pos) ///< Enable WKUP4 wake-up pin
- #define PWR_CR2_EWUP5_Pos (4)
- #define PWR_CR2_EWUP5 (0x01U << PWR_CR2_EWUP5_Pos) ///< Enable WKUP5 wake-up pin
- #define PWR_CR2_EWUP6_Pos (5)
- #define PWR_CR2_EWUP6 (0x01U << PWR_CR2_EWUP6_Pos) ///< Enable WKUP6 wake-up pin
- #define PWR_CR2_ENWU_Pos (15)
- #define PWR_CR2_ENWU (0x01U << PWR_CR2_ENWU_Pos) ///< Enable wakeup module
- ////////////////////////////////////////////////////////////////////////////////
- /// @brief PWR_CR3 register Bit definition
- ////////////////////////////////////////////////////////////////////////////////
- #define PWR_CR3_WP1_Pos (0)
- #define PWR_CR3_WP1 (0x01U << PWR_CR3_WP1_Pos) ///< WKUP1 used for event polarity detection
- #define PWR_CR3_WP2_Pos (1)
- #define PWR_CR3_WP2 (0x01U << PWR_CR3_WP2_Pos) ///< WKUP2 used for event polarity detection
- #define PWR_CR3_WP3_Pos (2)
- #define PWR_CR3_WP3 (0x01U << PWR_CR3_WP3_Pos) ///< WKUP3 used for event polarity detection
- #define PWR_CR3_WP4_Pos (3)
- #define PWR_CR3_WP4 (0x01U << PWR_CR3_WP4_Pos) ///< WKUP4 used for event polarity detection
- #define PWR_CR3_WP5_Pos (4)
- #define PWR_CR3_WP5 (0x01U << PWR_CR3_WP5_Pos) ///< WKUP5 used for event polarity detection
- #define PWR_CR3_WP6_Pos (5)
- #define PWR_CR3_WP6 (0x01U << PWR_CR3_WP6_Pos) ///< WKUP6 used for event polarity detection
- ////////////////////////////////////////////////////////////////////////////////
- /// @brief PWR_CR4 register Bit definition
- ////////////////////////////////////////////////////////////////////////////////
- #define PWR_CR4_FILTSEL0_Pos (0)
- #define PWR_CR4_FILTSEL0 (0x01U << PWR_CR4_FILTSEL0_Pos) ///< selection wake-up source
- #define PWR_CR4_FILTE0_Pos (2)
- #define PWR_CR4_FILTE0 (0x01U << PWR_CR4_FILTE0_Pos) ///< enable Filter 0
- #define PWR_CR4_FILTF0_Pos (4)
- #define PWR_CR4_FILTF0 (0x01U << PWR_CR4_FILTF0_Pos) ///< Whether the wake source passes through filter 0
- #define PWR_CR4_FILTCNT0_Pos (8)
- #define PWR_CR4_FILTCNT0 (0xFFU << PWR_CR4_FILTCNT0_Pos) ///< Filter 0 counter
- ////////////////////////////////////////////////////////////////////////////////
- /// @brief PWR_CR5 register Bit definition
- ////////////////////////////////////////////////////////////////////////////////
- #define PWR_CR5_FILTSEL1_Pos (0)
- #define PWR_CR5_FILTSEL1 (0x01U << PWR_CR5_FILTSEL1_Pos) ///< selection wake-up source
- #define PWR_CR5_FILTE1_Pos (2)
- #define PWR_CR5_FILTE1 (0x01U << PWR_CR5_FILTE1_Pos) ///< enable Filter 1
- #define PWR_CR5_FILTF1_Pos (4)
- #define PWR_CR5_FILTF1 (0x01U << PWR_CR5_FILTF1_Pos) ///< Whether the wake source passes through filter 1
- #define PWR_CR5_FILTCNT1_Pos (8)
- #define PWR_CR5_FILTCNT1 (0xFFU << PWR_CR5_FILTCNT1_Pos) ///< Filter 1 counter
- ////////////////////////////////////////////////////////////////////////////////
- /// @brief PWR_CR6 register Bit definition
- ////////////////////////////////////////////////////////////////////////////////
- #define PWR_CR6_STDBY_FS_W_Pos (0)
- #define PWR_CR6_STDBY_FS_W1 (0x00U << PWR_CR6_STDBY_FS_W_Pos) ///< 1 LSI cycle wake
- #define PWR_CR6_STDBY_FS_W2 (0x01U << PWR_CR6_STDBY_FS_W_Pos) ///< 2 LSI cycle wake
- #define PWR_CR6_STDBY_FS_W3 (0x02U << PWR_CR6_STDBY_FS_W_Pos) ///< 3 LSI cycle wake
- #define PWR_CR6_STDBY_FS_W4 (0x03U << PWR_CR6_STDBY_FS_W_Pos) ///< 4 LSI cycle wake
- #define PWR_CR6_STDBY_FS_W5 (0x04U << PWR_CR6_STDBY_FS_W_Pos) ///< 5 LSI cycle wake
- #define PWR_CR6_STDBY_FS_W6 (0x05U << PWR_CR6_STDBY_FS_W_Pos) ///< 6 LSI cycle wake
- #define PWR_CR6_STDBY_FS_W7 (0x06U << PWR_CR6_STDBY_FS_W_Pos) ///< 7 LSI cycle wake
- #define PWR_CR6_STDBY_FS_W8 (0x07U << PWR_CR6_STDBY_FS_W_Pos) ///< 8 LSI cycle wake
- ////////////////////////////////////////////////////////////////////////////////
- /// @brief PWR_SR register Bit definition
- ////////////////////////////////////////////////////////////////////////////////
- #define PWR_SR_WUF1_Pos (0)
- #define PWR_SR_WUF1 (0x01U << PWR_SR_WUF1_Pos) ///< wake-up flag 1
- #define PWR_SR_WUF2_Pos (1)
- #define PWR_SR_WUF2 (0x01U << PWR_SR_WUF2_Pos) ///< wake-up flag 2
- #define PWR_SR_WUF3_Pos (2)
- #define PWR_SR_WUF3 (0x01U << PWR_SR_WUF3_Pos) ///< wake-up flag 3
- #define PWR_SR_WUF4_Pos (3)
- #define PWR_SR_WUF4 (0x01U << PWR_SR_WUF4_Pos) ///< wake-up flag 4
- #define PWR_SR_WUF5_Pos (4)
- #define PWR_SR_WUF5 (0x01U << PWR_SR_WUF5_Pos) ///< wake-up flag 5
- #define PWR_SR_WUF6_Pos (5)
- #define PWR_SR_WUF6 (0x01U << PWR_SR_WUF6_Pos) ///< wake-up flag 6
- ////////////////////////////////////////////////////////////////////////////////
- /// @brief PWR_SCR register Bit definition
- ////////////////////////////////////////////////////////////////////////////////
- #define PWR_SCR_CWUF1_Pos (0)
- #define PWR_SCR_CWUF1 (0x01U << PWR_SCR_CWUF1_Pos) ///< clear wake-up flag 1
- #define PWR_SCR_CWUF2_Pos (1)
- #define PWR_SCR_CWUF2 (0x01U << PWR_SCR_CWUF2_Pos) ///< clear wake-up flag 2
- #define PWR_SCR_CWUF3_Pos (2)
- #define PWR_SCR_CWUF3 (0x01U << PWR_SCR_CWUF3_Pos) ///< clear wake-up flag 3
- #define PWR_SCR_CWUF4_Pos (3)
- #define PWR_SCR_CWUF4 (0x01U << PWR_SCR_CWUF4_Pos) ///< clear wake-up flag 4
- #define PWR_SCR_CWUF5_Pos (4)
- #define PWR_SCR_CWUF5 (0x01U << PWR_SCR_CWUF5_Pos) ///< clear wake-up flag 5
- #define PWR_SCR_CWUF6_Pos (5)
- #define PWR_SCR_CWUF6 (0x01U << PWR_SCR_CWUF6_Pos) ///< clear wake-up flag 6
- ////////////////////////////////////////////////////////////////////////////////
- /// @brief PWR_CFGR register Bit definition
- ////////////////////////////////////////////////////////////////////////////////
- #define PWR_CFGR_LSICALSEL_Pos (0)
- #define PWR_CFGR_LSICALSEL (0x1FU << PWR_CFGR_LSICALSEL_Pos) ///< Enable internal clock calibration
- #define PWR_CFGR_LSICAL_Pos (5)
- #define PWR_CFGR_LSICAL (0x1FU << PWR_CFGR_LSICAL_Pos) ///< Internal high-speed clock calibration
- /// @}
- /// @}
- /// @}
- ////////////////////////////////////////////////////////////////////////////////
- #endif
- ////////////////////////////////////////////////////////////////////////////////
|