nutool_pincfg.c 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. /****************************************************************************
  2. * @file nutool_pincfg.c
  3. * @version V1.21
  4. * @Date 2021/03/03-17:36:00
  5. * @brief NuMicro generated code file
  6. *
  7. * SPDX-License-Identifier: Apache-2.0
  8. *
  9. * Copyright (C) 2013-2020 Nuvoton Technology Corp. All rights reserved.
  10. *****************************************************************************/
  11. /********************
  12. MCU:M032KIAAE(LQFP128)
  13. Pin Configuration:
  14. Pin1:ADC0_CH5
  15. Pin2:ADC0_CH4
  16. Pin3:UART1_TXD
  17. Pin4:UART1_RXD
  18. Pin9:ADC0_CH1
  19. Pin10:ADC0_CH0
  20. Pin31:X32_IN
  21. Pin32:X32_OUT
  22. Pin37:XT1_IN
  23. Pin38:XT1_OUT
  24. Pin50:PWM1_CH4
  25. Pin51:PWM1_CH5
  26. Pin55:QSPI0_MISO1
  27. Pin56:QSPI0_MOSI1
  28. Pin57:QSPI0_SS
  29. Pin58:QSPI0_CLK
  30. Pin59:QSPI0_MISO0
  31. Pin60:QSPI0_MOSI0
  32. Pin65:ICE_DAT
  33. Pin66:ICE_CLK
  34. Pin69:PWM1_CH0
  35. Pin70:PWM1_CH1
  36. Pin71:PWM1_CH2
  37. Pin72:PWM1_CH3
  38. Pin73:I2C0_SCL
  39. Pin74:I2C0_SDA
  40. Pin118:UART0_TXD
  41. Pin119:UART0_RXD
  42. Pin127:ADC0_CH7
  43. Pin128:ADC0_CH6
  44. ********************/
  45. #include "M031Series.h"
  46. #include "rtconfig.h"
  47. void nutool_pincfg_init_ice(void)
  48. {
  49. SYS->GPF_MFPL &= ~(SYS_GPF_MFPL_PF1MFP_Msk | SYS_GPF_MFPL_PF0MFP_Msk);
  50. SYS->GPF_MFPL |= (SYS_GPF_MFPL_PF1MFP_ICE_CLK | SYS_GPF_MFPL_PF0MFP_ICE_DAT);
  51. return;
  52. }
  53. void nutool_pincfg_deinit_ice(void)
  54. {
  55. SYS->GPF_MFPL &= ~(SYS_GPF_MFPL_PF1MFP_Msk | SYS_GPF_MFPL_PF0MFP_Msk);
  56. return;
  57. }
  58. void nutool_pincfg_init_uart0(void)
  59. {
  60. SYS->GPB_MFPH &= ~(SYS_GPB_MFPH_PB13MFP_Msk | SYS_GPB_MFPH_PB12MFP_Msk);
  61. SYS->GPB_MFPH |= (SYS_GPB_MFPH_PB13MFP_UART0_TXD | SYS_GPB_MFPH_PB12MFP_UART0_RXD);
  62. return;
  63. }
  64. void nutool_pincfg_deinit_uart0(void)
  65. {
  66. SYS->GPB_MFPH &= ~(SYS_GPB_MFPH_PB13MFP_Msk | SYS_GPB_MFPH_PB12MFP_Msk);
  67. return;
  68. }
  69. void nutool_pincfg_init_x32(void)
  70. {
  71. SYS->GPF_MFPL &= ~(SYS_GPF_MFPL_PF5MFP_Msk | SYS_GPF_MFPL_PF4MFP_Msk);
  72. SYS->GPF_MFPL |= (SYS_GPF_MFPL_PF5MFP_X32_IN | SYS_GPF_MFPL_PF4MFP_X32_OUT);
  73. return;
  74. }
  75. void nutool_pincfg_deinit_x32(void)
  76. {
  77. SYS->GPF_MFPL &= ~(SYS_GPF_MFPL_PF5MFP_Msk | SYS_GPF_MFPL_PF4MFP_Msk);
  78. return;
  79. }
  80. void nutool_pincfg_init_xt1(void)
  81. {
  82. SYS->GPF_MFPL &= ~(SYS_GPF_MFPL_PF3MFP_Msk | SYS_GPF_MFPL_PF2MFP_Msk);
  83. SYS->GPF_MFPL |= (SYS_GPF_MFPL_PF3MFP_XT1_IN | SYS_GPF_MFPL_PF2MFP_XT1_OUT);
  84. return;
  85. }
  86. void nutool_pincfg_deinit_xt1(void)
  87. {
  88. SYS->GPF_MFPL &= ~(SYS_GPF_MFPL_PF3MFP_Msk | SYS_GPF_MFPL_PF2MFP_Msk);
  89. return;
  90. }
  91. void nutool_pincfg_init_qspi0(void)
  92. {
  93. SYS->GPA_MFPL &= ~(SYS_GPA_MFPL_PA0MFP_Msk | SYS_GPA_MFPL_PA1MFP_Msk | SYS_GPA_MFPL_PA2MFP_Msk | SYS_GPA_MFPL_PA3MFP_Msk |
  94. SYS_GPA_MFPL_PA4MFP_Msk | SYS_GPA_MFPL_PA5MFP_Msk);
  95. SYS->GPA_MFPL |= (SYS_GPA_MFPL_PA0MFP_QSPI0_MOSI0 | SYS_GPA_MFPL_PA1MFP_QSPI0_MISO0 |
  96. SYS_GPA_MFPL_PA2MFP_QSPI0_CLK | SYS_GPA_MFPL_PA3MFP_QSPI0_SS |
  97. SYS_GPA_MFPL_PA4MFP_QSPI0_MOSI1 | SYS_GPA_MFPL_PA5MFP_QSPI0_MISO1);
  98. /* pull high qspi quad mode pins. */
  99. GPIO_SetMode(PA, BIT4 | BIT5, GPIO_MODE_QUASI);
  100. }
  101. void nutool_pincfg_init_usci0(void)
  102. {
  103. SYS->GPA_MFPH &= ~(SYS_GPA_MFPH_PA8MFP_Msk | SYS_GPA_MFPH_PA9MFP_Msk | SYS_GPA_MFPH_PA10MFP_Msk | SYS_GPA_MFPH_PA11MFP_Msk);
  104. SYS->GPA_MFPH |= (/*SYS_GPA_MFPH_PA8MFP_USCI0_CTL1 |*/ SYS_GPA_MFPH_PA9MFP_USCI0_DAT1 | SYS_GPA_MFPH_PA10MFP_USCI0_DAT0 | SYS_GPA_MFPH_PA11MFP_USCI0_CLK);
  105. }
  106. void nutool_pincfg_deinit_qspi0(void)
  107. {
  108. SYS->GPA_MFPL &= ~(SYS_GPA_MFPL_PA0MFP_Msk | SYS_GPA_MFPL_PA1MFP_Msk | SYS_GPA_MFPL_PA2MFP_Msk | SYS_GPA_MFPL_PA3MFP_Msk |
  109. SYS_GPA_MFPL_PA4MFP_Msk | SYS_GPA_MFPL_PA5MFP_Msk);
  110. }
  111. void nutool_pincfg_init_i2c0(void)
  112. {
  113. SYS->GPC_MFPL &= ~(SYS_GPC_MFPL_PC0MFP_Msk | SYS_GPC_MFPL_PC1MFP_Msk);
  114. SYS->GPC_MFPL |= (SYS_GPC_MFPL_PC0MFP_I2C0_SDA | SYS_GPC_MFPL_PC1MFP_I2C0_SCL);
  115. }
  116. void nutool_pincfg_deinit_i2c0(void)
  117. {
  118. SYS->GPC_MFPL &= ~(SYS_GPC_MFPL_PC0MFP_Msk | SYS_GPC_MFPL_PC1MFP_Msk);
  119. }
  120. void nutool_pincfg_init_adc0(void)
  121. {
  122. SYS->GPB_MFPL &= ~(SYS_GPB_MFPL_PB0MFP_Msk | SYS_GPB_MFPL_PB1MFP_Msk | SYS_GPB_MFPL_PB4MFP_Msk |
  123. SYS_GPB_MFPL_PB5MFP_Msk | SYS_GPB_MFPL_PB6MFP_Msk | SYS_GPB_MFPL_PB7MFP_Msk);
  124. SYS->GPB_MFPL |= (SYS_GPB_MFPL_PB0MFP_ADC_CH0 | SYS_GPB_MFPL_PB1MFP_ADC_CH1 | SYS_GPB_MFPL_PB4MFP_ADC_CH4 |
  125. SYS_GPB_MFPL_PB5MFP_ADC_CH5 | SYS_GPB_MFPL_PB6MFP_ADC_CH6 | SYS_GPB_MFPL_PB7MFP_ADC_CH7);
  126. /* Disable digital path on these ADC pins */
  127. GPIO_DISABLE_DIGITAL_PATH(PB, BIT0 | BIT1 | BIT4 | BIT5 | BIT6 | BIT7);
  128. }
  129. void nutool_pincfg_deinit_adc0(void)
  130. {
  131. SYS->GPB_MFPL &= ~(SYS_GPB_MFPL_PB0MFP_Msk | SYS_GPB_MFPL_PB1MFP_Msk | SYS_GPB_MFPL_PB4MFP_Msk |
  132. SYS_GPB_MFPL_PB5MFP_Msk | SYS_GPB_MFPL_PB6MFP_Msk | SYS_GPB_MFPL_PB7MFP_Msk);
  133. /* Enable digital path on these ADC pins */
  134. GPIO_ENABLE_DIGITAL_PATH(PB, BIT0 | BIT1 | BIT4 | BIT5 | BIT6 | BIT7);
  135. }
  136. void nutool_pincfg_init_pwm0(void)
  137. {
  138. SYS->GPA_MFPL &= ~(SYS_GPA_MFPL_PA6MFP_Msk | SYS_GPA_MFPL_PA7MFP_Msk);
  139. SYS->GPC_MFPL &= ~(SYS_GPC_MFPL_PC2MFP_Msk | SYS_GPC_MFPL_PC3MFP_Msk | SYS_GPC_MFPL_PC4MFP_Msk | SYS_GPC_MFPL_PC5MFP_Msk);
  140. SYS->GPA_MFPL |= (SYS_GPA_MFPL_PA6MFP_PWM1_CH5 | SYS_GPA_MFPL_PA7MFP_PWM1_CH4);
  141. SYS->GPC_MFPL |= (SYS_GPC_MFPL_PC2MFP_PWM1_CH3 | SYS_GPC_MFPL_PC3MFP_PWM1_CH2 | SYS_GPC_MFPL_PC4MFP_PWM1_CH1 | SYS_GPC_MFPL_PC5MFP_PWM1_CH0);
  142. }
  143. void nutool_pincfg_deinit_pwm0(void)
  144. {
  145. SYS->GPA_MFPL &= ~(SYS_GPA_MFPL_PA6MFP_Msk | SYS_GPA_MFPL_PA7MFP_Msk);
  146. SYS->GPC_MFPL &= ~(SYS_GPC_MFPL_PC2MFP_Msk | SYS_GPC_MFPL_PC3MFP_Msk | SYS_GPC_MFPL_PC4MFP_Msk | SYS_GPC_MFPL_PC5MFP_Msk);
  147. }
  148. void nutool_pincfg_init_uart1(void)
  149. {
  150. SYS->GPB_MFPL &= ~(SYS_GPB_MFPL_PB2MFP_Msk | SYS_GPB_MFPL_PB3MFP_Msk);
  151. SYS->GPB_MFPL |= (SYS_GPB_MFPL_PB2MFP_UART1_RXD | SYS_GPB_MFPL_PB3MFP_UART1_TXD);
  152. }
  153. void nutool_pincfg_deinit_uart1(void)
  154. {
  155. SYS->GPB_MFPL &= ~(SYS_GPB_MFPL_PB2MFP_Msk | SYS_GPB_MFPL_PB3MFP_Msk);
  156. }
  157. void nutool_pincfg_init(void)
  158. {
  159. //SYS->GPA_MFPH = 0x00000000UL;
  160. //SYS->GPA_MFPL = 0xBB333333UL;
  161. //SYS->GPB_MFPH = 0x00660000UL;
  162. //SYS->GPB_MFPL = 0x11116611UL;
  163. //SYS->GPC_MFPH = 0x00000000UL;
  164. //SYS->GPC_MFPL = 0x00CCCC99UL;
  165. //SYS->GPD_MFPH = 0x00000000UL;
  166. //SYS->GPD_MFPL = 0x00000000UL;
  167. //SYS->GPE_MFPH = 0x00000000UL;
  168. //SYS->GPE_MFPL = 0x00000000UL;
  169. //SYS->GPF_MFPH = 0x00000000UL;
  170. //SYS->GPF_MFPL = 0x00AAAAEEUL;
  171. //SYS->GPG_MFPH = 0x00000000UL;
  172. //SYS->GPG_MFPL = 0x00000000UL;
  173. //SYS->GPH_MFPH = 0x00000000UL;
  174. //SYS->GPH_MFPL = 0x00000000UL;
  175. nutool_pincfg_init_ice();
  176. nutool_pincfg_init_uart0();
  177. nutool_pincfg_init_x32();
  178. nutool_pincfg_init_xt1();
  179. nutool_pincfg_init_qspi0();
  180. #if defined(BOARD_USING_LCD_ILI9341)
  181. nutool_pincfg_init_usci0();
  182. #endif
  183. nutool_pincfg_init_i2c0();
  184. nutool_pincfg_init_adc0();
  185. #if !defined(BOARD_USING_LCD_ILI9341)
  186. nutool_pincfg_deinit_pwm0();
  187. nutool_pincfg_deinit_uart1();
  188. #endif
  189. return;
  190. }
  191. void nutool_pincfg_deinit(void)
  192. {
  193. nutool_pincfg_deinit_ice();
  194. nutool_pincfg_deinit_uart0();
  195. nutool_pincfg_deinit_x32();
  196. nutool_pincfg_deinit_xt1();
  197. nutool_pincfg_deinit_qspi0();
  198. nutool_pincfg_init_usci0();
  199. nutool_pincfg_deinit_i2c0();
  200. nutool_pincfg_deinit_adc0();
  201. nutool_pincfg_deinit_pwm0();
  202. nutool_pincfg_deinit_uart1();
  203. return;
  204. }
  205. /*** (C) COPYRIGHT 2013-2020 Nuvoton Technology Corp. ***/