mcuconf.h 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  1. #define STM32F4xx_MCUCONF
  2. /*
  3. * HAL driver system settings.
  4. */
  5. #define STM32_NO_INIT FALSE
  6. #define STM32_HSI_ENABLED TRUE
  7. #define STM32_LSI_ENABLED TRUE
  8. #define STM32_HSE_ENABLED TRUE
  9. #define STM32_LSE_ENABLED FALSE
  10. #define STM32_CLOCK48_REQUIRED TRUE
  11. #define STM32_SW STM32_SW_PLL
  12. #define STM32_PLLSRC STM32_PLLSRC_HSE
  13. #define STM32_PLLM_VALUE 8
  14. #define STM32_PLLN_VALUE 336
  15. #define STM32_PLLP_VALUE 2
  16. #define STM32_PLLQ_VALUE 7
  17. #define STM32_HPRE STM32_HPRE_DIV1
  18. #define STM32_PPRE1 STM32_PPRE1_DIV4
  19. #define STM32_PPRE2 STM32_PPRE2_DIV2
  20. #define STM32_RTCSEL STM32_RTCSEL_LSI
  21. #define STM32_RTCPRE_VALUE 8
  22. #define STM32_MCO1SEL STM32_MCO1SEL_HSI
  23. #define STM32_MCO1PRE STM32_MCO1PRE_DIV1
  24. #define STM32_MCO2SEL STM32_MCO2SEL_SYSCLK
  25. #define STM32_MCO2PRE STM32_MCO2PRE_DIV5
  26. #define STM32_I2SSRC STM32_I2SSRC_CKIN
  27. #define STM32_PLLI2SN_VALUE 192
  28. #define STM32_PLLI2SR_VALUE 5
  29. #define STM32_PVD_ENABLE FALSE
  30. #define STM32_PLS STM32_PLS_LEV0
  31. #define STM32_BKPRAM_ENABLE FALSE
  32. /*
  33. * ADC driver system settings.
  34. */
  35. #define STM32_ADC_ADCPRE ADC_CCR_ADCPRE_DIV4
  36. #define STM32_ADC_USE_ADC1 FALSE
  37. #define STM32_ADC_USE_ADC2 FALSE
  38. #define STM32_ADC_USE_ADC3 FALSE
  39. #define STM32_ADC_ADC1_DMA_STREAM STM32_DMA_STREAM_ID(2, 4)
  40. #define STM32_ADC_ADC2_DMA_STREAM STM32_DMA_STREAM_ID(2, 2)
  41. #define STM32_ADC_ADC3_DMA_STREAM STM32_DMA_STREAM_ID(2, 1)
  42. #define STM32_ADC_ADC1_DMA_PRIORITY 2
  43. #define STM32_ADC_ADC2_DMA_PRIORITY 2
  44. #define STM32_ADC_ADC3_DMA_PRIORITY 2
  45. #define STM32_ADC_IRQ_PRIORITY 6
  46. #define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 6
  47. #define STM32_ADC_ADC2_DMA_IRQ_PRIORITY 6
  48. #define STM32_ADC_ADC3_DMA_IRQ_PRIORITY 6
  49. /*
  50. * CAN driver system settings.
  51. */
  52. #define STM32_CAN_USE_CAN1 FALSE
  53. #define STM32_CAN_USE_CAN2 FALSE
  54. #define STM32_CAN_CAN1_IRQ_PRIORITY 11
  55. #define STM32_CAN_CAN2_IRQ_PRIORITY 11
  56. /*
  57. * EXT driver system settings.
  58. */
  59. #define STM32_EXT_EXTI0_IRQ_PRIORITY 6
  60. #define STM32_EXT_EXTI1_IRQ_PRIORITY 6
  61. #define STM32_EXT_EXTI2_IRQ_PRIORITY 6
  62. #define STM32_EXT_EXTI3_IRQ_PRIORITY 6
  63. #define STM32_EXT_EXTI4_IRQ_PRIORITY 6
  64. #define STM32_EXT_EXTI5_9_IRQ_PRIORITY 6
  65. #define STM32_EXT_EXTI10_15_IRQ_PRIORITY 6
  66. #define STM32_EXT_EXTI16_IRQ_PRIORITY 6
  67. #define STM32_EXT_EXTI17_IRQ_PRIORITY 15
  68. #define STM32_EXT_EXTI18_IRQ_PRIORITY 6
  69. #define STM32_EXT_EXTI19_IRQ_PRIORITY 6
  70. #define STM32_EXT_EXTI20_IRQ_PRIORITY 6
  71. #define STM32_EXT_EXTI21_IRQ_PRIORITY 15
  72. #define STM32_EXT_EXTI22_IRQ_PRIORITY 15
  73. /*
  74. * GPT driver system settings.
  75. */
  76. #define STM32_GPT_USE_TIM1 FALSE
  77. #define STM32_GPT_USE_TIM2 FALSE
  78. #define STM32_GPT_USE_TIM3 FALSE
  79. #define STM32_GPT_USE_TIM4 FALSE
  80. #define STM32_GPT_USE_TIM5 FALSE
  81. #define STM32_GPT_USE_TIM6 FALSE
  82. #define STM32_GPT_USE_TIM7 FALSE
  83. #define STM32_GPT_USE_TIM8 FALSE
  84. #define STM32_GPT_USE_TIM9 FALSE
  85. #define STM32_GPT_USE_TIM11 FALSE
  86. #define STM32_GPT_USE_TIM12 FALSE
  87. #define STM32_GPT_USE_TIM14 FALSE
  88. #define STM32_GPT_TIM1_IRQ_PRIORITY 7
  89. #define STM32_GPT_TIM2_IRQ_PRIORITY 7
  90. #define STM32_GPT_TIM3_IRQ_PRIORITY 7
  91. #define STM32_GPT_TIM4_IRQ_PRIORITY 7
  92. #define STM32_GPT_TIM5_IRQ_PRIORITY 7
  93. #define STM32_GPT_TIM6_IRQ_PRIORITY 7
  94. #define STM32_GPT_TIM7_IRQ_PRIORITY 7
  95. #define STM32_GPT_TIM8_IRQ_PRIORITY 7
  96. #define STM32_GPT_TIM9_IRQ_PRIORITY 7
  97. #define STM32_GPT_TIM11_IRQ_PRIORITY 7
  98. #define STM32_GPT_TIM12_IRQ_PRIORITY 7
  99. #define STM32_GPT_TIM14_IRQ_PRIORITY 7
  100. /*
  101. * I2C driver system settings.
  102. */
  103. #define STM32_I2C_USE_I2C1 FALSE
  104. #define STM32_I2C_USE_I2C2 FALSE
  105. #define STM32_I2C_USE_I2C3 FALSE
  106. #define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
  107. #define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)
  108. #define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2)
  109. #define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
  110. #define STM32_I2C_I2C3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2)
  111. #define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
  112. #define STM32_I2C_I2C1_IRQ_PRIORITY 5
  113. #define STM32_I2C_I2C2_IRQ_PRIORITY 5
  114. #define STM32_I2C_I2C3_IRQ_PRIORITY 5
  115. #define STM32_I2C_I2C1_DMA_PRIORITY 3
  116. #define STM32_I2C_I2C2_DMA_PRIORITY 3
  117. #define STM32_I2C_I2C3_DMA_PRIORITY 3
  118. #define STM32_I2C_I2C1_DMA_ERROR_HOOK() chSysHalt()
  119. #define STM32_I2C_I2C2_DMA_ERROR_HOOK() chSysHalt()
  120. #define STM32_I2C_I2C3_DMA_ERROR_HOOK() chSysHalt()
  121. /*
  122. * ICU driver system settings.
  123. */
  124. #define STM32_ICU_USE_TIM1 FALSE
  125. #define STM32_ICU_USE_TIM2 FALSE
  126. #define STM32_ICU_USE_TIM3 FALSE
  127. #define STM32_ICU_USE_TIM4 FALSE
  128. #define STM32_ICU_USE_TIM5 FALSE
  129. #define STM32_ICU_USE_TIM8 FALSE
  130. #define STM32_ICU_USE_TIM9 FALSE
  131. #define STM32_ICU_TIM1_IRQ_PRIORITY 7
  132. #define STM32_ICU_TIM2_IRQ_PRIORITY 7
  133. #define STM32_ICU_TIM3_IRQ_PRIORITY 7
  134. #define STM32_ICU_TIM4_IRQ_PRIORITY 7
  135. #define STM32_ICU_TIM5_IRQ_PRIORITY 7
  136. #define STM32_ICU_TIM8_IRQ_PRIORITY 7
  137. #define STM32_ICU_TIM9_IRQ_PRIORITY 7
  138. /*
  139. * MAC driver system settings.
  140. */
  141. #define STM32_MAC_TRANSMIT_BUFFERS 2
  142. #define STM32_MAC_RECEIVE_BUFFERS 4
  143. #define STM32_MAC_BUFFERS_SIZE 1522
  144. #define STM32_MAC_PHY_TIMEOUT 100
  145. #define STM32_MAC_ETH1_CHANGE_PHY_STATE TRUE
  146. #define STM32_MAC_ETH1_IRQ_PRIORITY 13
  147. #define STM32_MAC_IP_CHECKSUM_OFFLOAD 0
  148. /*
  149. * PWM driver system settings.
  150. */
  151. #define STM32_PWM_USE_ADVANCED FALSE
  152. #define STM32_PWM_USE_TIM1 FALSE
  153. #define STM32_PWM_USE_TIM2 FALSE
  154. #define STM32_PWM_USE_TIM3 FALSE
  155. #define STM32_PWM_USE_TIM4 FALSE
  156. #define STM32_PWM_USE_TIM5 FALSE
  157. #define STM32_PWM_USE_TIM8 FALSE
  158. #define STM32_PWM_USE_TIM9 FALSE
  159. #define STM32_PWM_TIM1_IRQ_PRIORITY 7
  160. #define STM32_PWM_TIM2_IRQ_PRIORITY 7
  161. #define STM32_PWM_TIM3_IRQ_PRIORITY 7
  162. #define STM32_PWM_TIM4_IRQ_PRIORITY 7
  163. #define STM32_PWM_TIM5_IRQ_PRIORITY 7
  164. #define STM32_PWM_TIM8_IRQ_PRIORITY 7
  165. #define STM32_PWM_TIM9_IRQ_PRIORITY 7
  166. /*
  167. * SERIAL driver system settings.
  168. */
  169. #define STM32_SERIAL_USE_USART1 FALSE
  170. #define STM32_SERIAL_USE_USART2 FALSE
  171. #define STM32_SERIAL_USE_USART3 TRUE
  172. #define STM32_SERIAL_USE_UART4 FALSE
  173. #define STM32_SERIAL_USE_UART5 FALSE
  174. #define STM32_SERIAL_USE_USART6 FALSE
  175. #define STM32_SERIAL_USART1_PRIORITY 12
  176. #define STM32_SERIAL_USART2_PRIORITY 12
  177. #define STM32_SERIAL_USART3_PRIORITY 12
  178. #define STM32_SERIAL_UART4_PRIORITY 12
  179. #define STM32_SERIAL_UART5_PRIORITY 12
  180. #define STM32_SERIAL_USART6_PRIORITY 12
  181. /*
  182. * SPI driver system settings.
  183. */
  184. #define STM32_SPI_USE_SPI1 FALSE
  185. #define STM32_SPI_USE_SPI2 TRUE
  186. #define STM32_SPI_USE_SPI3 FALSE
  187. #define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 0)
  188. #define STM32_SPI_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 3)
  189. #define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3)
  190. #define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
  191. #define STM32_SPI_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
  192. #define STM32_SPI_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
  193. #define STM32_SPI_SPI1_DMA_PRIORITY 1
  194. #define STM32_SPI_SPI2_DMA_PRIORITY 1
  195. #define STM32_SPI_SPI3_DMA_PRIORITY 1
  196. #define STM32_SPI_SPI1_IRQ_PRIORITY 10
  197. #define STM32_SPI_SPI2_IRQ_PRIORITY 10
  198. #define STM32_SPI_SPI3_IRQ_PRIORITY 10
  199. #define STM32_SPI_DMA_ERROR_HOOK(spip) chSysHalt()
  200. /*
  201. * UART driver system settings.
  202. */
  203. #define STM32_UART_USE_USART1 FALSE
  204. #define STM32_UART_USE_USART2 FALSE
  205. #define STM32_UART_USE_USART3 FALSE
  206. #define STM32_UART_USE_UART4 FALSE
  207. #define STM32_UART_USE_UART5 FALSE
  208. #define STM32_UART_USE_USART6 FALSE
  209. #define STM32_UART_USART1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 5)
  210. #define STM32_UART_USART1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 7)
  211. #define STM32_UART_USART2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5)
  212. #define STM32_UART_USART2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)
  213. #define STM32_UART_USART3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1)
  214. #define STM32_UART_USART3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3)
  215. #define STM32_UART_UART4_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2)
  216. #define STM32_UART_UART4_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
  217. #define STM32_UART_UART5_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
  218. #define STM32_UART_UART5_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
  219. #define STM32_UART_USART6_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 2)
  220. #define STM32_UART_USART6_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 7)
  221. #define STM32_UART_USART1_IRQ_PRIORITY 12
  222. #define STM32_UART_USART2_IRQ_PRIORITY 12
  223. #define STM32_UART_USART3_IRQ_PRIORITY 12
  224. #define STM32_UART_UART4_IRQ_PRIORITY 12
  225. #define STM32_UART_UART5_IRQ_PRIORITY 12
  226. #define STM32_UART_USART6_IRQ_PRIORITY 12
  227. #define STM32_UART_USART1_DMA_PRIORITY 0
  228. #define STM32_UART_USART2_DMA_PRIORITY 0
  229. #define STM32_UART_USART3_DMA_PRIORITY 0
  230. #define STM32_UART_UART4_DMA_PRIORITY 0
  231. #define STM32_UART_UART5_DMA_PRIORITY 0
  232. #define STM32_UART_USART6_DMA_PRIORITY 0
  233. #define STM32_UART_DMA_ERROR_HOOK(uartp) chSysHalt()
  234. /*
  235. * USB driver system settings.
  236. */
  237. #define STM32_USB_USE_OTG1 FALSE
  238. #define STM32_USB_USE_OTG2 FALSE
  239. #define STM32_USB_OTG1_IRQ_PRIORITY 14
  240. #define STM32_USB_OTG2_IRQ_PRIORITY 14
  241. #define STM32_USB_OTG1_RX_FIFO_SIZE 512
  242. #define STM32_USB_OTG2_RX_FIFO_SIZE 1024
  243. #define STM32_USB_OTG_THREAD_PRIO LOWPRIO
  244. #define STM32_USB_OTG_THREAD_STACK_SIZE 128
  245. #define STM32_USB_OTGFIFO_FILL_BASEPRI 0