reg_syscfg.h 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299
  1. ////////////////////////////////////////////////////////////////////////////////
  2. /// @file reg_syscfg.h
  3. /// @author AE TEAM
  4. /// @brief THIS FILE CONTAINS ALL THE FUNCTIONS PROTOTYPES FOR THE SERIES OF
  5. /// MM32 FIRMWARE LIBRARY.
  6. ////////////////////////////////////////////////////////////////////////////////
  7. /// @attention
  8. ///
  9. /// THE EXISTING FIRMWARE IS ONLY FOR REFERENCE, WHICH IS DESIGNED TO PROVIDE
  10. /// CUSTOMERS WITH CODING INFORMATION ABOUT THEIR PRODUCTS SO THEY CAN SAVE
  11. /// TIME. THEREFORE, MINDMOTION SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT OR
  12. /// CONSEQUENTIAL DAMAGES ABOUT ANY CLAIMS ARISING OUT OF THE CONTENT OF SUCH
  13. /// HARDWARE AND/OR THE USE OF THE CODING INFORMATION CONTAINED HEREIN IN
  14. /// CONNECTION WITH PRODUCTS MADE BY CUSTOMERS.
  15. ///
  16. /// <H2><CENTER>&COPY; COPYRIGHT MINDMOTION </CENTER></H2>
  17. ////////////////////////////////////////////////////////////////////////////////
  18. // Define to prevent recursive inclusion
  19. #ifndef __REG_SYSCFG_H
  20. #define __REG_SYSCFG_H
  21. // Files includes
  22. #include <stdint.h>
  23. #include <stdbool.h>
  24. #include "types.h"
  25. #if defined ( __CC_ARM )
  26. #pragma anon_unions
  27. #endif
  28. #define SYSCFG_BASE (APB2PERIPH_BASE + 0x0000) ///< Base Address: 0x40010000
  29. ////////////////////////////////////////////////////////////////////////////////
  30. /// @brief SysTem Configuration Register Structure Definition
  31. ////////////////////////////////////////////////////////////////////////////////
  32. typedef struct {
  33. union {
  34. __IO u32 CFGR; ///< SYSCFG configuration register offset: 0x00
  35. __IO u32 CFGR1;
  36. };
  37. __IO u32 RESERVED0x04; ///< RESERVED register offset: 0x04
  38. __IO u32 EXTICR[4]; ///< SYSCFG configuration register offset: 0x08-0x14
  39. __IO u32 CFGR2; ///< SYSCFG configuration2 register offset: 0x18
  40. __IO u32 PDETCSR; ///< SYSCFG Power Detect configuration stautus reg offset: 0x1C
  41. __IO u32 VOSDLY; ///< SYSCFG VOSDLY Counter register offset: 0x20
  42. } SYSCFG_TypeDef;
  43. #define SYSCFG ((SYSCFG_TypeDef *) SYSCFG_BASE)
  44. ////////////////////////////////////////////////////////////////////////////////
  45. ///@brief System Configuration (SYSCFG)
  46. ////////////////////////////////////////////////////////////////////////////////
  47. /// @brief SYSCFG_CFGR Register Bit definition
  48. #define SYSCFG_CFGR_MEM_MODE_Pos (0)
  49. #define SYSCFG_CFGR_MEM_MODE ((u32)0x00000003) ///< SYSCFG_Memory Remap Config
  50. #define SYSCFG_CFGR_MEM_MODE_0 ((u32)0x00000001) ///< SYSCFG_Memory Remap Config Bit 0
  51. #define SYSCFG_CFGR_MEM_MODE_1 ((u32)0x00000002) ///< SYSCFG_Memory Remap Config Bit 1
  52. ///
  53. #define SYSCFG_CFGR_FSMC_SYNC_EN_Pos (27)
  54. #define SYSCFG_CFGR_FSMC_SYNC_EN (0x01U << SYSCFG_CFGR_FSMC_SYNC_EN_Pos)///< FSMC SYNC Enable
  55. #define SYSCFG_CFGR_FSMC_AF_ADDR_Pos (28)
  56. #define SYSCFG_CFGR_FSMC_AF_ADDR (0x01U << SYSCFG_CFGR_FSMC_AF_ADDR_Pos)///< FSMC Databus AF Address
  57. #define SYSCFG_CFGR_FSMC_MODE_Pos (29)
  58. #define SYSCFG_CFGR_FSMC_MODE ((u32)0x03<<SYSCFG_CFGR_FSMC_MODE_Pos) ///< FSMC Interface Mode Config
  59. #define SYSCFG_CFGR_FSMC_MODE0 ((u32)0x00<<SYSCFG_CFGR_FSMC_MODE_Pos) ///< FSMC Mode Config Mode 0
  60. #define SYSCFG_CFGR_FSMC_MODE1 ((u32)0x01<<SYSCFG_CFGR_FSMC_MODE_Pos) ///< FSMC Mode Config Mode 1
  61. /// @brief SYSCFG_EXTICR1 Register Bit definition
  62. #define SYSCFG_EXTICR1_EXTI0 ((u16)0x000F) ///< EXTI 0 configuration
  63. #define SYSCFG_EXTICR1_EXTI1 ((u16)0x00F0) ///< EXTI 1 configuration
  64. #define SYSCFG_EXTICR1_EXTI2 ((u16)0x0F00) ///< EXTI 2 configuration
  65. #define SYSCFG_EXTICR1_EXTI3 ((u16)0xF000) ///< EXTI 3 configuration
  66. /// @brief EXTI0 configuration
  67. #define SYSCFG_EXTICR1_EXTI0_PA ((u16)0x0000) ///< PA[0] pin
  68. #define SYSCFG_EXTICR1_EXTI0_PB ((u16)0x0001) ///< PB[0] pin
  69. #define SYSCFG_EXTICR1_EXTI0_PC ((u16)0x0002) ///< PC[0] pin
  70. #define SYSCFG_EXTICR1_EXTI0_PD ((u16)0x0003) ///< PD[0] pin
  71. /// @brief EXTI1 configuration
  72. #define SYSCFG_EXTICR1_EXTI1_PA ((u16)0x0000) ///< PA[1] pin
  73. #define SYSCFG_EXTICR1_EXTI1_PB ((u16)0x0010) ///< PB[1] pin
  74. #define SYSCFG_EXTICR1_EXTI1_PC ((u16)0x0020) ///< PC[1] pin
  75. #define SYSCFG_EXTICR1_EXTI1_PD ((u16)0x0030) ///< PD[1] pin
  76. /// @brief EXTI2 configuration
  77. #define SYSCFG_EXTICR1_EXTI2_PA ((u16)0x0000) ///< PA[2] pin
  78. #define SYSCFG_EXTICR1_EXTI2_PB ((u16)0x0100) ///< PB[2] pin
  79. #define SYSCFG_EXTICR1_EXTI2_PC ((u16)0x0200) ///< PC[2] pin
  80. #define SYSCFG_EXTICR1_EXTI2_PD ((u16)0x0300) ///< PD[2] pin
  81. /// @brief EXTI3 configuration
  82. #define SYSCFG_EXTICR1_EXTI3_PA ((u16)0x0000) ///< PA[3] pin
  83. #define SYSCFG_EXTICR1_EXTI3_PB ((u16)0x1000) ///< PB[3] pin
  84. #define SYSCFG_EXTICR1_EXTI3_PC ((u16)0x2000) ///< PC[3] pin
  85. #define SYSCFG_EXTICR1_EXTI3_PD ((u16)0x3000) ///< PD[3] pin
  86. /// @brief SYSCFG_EXTICR2 Register Bit definition
  87. #define SYSCFG_EXTICR2_EXTI4 ((u16)0x000F) ///< EXTI 4 configuration
  88. #define SYSCFG_EXTICR2_EXTI5 ((u16)0x00F0) ///< EXTI 5 configuration
  89. #define SYSCFG_EXTICR2_EXTI6 ((u16)0x0F00) ///< EXTI 6 configuration
  90. #define SYSCFG_EXTICR2_EXTI7 ((u16)0xF000) ///< EXTI 7 configuration
  91. /// @brief EXTI4 configuration
  92. #define SYSCFG_EXTICR2_EXTI4_PA ((u16)0x0000) ///< PA[4] pin
  93. #define SYSCFG_EXTICR2_EXTI4_PB ((u16)0x0001) ///< PB[4] pin
  94. #define SYSCFG_EXTICR2_EXTI4_PC ((u16)0x0002) ///< PC[4] pin
  95. #define SYSCFG_EXTICR2_EXTI4_PD ((u16)0x0003) ///< PD[4] pin
  96. /// @brief EXTI5 configuration
  97. #define SYSCFG_EXTICR2_EXTI5_PA ((u16)0x0000) ///< PA[5] pin
  98. #define SYSCFG_EXTICR2_EXTI5_PB ((u16)0x0010) ///< PB[5] pin
  99. #define SYSCFG_EXTICR2_EXTI5_PC ((u16)0x0020) ///< PC[5] pin
  100. #define SYSCFG_EXTICR2_EXTI5_PD ((u16)0x0030) ///< PD[5] pin
  101. /// @brief EXTI6 configuration
  102. #define SYSCFG_EXTICR2_EXTI6_PA ((u16)0x0000) ///< PA[6] pin
  103. #define SYSCFG_EXTICR2_EXTI6_PB ((u16)0x0100) ///< PB[6] pin
  104. #define SYSCFG_EXTICR2_EXTI6_PC ((u16)0x0200) ///< PC[6] pin
  105. #define SYSCFG_EXTICR2_EXTI6_PD ((u16)0x0300) ///< PD[6] pin
  106. /// @brief EXTI7 configuration
  107. #define SYSCFG_EXTICR2_EXTI7_PA ((u16)0x0000) ///< PA[7] pin
  108. #define SYSCFG_EXTICR2_EXTI7_PB ((u16)0x1000) ///< PB[7] pin
  109. #define SYSCFG_EXTICR2_EXTI7_PC ((u16)0x2000) ///< PC[7] pin
  110. #define SYSCFG_EXTICR2_EXTI7_PD ((u16)0x3000) ///< PD[7] pin
  111. /// @brief SYSCFG_EXTICR3 Register Bit definition
  112. #define SYSCFG_EXTICR3_EXTI8 ((u16)0x000F) ///< EXTI 8 configuration
  113. #define SYSCFG_EXTICR3_EXTI9 ((u16)0x00F0) ///< EXTI 9 configuration
  114. #define SYSCFG_EXTICR3_EXTI10 ((u16)0x0F00) ///< EXTI 10 configuration
  115. #define SYSCFG_EXTICR3_EXTI11 ((u16)0xF000) ///< EXTI 11 configuration
  116. /// @brief EXTI8 configuration
  117. #define SYSCFG_EXTICR3_EXTI8_PA ((u16)0x0000) ///< PA[8] pin
  118. #define SYSCFG_EXTICR3_EXTI8_PB ((u16)0x0001) ///< PB[8] pin
  119. #define SYSCFG_EXTICR3_EXTI8_PC ((u16)0x0002) ///< PC[8] pin
  120. #define SYSCFG_EXTICR3_EXTI8_PD ((u16)0x0003) ///< PD[8] pin
  121. /// @brief EXTI9 configuration
  122. #define SYSCFG_EXTICR3_EXTI9_PA ((u16)0x0000) ///< PA[9] pin
  123. #define SYSCFG_EXTICR3_EXTI9_PB ((u16)0x0010) ///< PB[9] pin
  124. #define SYSCFG_EXTICR3_EXTI9_PC ((u16)0x0020) ///< PC[9] pin
  125. #define SYSCFG_EXTICR3_EXTI9_PD ((u16)0x0030) ///< PD[9] pin
  126. /// @brief EXTI10 configuration
  127. #define SYSCFG_EXTICR3_EXTI10_PA ((u16)0x0000) ///< PA[10] pin
  128. #define SYSCFG_EXTICR3_EXTI10_PB ((u16)0x0100) ///< PB[10] pin
  129. #define SYSCFG_EXTICR3_EXTI10_PC ((u16)0x0200) ///< PC[10] pin
  130. #define SYSCFG_EXTICR3_EXTI10_PD ((u16)0x0300) ///< PE[10] pin
  131. /// @brief EXTI11 configuration
  132. #define SYSCFG_EXTICR3_EXTI11_PA ((u16)0x0000) ///< PA[11] pin
  133. #define SYSCFG_EXTICR3_EXTI11_PB ((u16)0x1000) ///< PB[11] pin
  134. #define SYSCFG_EXTICR3_EXTI11_PC ((u16)0x2000) ///< PC[11] pin
  135. #define SYSCFG_EXTICR3_EXTI11_PD ((u16)0x3000) ///< PD[11] pin
  136. /// @brief SYSCFG_EXTICR4 Register Bit definition
  137. #define SYSCFG_EXTICR4_EXTI12 ((u16)0x000F) ///< EXTI 12 configuration
  138. #define SYSCFG_EXTICR4_EXTI13 ((u16)0x00F0) ///< EXTI 13 configuration
  139. #define SYSCFG_EXTICR4_EXTI14 ((u16)0x0F00) ///< EXTI 14 configuration
  140. #define SYSCFG_EXTICR4_EXTI15 ((u16)0xF000) ///< EXTI 15 configuration
  141. #define SYSCFG_EXTICR4_EXTI12_PA ((u16)0x0000) ///< PA[12] pin for EXTI12
  142. #define SYSCFG_EXTICR4_EXTI12_PB ((u16)0x0001) ///< PB[12] pin for EXTI12
  143. #define SYSCFG_EXTICR4_EXTI12_PC ((u16)0x0002) ///< PC[12] pin for EXTI12
  144. #define SYSCFG_EXTICR4_EXTI12_PD ((u16)0x0003) ///< PD[12] pin for EXTI12
  145. #define SYSCFG_EXTICR4_EXTI13_PA ((u16)0x0000) ///< PA[13] pin for EXTI13
  146. #define SYSCFG_EXTICR4_EXTI13_PB ((u16)0x0010) ///< PB[13] pin for EXTI13
  147. #define SYSCFG_EXTICR4_EXTI13_PC ((u16)0x0020) ///< PC[13] pin for EXTI13
  148. #define SYSCFG_EXTICR4_EXTI13_PD ((u16)0x0030) ///< PD[13] pin for EXTI13
  149. #define SYSCFG_EXTICR4_EXTI14_PA ((u16)0x0000) ///< PA[14] pin for EXTI14
  150. #define SYSCFG_EXTICR4_EXTI14_PB ((u16)0x0100) ///< PB[14] pin for EXTI14
  151. #define SYSCFG_EXTICR4_EXTI14_PC ((u16)0x0200) ///< PC[14] pin for EXTI14
  152. #define SYSCFG_EXTICR4_EXTI14_PD ((u16)0x0300) ///< PD[14] pin for EXTI14
  153. #define SYSCFG_EXTICR4_EXTI15_PA ((u16)0x0000) ///< PA[15] pin for EXTI15
  154. #define SYSCFG_EXTICR4_EXTI15_PB ((u16)0x1000) ///< PB[15] pin for EXTI15
  155. #define SYSCFG_EXTICR4_EXTI15_PC ((u16)0x2000) ///< PC[15] pin for EXTI15
  156. #define SYSCFG_EXTICR4_EXTI15_PD ((u16)0x3000) ///< PD[15] pin for EXTI15
  157. #define SYSCFG_CFGR2_I2C1_MODE_SEL_Pos (16)
  158. #define SYSCFG_CFGR2_I2C1_MODE_SEL (0x01U << SYSCFG_CFGR2_I2C1_MODE_SEL_Pos) ///< I2C1 Enable PushPull mode
  159. #define SYSCFG_CFGR2_I2C2_MODE_SEL_Pos (17)
  160. #define SYSCFG_CFGR2_I2C2_MODE_SEL (0x01U << SYSCFG_CFGR2_I2C2_MODE_SEL_Pos) ///< I2C2 Enable PushPull mode
  161. #define SYSCFG_CFGR2_MII_RMII_MODE_SEL_Pos (20)
  162. #define SYSCFG_CFGR2_MII_RMII_MODE_SEL (0x01U << SYSCFG_CFGR2_MII_RMII_MODE_SEL_Pos) ///< MII_RMII mode
  163. #define SYSCFG_CFGR2_MAC_SPEED_SEL_Pos (21)
  164. #define SYSCFG_CFGR2_MAC_SPEED_SEL (0x01U << SYSCFG_CFGR2_MAC_SPEED_SEL_Pos) ///< MAC_SPEED mode
  165. #define SYSCFG_PDETCSR_PVDE_Pos (0)
  166. #define SYSCFG_PDETCSR_PVDE (0x01U << SYSCFG_PDETCSR_PVDE_Pos) ///< Power Voltage Detector Enable
  167. #define SYSCFG_PDETCSR_PLS_Pos (1)
  168. #define SYSCFG_PDETCSR_PLS (0x0FU << SYSCFG_PDETCSR_PLS_Pos)
  169. #define SYSCFG_PDETCSR_PLS_1V7 (0x00U << SYSCFG_PDETCSR_PLS_Pos) ///< PVD level 1.7V
  170. #define SYSCFG_PDETCSR_PLS_2V0 (0x01U << SYSCFG_PDETCSR_PLS_Pos) ///< PVD level 2.0V
  171. #define SYSCFG_PDETCSR_PLS_2V3 (0x02U << SYSCFG_PDETCSR_PLS_Pos) ///< PVD level 2.3V
  172. #define SYSCFG_PDETCSR_PLS_2V6 (0x03U << SYSCFG_PDETCSR_PLS_Pos) ///< PVD level 2.6V
  173. #define SYSCFG_PDETCSR_PLS_2V9 (0x04U << SYSCFG_PDETCSR_PLS_Pos) ///< PVD level 2.9V
  174. #define SYSCFG_PDETCSR_PLS_3V2 (0x05U << SYSCFG_PDETCSR_PLS_Pos) ///< PVD level 3.2V
  175. #define SYSCFG_PDETCSR_PLS_3V5 (0x06U << SYSCFG_PDETCSR_PLS_Pos) ///< PVD level 3.5V
  176. #define SYSCFG_PDETCSR_PLS_3V8 (0x07U << SYSCFG_PDETCSR_PLS_Pos) ///< PVD level 3.8V
  177. #define SYSCFG_PDETCSR_PLS_4V1 (0x08U << SYSCFG_PDETCSR_PLS_Pos) ///< PVD level 4.1V
  178. #define SYSCFG_PDETCSR_PLS_4V4 (0x09U << SYSCFG_PDETCSR_PLS_Pos) ///< PVD level 4.4V
  179. #define SYSCFG_PDETCSR_PLS_4V7 (0x0AU << SYSCFG_PDETCSR_PLS_Pos) ///< PVD level 4.7V
  180. // #define PWR_CR_PLS_Pos SYSCFG_PDETCSR_PLS_Pos
  181. // #define PWR_CR_PLS SYSCFG_PDETCSR_PLS
  182. // #define PWR_CR_PLS_1V8 SYSCFG_PDETCSR_PLS_1V7 ///< PVD level 1.8V
  183. // #define PWR_CR_PLS_2V1 SYSCFG_PDETCSR_PLS_2V0 ///< PVD level 2.1V
  184. // #define PWR_CR_PLS_2V4 SYSCFG_PDETCSR_PLS_2V3 ///< PVD level 2.4V
  185. // #define PWR_CR_PLS_2V7 SYSCFG_PDETCSR_PLS_2V6 ///< PVD level 2.7V
  186. // #define PWR_CR_PLS_3V0 SYSCFG_PDETCSR_PLS_2V9 ///< PVD level 3.0V
  187. // #define PWR_CR_PLS_3V3 SYSCFG_PDETCSR_PLS_3V2 ///< PVD level 3.3V
  188. // #define PWR_CR_PLS_3V6 SYSCFG_PDETCSR_PLS_3V5 ///< PVD level 3.6V
  189. // #define PWR_CR_PLS_3V9 SYSCFG_PDETCSR_PLS_3V8 ///< PVD level 3.9V
  190. // #define PWR_CR_PLS_4V2 SYSCFG_PDETCSR_PLS_4V1 ///< PVD level 4.2V
  191. // #define PWR_CR_PLS_4V5 SYSCFG_PDETCSR_PLS_4V4 ///< PVD level 4.5V
  192. // #define PWR_CR_PLS_4V8 SYSCFG_PDETCSR_PLS_4V7 ///< PVD level 4.8V
  193. #define SYSCFG_PDETCSR_PVDO_Pos (5)
  194. #define SYSCFG_PDETCSR_PVDO (0x01U << SYSCFG_PDETCSR_PVDO_Pos) ///< PVD Output
  195. // #define PWR_CSR_PVDO_Pos SYSCFG_PDETCSR_PVDO_Pos
  196. // #define PWR_CSR_PVDO SYSCFG_PDETCSR_PVDO ///< PVD Output
  197. #define SYSCFG_PDETCSR_VDTO_Pos (6)
  198. #define SYSCFG_PDETCSR_VDTO (0x01U << SYSCFG_PDETCSR_VDTO_Pos) ///< VDT Output Enable
  199. #define SYSCFG_PDETCSR_VDTE_Pos (8)
  200. #define SYSCFG_PDETCSR_VDTE (0x01U << SYSCFG_PDETCSR_VDTE_Pos) ///< VDT Output
  201. #define SYSCFG_PDETCSR_VDTLS_Pos (9)
  202. #define SYSCFG_PDETCSR_VDTLS (0x0FU << SYSCFG_PDETCSR_VDTLS_Pos)
  203. #define SYSCFG_PDETCSR_VDTLS_0V9 (0x00U << SYSCFG_PDETCSR_VDTLS_Pos) ///< VDT level 0.9V
  204. #define SYSCFG_PDETCSR_VDTLS_1V0 (0x01U << SYSCFG_PDETCSR_VDTLS_Pos) ///< VDT level 1.0V
  205. #define SYSCFG_PDETCSR_VDTLS_1V1 (0x02U << SYSCFG_PDETCSR_VDTLS_Pos) ///< VDT level 1.1V
  206. #define SYSCFG_PDETCSR_VDTLS_1V2 (0x03U << SYSCFG_PDETCSR_VDTLS_Pos) ///< VDT level 1.2V
  207. #define SYSCFG_PDETCSR_VBATDIV3EN_Pos (11)
  208. #define SYSCFG_PDETCSR_VBATDIV3EN (0x01U << SYSCFG_PDETCSR_VBATDIV3EN_Pos) ///< VBATDIV3 Enable
  209. #define SYSCFG_VOSDLY_CNT_Pos (0)
  210. #define SYSCFG_VOSDLY_CNT (0x03FFU << SYSCFG_VOSDLY_CNT_Pos) ///< SYSCFG VOSDLY CNT
  211. /// @}
  212. /// @}
  213. /// @}
  214. ////////////////////////////////////////////////////////////////////////////////
  215. #endif
  216. ////////////////////////////////////////////////////////////////////////////////