| Mini51 BSP V3.02.002 The Board Support Package for Mini51 Series

sys.h
Go to the documentation of this file.
1 /**************************************************************************/
12 #ifndef __SYS_H__
13 #define __SYS_H__
14
15 #ifdef __cplusplus
16 extern "C"
17 {
18 #endif
19
31 /*---------------------------------------------------------------------------------------------------------*/
32 /* Module Reset Control Resister constant definitions. */
33 /*---------------------------------------------------------------------------------------------------------*/
34 #define ADC_RST ((0x4<<24) | SYS_IPRSTC2_ADC_RST_Pos )
35 #define ACMP_RST ((0x4<<24) | SYS_IPRSTC2_ACMP_RST_Pos )
36 #define PWM_RST ((0x4<<24) | SYS_IPRSTC2_PWM_RST_Pos )
37 #define UART_RST ((0x4<<24) | SYS_IPRSTC2_UART_RST_Pos )
38 #define SPI_RST ((0x4<<24) | SYS_IPRSTC2_SPI_RST_Pos )
39 #define I2C_RST ((0x4<<24) | SYS_IPRSTC2_I2C_RST_Pos )
40 #define TMR1_RST ((0x4<<24) | SYS_IPRSTC2_TMR1_RST_Pos )
41 #define TMR0_RST ((0x4<<24) | SYS_IPRSTC2_TMR0_RST_Pos )
42 #define GPIO_RST ((0x4<<24) | SYS_IPRSTC2_GPIO_RST_Pos )
45 /*---------------------------------------------------------------------------------------------------------*/
46 /* Brown Out Detector Threshold Voltage Selection constant definitions. */
47 /*---------------------------------------------------------------------------------------------------------*/
48 #define SYS_BODCR_BOD_RST_EN (1UL<<SYS_BODCR_BOD_RSTEN_Pos)
49 #define SYS_BODCR_BOD_INTERRUPT_EN (0UL<<SYS_BODCR_BOD_RSTEN_Pos)
50 #define SYS_BODCR_BOD_DISABLE (3UL<<SYS_BODCR_BOD_VL_Pos)
51 #define SYS_BODCR_BOD_VL_4_4V (3UL<<SYS_BODCR_BOD_VL_Pos)
52 #define SYS_BODCR_BOD_VL_3_7V (2UL<<SYS_BODCR_BOD_VL_Pos)
53 #define SYS_BODCR_BOD_VL_2_7V (1UL<<SYS_BODCR_BOD_VL_Pos)
54 #define SYS_BODCR_BOD_VL_2_2V (0UL<<SYS_BODCR_BOD_VL_Pos)
57 /*---------------------------------------------------------------------------------------------------------*/
58 /* Multi-Function constant definitions. */
59 /*---------------------------------------------------------------------------------------------------------*/
60 #define SYS_MFP_TYPE_Msk(bit) (1UL << ((bit) +16))
61 #define SYS_MFP_ALT_Msk(bit) (1UL << ((bit) + 8))
62 #define SYS_MFP_MFP_Msk(bit) (1UL << ((bit) ))
64 #define SYS_MFP_P00_GPIO 0x00000000UL
65 #define SYS_MFP_P00_CTS 0x00000100UL
66 #define SYS_MFP_P00_TXD 0x00000101UL
67 #define SYS_MFP_P00_Msk 0x01000101UL
69 #define SYS_MFP_P01_GPIO 0x00000000UL
70 #define SYS_MFP_P01_SPISS 0x00000002UL
71 #define SYS_MFP_P01_RTS 0x00000200UL
72 #define SYS_MFP_P01_RXD 0x00000202UL
73 #define SYS_MFP_P01_Msk 0x02000202UL
75 #define SYS_MFP_P04_GPIO 0x00000000UL
76 #define SYS_MFP_P04_SPISS 0x00001000UL
77 #define SYS_MFP_P04_PWM5 0x00001010UL
78 #define SYS_MFP_P04_Msk 0x00001010UL
80 #define SYS_MFP_P05_GPIO 0x00000000UL
81 #define SYS_MFP_P05_MOSI 0x00002000UL
82 #define SYS_MFP_P05_Msk 0x00002020UL
84 #define SYS_MFP_P06_GPIO 0x00000000UL
85 #define SYS_MFP_P06_MISO 0x00004000UL
86 #define SYS_MFP_P06_Msk 0x00004040UL
88 #define SYS_MFP_P07_GPIO 0x00000000UL
89 #define SYS_MFP_P07_SPICLK 0x00008000UL
90 #define SYS_MFP_P07_Msk 0x00008080UL
92 #define SYS_MFP_P10_GPIO 0x00000000UL
93 #define SYS_MFP_P10_AIN1 0x00000001UL
94 #define SYS_MFP_P10_CPP0 0x00000101UL
95 #define SYS_MFP_P10_Msk 0x00000101UL
97 #define SYS_MFP_P12_GPIO 0x00000000UL
98 #define SYS_MFP_P12_AIN2 0x00000004UL
99 #define SYS_MFP_P12_RXD 0x00000400UL
100 #define SYS_MFP_P12_CPP0 0x00000404UL
101 #define SYS_MFP_P12_Msk 0x00000404UL
103 #define SYS_MFP_P13_GPIO 0x00000000UL
104 #define SYS_MFP_P13_AIN3 0x00000008UL
105 #define SYS_MFP_P13_TXD 0x00000800UL
106 #define SYS_MFP_P13_CPP0 0x00000808UL
107 #define SYS_MFP_P13_Msk 0x00000808UL
109 #define SYS_MFP_P14_GPIO 0x00000000UL
110 #define SYS_MFP_P14_AIN4 0x00000010UL
111 #define SYS_MFP_P14_CPN0 0x00001010UL
112 #define SYS_MFP_P14_Msk 0x00001010UL
114 #define SYS_MFP_P15_GPIO 0x00000000UL
115 #define SYS_MFP_P15_AIN5 0x00000020UL
116 #define SYS_MFP_P15_CPP0 0x00002020UL
117 #define SYS_MFP_P15_Msk 0x00002020UL
119 #define SYS_MFP_P22_GPIO 0x00000000UL
120 #define SYS_MFP_P22_PWM0 0x00000400UL
121 #define SYS_MFP_P22_Msk 0x00000404UL
123 #define SYS_MFP_P23_GPIO 0x00000000UL
124 #define SYS_MFP_P23_PWM1 0x00000800UL
125 #define SYS_MFP_P23_Msk 0x00000808UL
127 #define SYS_MFP_P24_GPIO 0x00000000UL
128 #define SYS_MFP_P24_PWM2 0x00001000UL
129 #define SYS_MFP_P24_Msk 0x00001010UL
131 #define SYS_MFP_P25_GPIO 0x00000000UL
132 #define SYS_MFP_P25_PWM3 0x00002000UL
133 #define SYS_MFP_P25_Msk 0x00002020UL
135 #define SYS_MFP_P26_GPIO 0x00000000UL
136 #define SYS_MFP_P26_PWM4 0x00004000UL
137 #define SYS_MFP_P26_CPO1 0x00004040UL
138 #define SYS_MFP_P26_Msk 0x00004040UL
140 #define SYS_MFP_P30_GPIO 0x00000000UL
141 #define SYS_MFP_P30_CPN1 0x00000100UL
142 #define SYS_MFP_P30_AIN6 0x00000101UL
143 #define SYS_MFP_P30_Msk 0x00000101UL
145 #define SYS_MFP_P31_GPIO 0x00000000UL
146 #define SYS_MFP_P31_CPP1 0x00000200UL
147 #define SYS_MFP_P31_AIN7 0x00000202UL
148 #define SYS_MFP_P31_Msk 0x00000202UL
150 #define SYS_MFP_P32_GPIO 0x00000000UL
151 #define SYS_MFP_P32_INT0 0x00000004UL
152 #define SYS_MFP_P32_T0EX 0x00000400UL
153 #define SYS_MFP_P32_STADC 0x00000404UL
154 #define SYS_MFP_P32_CPP1 0x01000000UL
155 #define SYS_MFP_P32_Msk 0x01000404UL
157 #define SYS_MFP_P34_GPIO 0x00000000UL
158 #define SYS_MFP_P34_T0 0x00000010UL
159 #define SYS_MFP_P34_SDA 0x00001000UL
160 #define SYS_MFP_P34_CPP1 0x00001010UL
161 #define SYS_MFP_P34_Msk 0x00001010UL
163 #define SYS_MFP_P35_GPIO 0x00000000UL
164 #define SYS_MFP_P35_T1 0x00000020UL
165 #define SYS_MFP_P35_SCL 0x00002000UL
166 #define SYS_MFP_P35_CPP1 0x00002020UL
167 #define SYS_MFP_P35_Msk 0x00002020UL
169 #define SYS_MFP_P36_GPIO 0x00000000UL
170 #define SYS_MFP_P36_T1EX 0x00000040UL
171 #define SYS_MFP_P36_CKO 0x00004000UL
172 #define SYS_MFP_P36_CPO0 0x00004040UL
173 #define SYS_MFP_P36_Msk 0x00004040UL
175 #define SYS_MFP_P46_GPIO 0x00000000UL
176 #define SYS_MFP_P46_ICE_CLK 0x00000040UL
177 #define SYS_MFP_P46_Msk 0x00004040UL
179 #define SYS_MFP_P47_GPIO 0x00000000UL
180 #define SYS_MFP_P47_ICE_DAT 0x00000080UL
181 #define SYS_MFP_P47_Msk 0x00008080UL
183 #define SYS_MFP_P50_GPIO 0x00000000UL
184 #define SYS_MFP_P50_XTAL1 0x00000001UL
185 #define SYS_MFP_P50_Msk 0x00000101UL
187 #define SYS_MFP_P51_GPIO 0x00000000UL
188 #define SYS_MFP_P51_XTAL2 0x00000002UL
189 #define SYS_MFP_P51_Msk 0x00000202UL
191 #define SYS_MFP_P52_GPIO 0x00000000UL
192 #define SYS_MFP_P52_INT1 0x00000004UL
193 #define SYS_MFP_P52_Msk 0x00000404UL
195 #define SYS_MFP_P53_GPIO 0x00000000UL
196 #define SYS_MFP_P53_AIN0 0x00000008UL
197 #define SYS_MFP_P53_Msk 0x00000808UL
199 #define SYS_MFP_P54_GPIO 0x00000000UL
200 #define SYS_MFP_P54_Msk 0x00001010UL
202 #define SYS_MFP_P55_GPIO 0x00000000UL
203 #define SYS_MFP_P55_Msk 0x00002020UL
207 /* end of group MINI51_SYS_EXPORTED_CONSTANTS */
208
219 #define SYS_CLEAR_BOD_INT_FLAG() (SYS->BODCTL |= SYS_BODCR_BOD_INTF_Msk)
220
228 #define SYS_CLEAR_BOD_LPM() (SYS->BODCTL &= ~SYS_BODCR_BOD_LPM_Msk)
229
237 #define SYS_DISABLE_BOD() (SYS->BODCTL = (SYS->BODCTL &~(SYS_BODCR_BOD_VL_Msk|SYS_BODCR_BOD_VL_EXT_Msk))|SYS_BODCR_BOD_DISABLE)
238
246 #define SYS_ENABLE_BOD() (SYS->BODCTL = (SYS->BODCTL & ~SYS_BODCR_BOD_VL_Msk) | SYS_BODCR_BOD_VL_3_7V)
247
255 #define SYS_GET_BOD_INT_FLAG() (SYS->BODCTL & SYS_BODCR_BOD_INTF_Msk)
256
265 #define SYS_GET_BOD_OUTPUT() (SYS->BODCTL & SYS_BODCR_BOD_OUT_Msk)
266
274 #define SYS_DISABLE_BOD_RST() (SYS->BODCTL &= ~SYS_BODCR_BOD_RSTEN_Msk)
275
283 #define SYS_ENABLE_BOD_RST() (SYS->BODCTL |= SYS_BODCR_BOD_RSTEN_Msk)
284
292 #define SYS_SET_BOD_LPM() (SYS->BODCTL |= SYS_BODCR_BOD_LPM_Msk)
293
305 #define SYS_SET_BOD_LEVEL(u32Level) (SYS->BODCTL = (SYS->BODCTL & ~SYS_BODCR_BOD_VL_Msk) | u32Level)
306
314 #define SYS_IS_BOD_RST() (SYS->RSTSRC & SYS_RSTSRC_RSTS_BOD_Msk)
315
323 #define SYS_IS_CPU_RST() (SYS->RSTSRC & SYS_RSTSRC_RSTS_CPU_Msk)
324
332 #define SYS_IS_POR_RST() (SYS->RSTSRC & SYS_RSTSRC_RSTS_POR_Msk)
333
341 #define SYS_IS_RSTPIN_RST() (SYS->RSTSRC & SYS_RSTSRC_RSTS_RESET_Msk)
342
350 #define SYS_IS_SYSTEM_RST() (SYS->RSTSRC & SYS_RSTSRC_RSTS_MCU_Msk)
351
359 #define SYS_IS_WDT_RST() (SYS->RSTSRC & SYS_RSTSRC_RSTS_WDT_Msk)
360
368 #define SYS_DISABLE_POR() (SYS->PORCR = 0x5AA5)
369
377 #define SYS_ENABLE_POR() (SYS->PORCR = 0)
378
391 #define SYS_CLEAR_RST_SOURCE(u32RstSrc) (SYS->RSTSRC = u32RstSrc )
392
393
394 void SYS_ClearResetSrc(uint32_t u32Src);
395 uint32_t SYS_GetBODStatus(void);
396 uint32_t SYS_GetResetSrc(void);
397 uint32_t SYS_IsRegLocked(void);
398 void SYS_LockReg(void);
399 void SYS_UnlockReg(void);
400 uint32_t SYS_ReadPDID(void);
401 void SYS_ResetChip(void);
402 void SYS_ResetCPU(void);
403 void SYS_ResetModule(uint32_t u32ModuleIndex);
404 void SYS_EnableBOD(int32_t i32Mode, uint32_t u32BODLevel);
405 void SYS_DisableBOD(void);
406 /* end of group MINI51_SYS_EXPORTED_FUNCTIONS */
408 /* end of group MINI51_SYS_Driver */
410 /* end of group MINI51_Device_Driver */
412
413 #ifdef __cplusplus
414 }
415 #endif
416
417 #endif //__SYS_H__
SYS_EnableBOD
void SYS_EnableBOD(int32_t i32Mode, uint32_t u32BODLevel)
This function configure BOD function. Configure BOD reset or interrupt mode and set Brown-out voltage...
Definition: sys.c:152
SYS_IsRegLocked
uint32_t SYS_IsRegLocked(void)
This function check register write-protection bit setting.
Definition: sys.c:61
SYS_LockReg
void SYS_LockReg(void)
This function enable register write-protection function.
Definition: sys.c:71
SYS_ClearResetSrc
void SYS_ClearResetSrc(uint32_t u32Src)
This function clear the selected system reset source.
Definition: sys.c:31
SYS_ResetChip
void SYS_ResetChip(void)
This function reset chip.
Definition: sys.c:104
SYS_GetBODStatus
uint32_t SYS_GetBODStatus(void)
This function get Brown-out detector output status.
Definition: sys.c:42
SYS_ResetCPU
void SYS_ResetCPU(void)
This function reset CPU.
Definition: sys.c:113
SYS_UnlockReg
void SYS_UnlockReg(void)
This function disable register write-protection function.
Definition: sys.c:81
SYS_ReadPDID
uint32_t SYS_ReadPDID(void)
This function get product ID.
Definition: sys.c:95
SYS_ResetModule
void SYS_ResetModule(uint32_t u32ModuleIndex)
This function reset selected modules.
Definition: sys.c:132
SYS_GetResetSrc
uint32_t SYS_GetResetSrc(void)
This function get the system reset source register value.
Definition: sys.c:51
SYS_DisableBOD
void SYS_DisableBOD(void)
This function disable BOD function.
Definition: sys.c:163