mcuconf.h 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. // Copyright 2022 Mega Mind (@megamind4089)
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #ifndef MCUCONF_H
  4. #define MCUCONF_H
  5. /*
  6. * STM32F4xx drivers configuration.
  7. * The following settings override the default settings present in
  8. * the various device driver implementation headers.
  9. * Note that the settings for each driver only have effect if the whole
  10. * driver is enabled in halconf.h.
  11. *
  12. * IRQ priorities:
  13. * 15...0 Lowest...Highest.
  14. *
  15. * DMA priorities:
  16. * 0...3 Lowest...Highest.
  17. */
  18. #define STM32F4xx_MCUCONF
  19. #define STM32F411_MCUCONF
  20. /*
  21. * HAL driver system settings.
  22. */
  23. #define STM32_NO_INIT FALSE
  24. #define STM32_PVD_ENABLE FALSE
  25. #define STM32_PLS STM32_PLS_LEV0
  26. #define STM32_BKPRAM_ENABLE FALSE
  27. #define STM32_HSI_ENABLED TRUE
  28. #define STM32_LSI_ENABLED TRUE
  29. #define STM32_HSE_ENABLED TRUE
  30. #define STM32_LSE_ENABLED FALSE
  31. #define STM32_CLOCK48_REQUIRED TRUE
  32. #define STM32_SW STM32_SW_PLL
  33. #define STM32_PLLSRC STM32_PLLSRC_HSE
  34. #define STM32_PLLM_VALUE 8
  35. #define STM32_PLLN_VALUE 336
  36. #define STM32_PLLP_VALUE 4
  37. #define STM32_PLLQ_VALUE 7
  38. #define STM32_HPRE STM32_HPRE_DIV1
  39. #define STM32_PPRE1 STM32_PPRE1_DIV2
  40. #define STM32_PPRE2 STM32_PPRE2_DIV1
  41. #define STM32_RTCSEL STM32_RTCSEL_LSI
  42. #define STM32_RTCPRE_VALUE 8
  43. #define STM32_MCO1SEL STM32_MCO1SEL_HSI
  44. #define STM32_MCO1PRE STM32_MCO1PRE_DIV1
  45. #define STM32_MCO2SEL STM32_MCO2SEL_SYSCLK
  46. #define STM32_MCO2PRE STM32_MCO2PRE_DIV5
  47. #define STM32_I2SSRC STM32_I2SSRC_CKIN
  48. #define STM32_PLLI2SN_VALUE 192
  49. #define STM32_PLLI2SR_VALUE 5
  50. /*
  51. * IRQ system settings.
  52. */
  53. #define STM32_IRQ_EXTI0_PRIORITY 6
  54. #define STM32_IRQ_EXTI1_PRIORITY 6
  55. #define STM32_IRQ_EXTI2_PRIORITY 6
  56. #define STM32_IRQ_EXTI3_PRIORITY 6
  57. #define STM32_IRQ_EXTI4_PRIORITY 6
  58. #define STM32_IRQ_EXTI5_9_PRIORITY 6
  59. #define STM32_IRQ_EXTI10_15_PRIORITY 6
  60. #define STM32_IRQ_EXTI16_PRIORITY 6
  61. #define STM32_IRQ_EXTI17_PRIORITY 15
  62. #define STM32_IRQ_EXTI18_PRIORITY 6
  63. #define STM32_IRQ_EXTI19_PRIORITY 6
  64. #define STM32_IRQ_EXTI20_PRIORITY 6
  65. #define STM32_IRQ_EXTI21_PRIORITY 15
  66. #define STM32_IRQ_EXTI22_PRIORITY 15
  67. #define STM32_IRQ_TIM1_BRK_TIM9_PRIORITY 7
  68. #define STM32_IRQ_TIM1_UP_TIM10_PRIORITY 7
  69. #define STM32_IRQ_TIM1_TRGCO_TIM11_PRIORITY 7
  70. #define STM32_IRQ_TIM1_CC_PRIORITY 7
  71. #define STM32_IRQ_TIM2_PRIORITY 7
  72. #define STM32_IRQ_TIM3_PRIORITY 7
  73. #define STM32_IRQ_TIM4_PRIORITY 7
  74. #define STM32_IRQ_TIM5_PRIORITY 7
  75. #define STM32_IRQ_USART1_PRIORITY 12
  76. #define STM32_IRQ_USART2_PRIORITY 12
  77. #define STM32_IRQ_USART6_PRIORITY 12
  78. /*
  79. * ADC driver system settings.
  80. */
  81. #define STM32_ADC_ADCPRE ADC_CCR_ADCPRE_DIV4
  82. #define STM32_ADC_USE_ADC1 FALSE
  83. #define STM32_ADC_ADC1_DMA_STREAM STM32_DMA_STREAM_ID(2, 4)
  84. #define STM32_ADC_ADC1_DMA_PRIORITY 2
  85. #define STM32_ADC_IRQ_PRIORITY 6
  86. #define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 6
  87. /*
  88. * GPT driver system settings.
  89. */
  90. #define STM32_GPT_USE_TIM1 FALSE
  91. #define STM32_GPT_USE_TIM2 FALSE
  92. #define STM32_GPT_USE_TIM3 FALSE
  93. #define STM32_GPT_USE_TIM4 FALSE
  94. #define STM32_GPT_USE_TIM5 FALSE
  95. #define STM32_GPT_USE_TIM9 FALSE
  96. #define STM32_GPT_USE_TIM10 FALSE
  97. #define STM32_GPT_USE_TIM11 FALSE
  98. /*
  99. * I2C driver system settings.
  100. */
  101. #define STM32_I2C_USE_I2C1 TRUE
  102. #define STM32_I2C_USE_I2C2 FALSE
  103. #define STM32_I2C_USE_I2C3 FALSE
  104. #define STM32_I2C_BUSY_TIMEOUT 50
  105. #define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
  106. #define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)
  107. #define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2)
  108. #define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
  109. #define STM32_I2C_I2C3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2)
  110. #define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
  111. #define STM32_I2C_I2C1_IRQ_PRIORITY 5
  112. #define STM32_I2C_I2C2_IRQ_PRIORITY 5
  113. #define STM32_I2C_I2C3_IRQ_PRIORITY 5
  114. #define STM32_I2C_I2C1_DMA_PRIORITY 3
  115. #define STM32_I2C_I2C2_DMA_PRIORITY 3
  116. #define STM32_I2C_I2C3_DMA_PRIORITY 3
  117. #define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
  118. /*
  119. * I2S driver system settings.
  120. */
  121. #define STM32_I2S_USE_SPI2 FALSE
  122. #define STM32_I2S_USE_SPI3 FALSE
  123. #define STM32_I2S_SPI2_IRQ_PRIORITY 10
  124. #define STM32_I2S_SPI3_IRQ_PRIORITY 10
  125. #define STM32_I2S_SPI2_DMA_PRIORITY 1
  126. #define STM32_I2S_SPI3_DMA_PRIORITY 1
  127. #define STM32_I2S_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3)
  128. #define STM32_I2S_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
  129. #define STM32_I2S_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
  130. #define STM32_I2S_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
  131. #define STM32_I2S_DMA_ERROR_HOOK(i2sp) osalSysHalt("DMA failure")
  132. /*
  133. * ICU driver system settings.
  134. */
  135. #define STM32_ICU_USE_TIM1 FALSE
  136. #define STM32_ICU_USE_TIM2 FALSE
  137. #define STM32_ICU_USE_TIM3 FALSE
  138. #define STM32_ICU_USE_TIM4 FALSE
  139. #define STM32_ICU_USE_TIM5 FALSE
  140. #define STM32_ICU_USE_TIM9 FALSE
  141. #define STM32_ICU_USE_TIM10 FALSE
  142. #define STM32_ICU_USE_TIM11 FALSE
  143. /*
  144. * PWM driver system settings.
  145. */
  146. #define STM32_PWM_USE_TIM1 FALSE
  147. #define STM32_PWM_USE_TIM2 FALSE
  148. #define STM32_PWM_USE_TIM3 FALSE
  149. #define STM32_PWM_USE_TIM4 FALSE
  150. #define STM32_PWM_USE_TIM5 FALSE
  151. #define STM32_PWM_USE_TIM9 FALSE
  152. #define STM32_PWM_USE_TIM10 FALSE
  153. #define STM32_PWM_USE_TIM11 FALSE
  154. /*
  155. * SERIAL driver system settings.
  156. */
  157. #define STM32_SERIAL_USE_USART1 TRUE
  158. #define STM32_SERIAL_USE_USART2 TRUE
  159. #define STM32_SERIAL_USE_USART6 FALSE
  160. /*
  161. * SPI driver system settings.
  162. */
  163. #define STM32_SPI_USE_SPI1 FALSE
  164. #define STM32_SPI_USE_SPI2 FALSE
  165. #define STM32_SPI_USE_SPI3 FALSE
  166. #define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 0)
  167. #define STM32_SPI_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 3)
  168. #define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3)
  169. #define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
  170. #define STM32_SPI_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
  171. #define STM32_SPI_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
  172. #define STM32_SPI_SPI1_DMA_PRIORITY 1
  173. #define STM32_SPI_SPI2_DMA_PRIORITY 1
  174. #define STM32_SPI_SPI3_DMA_PRIORITY 1
  175. #define STM32_SPI_SPI1_IRQ_PRIORITY 10
  176. #define STM32_SPI_SPI2_IRQ_PRIORITY 10
  177. #define STM32_SPI_SPI3_IRQ_PRIORITY 10
  178. #define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
  179. /*
  180. * ST driver system settings.
  181. */
  182. #define STM32_ST_IRQ_PRIORITY 8
  183. #define STM32_ST_USE_TIMER 2
  184. /*
  185. * UART driver system settings.
  186. */
  187. #define STM32_UART_USE_USART1 FALSE
  188. #define STM32_UART_USE_USART2 FALSE
  189. #define STM32_UART_USE_USART6 FALSE
  190. #define STM32_UART_USART1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 5)
  191. #define STM32_UART_USART1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 7)
  192. #define STM32_UART_USART2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5)
  193. #define STM32_UART_USART2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)
  194. #define STM32_UART_USART6_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 2)
  195. #define STM32_UART_USART6_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 7)
  196. #define STM32_UART_USART1_DMA_PRIORITY 0
  197. #define STM32_UART_USART2_DMA_PRIORITY 0
  198. #define STM32_UART_USART6_DMA_PRIORITY 0
  199. #define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
  200. /*
  201. * USB driver system settings.
  202. */
  203. #define STM32_USB_USE_OTG1 TRUE
  204. #define STM32_USB_OTG1_IRQ_PRIORITY 14
  205. #define STM32_USB_OTG1_RX_FIFO_SIZE 512
  206. #define STM32_USB_HOST_WAKEUP_DURATION 2
  207. /*
  208. * WDG driver system settings.
  209. */
  210. #define STM32_WDG_USE_IWDG FALSE
  211. #endif /* MCUCONF_H */