| MINI55_BSP V3.02.004 The Board Support Package for Mini55 Series MCU

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_IPRST1_ADCRST_Pos )
35#define ACMP_RST ((0x4<<24) | SYS_IPRST1_ACMPRST_Pos )
36#define PWM_RST ((0x4<<24) | SYS_IPRST1_PWMRST_Pos )
37#define UART0_RST ((0x4<<24) | SYS_IPRST1_UART0RST_Pos )
38#define UART1_RST ((0x4<<24) | SYS_IPRST1_UART1RST_Pos )
39#define SPI_RST ((0x4<<24) | SYS_IPRST1_SPIRST_Pos )
40#define I2C_RST ((0x4<<24) | SYS_IPRST1_I2C_RST_Pos )
41#define TMR1_RST ((0x4<<24) | SYS_IPRST1_TMR1RST_Pos )
42#define TMR0_RST ((0x4<<24) | SYS_IPRST1_TMR0RST_Pos )
43#define GPIO_RST ((0x4<<24) | SYS_IPRST1_GPIORST_Pos )
46/*---------------------------------------------------------------------------------------------------------*/
47/* Brown Out Detector Threshold Voltage Selection constant definitions. */
48/*---------------------------------------------------------------------------------------------------------*/
49#define SYS_BODCTL_BOD_RST_EN (1UL<<SYS_BODCTL_BODRSTEN_Pos)
50#define SYS_BODCTL_BOD_INTERRUPT_EN (0UL<<SYS_BODCTL_BODRSTEN_Pos)
52#define SYS_BODCTL_BOD_VL_3_0V ((3UL<<SYS_BODCTL_BODVL1_0_Pos)|(1UL<<SYS_BODCTL_BODVL2_Pos))
53#define SYS_BODCTL_BOD_VL_2_4V ((2UL<<SYS_BODCTL_BODVL1_0_Pos)|(1UL<<SYS_BODCTL_BODVL2_Pos))
54#define SYS_BODCTL_BOD_VL_2_0V ((1UL<<SYS_BODCTL_BODVL1_0_Pos)|(1UL<<SYS_BODCTL_BODVL2_Pos))
55#define SYS_BODCTL_BOD_VL_1_7V ((0UL<<SYS_BODCTL_BODVL1_0_Pos)|(1UL<<SYS_BODCTL_BODVL2_Pos))
57#define SYS_BODCTL_BOD_VL_4_4V ((3UL<<SYS_BODCTL_BODVL1_0_Pos)|(0UL<<SYS_BODCTL_BODVL2_Pos))
58#define SYS_BODCTL_BOD_VL_3_7V ((2UL<<SYS_BODCTL_BODVL1_0_Pos)|(0UL<<SYS_BODCTL_BODVL2_Pos))
59#define SYS_BODCTL_BOD_VL_2_7V ((1UL<<SYS_BODCTL_BODVL1_0_Pos)|(0UL<<SYS_BODCTL_BODVL2_Pos))
60#define SYS_BODCTL_BOD_VL_2_2V ((0UL<<SYS_BODCTL_BODVL1_0_Pos)|(0UL<<SYS_BODCTL_BODVL2_Pos))
62/*---------------------------------------------------------------------------------------------------------*/
63/* Bit definition of IRCTCTL register. */
64/*---------------------------------------------------------------------------------------------------------*/
65#define SYS_IRCTCTL_TRIM_22_1184M ((uint32_t)0x00000001)
67#define SYS_IRCTCTL_LOOP_4CLK ((uint32_t)0x00000000)
68#define SYS_IRCTCTL_LOOP_8CLK ((uint32_t)0x00000010)
69#define SYS_IRCTCTL_LOOP_16CLK ((uint32_t)0x00000020)
70#define SYS_IRCTCTL_LOOP_32CLK ((uint32_t)0x00000030)
72/*---------------------------------------------------------------------------------------------------------*/
73/* Bit definition of IRCTIEN register. */
74/*---------------------------------------------------------------------------------------------------------*/
75#define SYS_IRCTIEN_DISABLE ((uint32_t)0x00000000)
76#define SYS_IRCTIEN_FAIL_EN ((uint32_t)0x00000002)
77#define SYS_IRCTIEN_32KERR_EN ((uint32_t)0x00000004)
79/*---------------------------------------------------------------------------------------------------------*/
80/* Multi-Function constant definitions. */
81/*---------------------------------------------------------------------------------------------------------*/
82#define SYS_MFP_TYPE_Msk(bit) (1UL << ((bit) +16))
83#define SYS_MFP_ALT_Msk(bit) (1UL << ((bit) + 8))
84#define SYS_MFP_MFP_Msk(bit) (1UL << ((bit) ))
86#define SYS_MFP_P00_GPIO 0x00000000UL
87#define SYS_MFP_P00_CTS 0x00000100UL
88#define SYS_MFP_P00_TXD 0x00000101UL
89#define SYS_MFP_P00_Msk 0x01000101UL
91#define SYS_MFP_P01_GPIO 0x00000000UL
92#define SYS_MFP_P01_SPISS 0x00000002UL
93#define SYS_MFP_P01_RTS 0x00000200UL
94#define SYS_MFP_P01_RXD 0x00000202UL
95#define SYS_MFP_P01_Msk 0x02000202UL
97#define SYS_MFP_P04_GPIO 0x00000000UL
98#define SYS_MFP_P04_SPISS 0x00001000UL
99#define SYS_MFP_P04_PWM5 0x00001010UL
100#define SYS_MFP_P04_Msk 0x00001010UL
102#define SYS_MFP_P05_GPIO 0x00000000UL
103#define SYS_MFP_P05_MOSI 0x00002000UL
104#define SYS_MFP_P05_Msk 0x00002020UL
106#define SYS_MFP_P06_GPIO 0x00000000UL
107#define SYS_MFP_P06_MISO 0x00004000UL
108#define SYS_MFP_P06_Msk 0x00004040UL
110#define SYS_MFP_P07_GPIO 0x00000000UL
111#define SYS_MFP_P07_SPICLK 0x00008000UL
112#define SYS_MFP_P07_Msk 0x00008080UL
114#define SYS_MFP_P10_GPIO 0x00000000UL
115#define SYS_MFP_P10_AIN1 0x00000001UL
116#define SYS_MFP_P10_CPP0 0x00000101UL
117#define SYS_MFP_P10_Msk 0x00000101UL
119#define SYS_MFP_P12_GPIO 0x00000000UL
120#define SYS_MFP_P12_AIN2 0x00000004UL
121#define SYS_MFP_P12_RXD 0x00000400UL
122#define SYS_MFP_P12_CPP0 0x00000404UL
123#define SYS_MFP_P12_Msk 0x00000404UL
125#define SYS_MFP_P13_GPIO 0x00000000UL
126#define SYS_MFP_P13_AIN3 0x00000008UL
127#define SYS_MFP_P13_TXD 0x00000800UL
128#define SYS_MFP_P13_CPP0 0x00000808UL
129#define SYS_MFP_P13_Msk 0x00000808UL
131#define SYS_MFP_P14_GPIO 0x00000000UL
132#define SYS_MFP_P14_AIN4 0x00000010UL
133#define SYS_MFP_P14_CPN0 0x00001010UL
134#define SYS_MFP_P14_Msk 0x00001010UL
136#define SYS_MFP_P15_GPIO 0x00000000UL
137#define SYS_MFP_P15_AIN5 0x00000020UL
138#define SYS_MFP_P15_CPP0 0x00002020UL
139#define SYS_MFP_P15_Msk 0x00002020UL
141#define SYS_MFP_P22_GPIO 0x00000000UL
142#define SYS_MFP_P22_PWM0 0x00000400UL
143#define SYS_MFP_P22_Msk 0x00000404UL
145#define SYS_MFP_P23_GPIO 0x00000000UL
146#define SYS_MFP_P23_PWM1 0x00000800UL
147#define SYS_MFP_P23_Msk 0x00000808UL
149#define SYS_MFP_P24_GPIO 0x00000000UL
150#define SYS_MFP_P24_PWM2 0x00001000UL
151#define SYS_MFP_P24_RX1 0x00001010UL
152#define SYS_MFP_P24_Msk 0x00001010UL
154#define SYS_MFP_P25_GPIO 0x00000000UL
155#define SYS_MFP_P25_PWM3 0x00002000UL
156#define SYS_MFP_P25_TX1 0x00002020UL
157#define SYS_MFP_P25_Msk 0x00002020UL
159#define SYS_MFP_P26_GPIO 0x00000000UL
160#define SYS_MFP_P26_PWM4 0x00004000UL
161#define SYS_MFP_P26_CPO1 0x00004040UL
162#define SYS_MFP_P26_Msk 0x00004040UL
164#define SYS_MFP_P30_GPIO 0x00000000UL
165#define SYS_MFP_P30_CPN1 0x00000100UL
166#define SYS_MFP_P30_AIN6 0x00000101UL
167#define SYS_MFP_P30_Msk 0x00000101UL
169#define SYS_MFP_P31_GPIO 0x00000000UL
170#define SYS_MFP_P31_CPP1 0x00000200UL
171#define SYS_MFP_P31_AIN7 0x00000202UL
172#define SYS_MFP_P31_Msk 0x00000202UL
174#define SYS_MFP_P32_GPIO 0x00000000UL
175#define SYS_MFP_P32_INT0 0x00000004UL
176#define SYS_MFP_P32_T0EX 0x00000400UL
177#define SYS_MFP_P32_STADC 0x00000404UL
178#define SYS_MFP_P32_Msk 0x00000404UL
180#define SYS_MFP_P34_GPIO 0x00000000UL
181#define SYS_MFP_P34_T0 0x00000010UL
182#define SYS_MFP_P34_SDA 0x00001000UL
183#define SYS_MFP_P34_CPP1 0x00001010UL
184#define SYS_MFP_P34_Msk 0x00001010UL
186#define SYS_MFP_P35_GPIO 0x00000000UL
187#define SYS_MFP_P35_T1 0x00000020UL
188#define SYS_MFP_P35_SCL 0x00002000UL
189#define SYS_MFP_P35_CPP1 0x00002020UL
190#define SYS_MFP_P35_Msk 0x00002020UL
192#define SYS_MFP_P36_GPIO 0x00000000UL
193#define SYS_MFP_P36_T1EX 0x00000040UL
194#define SYS_MFP_P36_CKO 0x00004000UL
195#define SYS_MFP_P36_CPO0 0x00004040UL
196#define SYS_MFP_P36_Msk 0x00004040UL
198#define SYS_MFP_P46_GPIO 0x00000000UL
199#define SYS_MFP_P46_ICE_CLK 0x00000040UL
200#define SYS_MFP_P46_Msk 0x00004040UL
202#define SYS_MFP_P47_GPIO 0x00000000UL
203#define SYS_MFP_P47_ICE_DAT 0x00000080UL
204#define SYS_MFP_P47_Msk 0x00008080UL
206#define SYS_MFP_P50_GPIO 0x00000000UL
207#define SYS_MFP_P50_XTAL1 0x00000001UL
208#define SYS_MFP_P50_Msk 0x00000101UL
210#define SYS_MFP_P51_GPIO 0x00000000UL
211#define SYS_MFP_P51_XTAL2 0x00000002UL
212#define SYS_MFP_P51_Msk 0x00000202UL
214#define SYS_MFP_P52_GPIO 0x00000000UL
215#define SYS_MFP_P52_INT1 0x00000004UL
216#define SYS_MFP_P52_Msk 0x00000404UL
218#define SYS_MFP_P53_GPIO 0x00000000UL
219#define SYS_MFP_P53_AIN0 0x00000008UL
220#define SYS_MFP_P53_Msk 0x00000808UL
222#define SYS_MFP_P54_GPIO 0x00000000UL
223#define SYS_MFP_P54_Msk 0x00001010UL
225#define SYS_MFP_P55_GPIO 0x00000000UL
226#define SYS_MFP_P55_Msk 0x00002020UL /* end of group MINI55_SYS_EXPORTED_CONSTANTS */
231
241#define SYS_CLEAR_BOD_INT_FLAG() (SYS->BODCTL |= SYS_BODCTL_BODIF_Msk)
242
250#define SYS_CLEAR_BOD_LPM() (SYS->BODCTL &= ~SYS_BODCTL_BODLPM_Msk)
251
259#define SYS_DISABLE_BOD() (SYS->BODCTL = (SYS->BODCTL &~(SYS_BODCTL_BODVL1_0_Msk|SYS_BODCTL_BODEN_Msk))|SYS_BODCTL_BODVL1_0_Msk)
260
268#define SYS_ENABLE_BOD() (SYS->BODCTL = (SYS->BODCTL | SYS_BODCTL_BODEN_Msk))
269
277#define SYS_GET_BOD_INT_FLAG() (SYS->BODCTL & SYS_BODCTL_BODIF_Msk)
278
287#define SYS_GET_BOD_OUTPUT() (SYS->BODCTL & SYS_BODCTL_BODOUT_Msk)
288
296#define SYS_DISABLE_BOD_RST() (SYS->BODCTL &= ~SYS_BODCTL_BODRSTEN_Msk)
297
305#define SYS_ENABLE_BOD_RST() (SYS->BODCTL |= SYS_BODCTL_BODRSTEN_Msk)
306
314#define SYS_SET_BOD_LPM() (SYS->BODCTL |= SYS_BODCTL_BODLPM_Msk)
315
331#define SYS_SET_BOD_LEVEL(u32Level) (SYS->BODCTL = (SYS->BODCTL & ~(SYS_BODCTL_BODVL1_0_Msk|SYS_BODCTL_BODVL2_Msk)) | (u32Level))
332
340#define SYS_IS_BOD_RST() (SYS->RSTSTS & SYS_RSTSTS_BODRF_Msk)
341
349#define SYS_IS_CPU_RST() (SYS->RSTSTS & SYS_RSTSTS_CPURF_Msk)
350
358#define SYS_IS_POR_RST() (SYS->RSTSTS & SYS_RSTSTS_PORF_Msk)
359
367#define SYS_IS_RSTPIN_RST() (SYS->RSTSTS & SYS_RSTSTS_PINRF_Msk)
368
376#define SYS_IS_SYSTEM_RST() (SYS->RSTSTS & SYS_RSTSTS_SYSRF_Msk)
377
385#define SYS_IS_WDT_RST() (SYS->RSTSTS & SYS_RSTSTS_WDTRF_Msk)
386
394#define SYS_DISABLE_POR() (SYS->PORCTL = 0x5AA5)
395
403#define SYS_ENABLE_POR() (SYS->PORCTL = 0)
404
417#define SYS_CLEAR_RST_SOURCE(u32RstSrc) ((SYS->RSTSTS) = (u32RstSrc) )
418
426__STATIC_INLINE void SYS_UnlockReg(void)
427{
428 do
429 {
430 SYS->REGLCTL = 0x59;
431 SYS->REGLCTL = 0x16;
432 SYS->REGLCTL = 0x88;
433 }
434 while(SYS->REGLCTL == 0);
435}
436
444__STATIC_INLINE void SYS_LockReg(void)
445{
446 SYS->REGLCTL = 0;
447}
448
457#define SYS_GET_IRCTRIM_INT_FLAG() (SYS->IRCTISTS)
458
467#define SYS_CLEAR_IRCTRIM_INT_FLAG(u32IRCTrimFlg) (SYS->IRCTISTS = u32IRCTrimFlg )
468
469 void SYS_ClearResetSrc(uint32_t u32Src);
470uint32_t SYS_GetBODStatus(void);
471uint32_t SYS_GetResetSrc(void);
472uint32_t SYS_IsRegLocked(void);
473 void SYS_LockReg(void);
474 void SYS_UnlockReg(void);
475uint32_t SYS_ReadPDID(void);
476 void SYS_ResetChip(void);
477 void SYS_ResetCPU(void);
478 void SYS_ResetModule(uint32_t u32ModuleIndex);
479 void SYS_EnableBOD(int32_t i32Mode, uint32_t u32BODLevel);
480 void SYS_DisableBOD(void);
481 void SYS_EnableIRCTrim(uint32_t u32TrimSel,uint32_t u32TrimEnInt);
482 void SYS_DisableIRCTrim(void); /* end of group MINI55_SYS_EXPORTED_FUNCTIONS */
484 /* end of group MINI55_SYS_Driver */
486 /* end of group MINI55_Device_Driver */
488
489#ifdef __cplusplus
490}
491#endif
492
493#endif //__SYS_H__
SYS_ResetCPU
void SYS_ResetCPU(void)
This function reset CPU.
Definition: sys.c:88
SYS_GetBODStatus
uint32_t SYS_GetBODStatus(void)
This function get Brown-out detector output status.
Definition: sys.c:42
SYS_LockReg
__STATIC_INLINE void SYS_LockReg(void)
Enable register write-protection function.
Definition: sys.h:444
SYS_GetResetSrc
uint32_t SYS_GetResetSrc(void)
This function get the system reset source register value.
Definition: sys.c:51
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:132
SYS_ResetModule
void SYS_ResetModule(uint32_t u32ModuleIndex)
This function reset selected modules.
Definition: sys.c:108
SYS_EnableIRCTrim
void SYS_EnableIRCTrim(uint32_t u32TrimSel, uint32_t u32TrimEnInt)
This function enable HIRC trim function.
Definition: sys.c:159
SYS_ReadPDID
uint32_t SYS_ReadPDID(void)
This function get product ID.
Definition: sys.c:70
SYS_DisableIRCTrim
void SYS_DisableIRCTrim(void)
This function disable HIRC trim function.
Definition: sys.c:170
SYS_UnlockReg
__STATIC_INLINE void SYS_UnlockReg(void)
Disable register write-protection function.
Definition: sys.h:426
SYS_DisableBOD
void SYS_DisableBOD(void)
This function disable BOD function.
Definition: sys.c:143
SYS_IsRegLocked
uint32_t SYS_IsRegLocked(void)
This function check register write-protection bit setting.
Definition: sys.c:61
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:79
SYS
#define SYS
Pointer to SYS register structure.
Definition: Mini55Series.h:7009