Changeset 77 for ctrl/firmware/Main/CubeMX/Core
- Timestamp:
- Feb 3, 2025, 3:27:37 PM (3 months ago)
- Location:
- ctrl/firmware/Main/CubeMX/Core
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
ctrl/firmware/Main/CubeMX/Core/Inc/main.h
r76 r77 114 114 #define ETH_SPI_INT_Pin GPIO_PIN_8 115 115 #define ETH_SPI_INT_GPIO_Port GPIOB 116 #define ETH_SPI_INT_EXTI_IRQn EXTI9_5_IRQn 116 117 #define ETH_SPI_RST_Pin GPIO_PIN_9 117 118 #define ETH_SPI_RST_GPIO_Port GPIOB -
ctrl/firmware/Main/CubeMX/Core/Inc/stm32h7xx_it.h
r72 r77 56 56 void DMA1_Stream1_IRQHandler(void); 57 57 void DMA1_Stream2_IRQHandler(void); 58 void EXTI9_5_IRQHandler(void); 58 59 void TIM3_IRQHandler(void); 60 void SPI2_IRQHandler(void); 59 61 void USART3_IRQHandler(void); 60 62 void TIM8_CC_IRQHandler(void); -
ctrl/firmware/Main/CubeMX/Core/Src/gpio.c
r76 r77 74 74 75 75 /*Configure GPIO pin Output Level */ 76 HAL_GPIO_WritePin(ETH_SPI_NSS_GPIO_Port, ETH_SPI_NSS_Pin, GPIO_PIN_SET); 77 78 /*Configure GPIO pin Output Level */ 76 79 HAL_GPIO_WritePin(ETH_SPI_RST_GPIO_Port, ETH_SPI_RST_Pin, GPIO_PIN_RESET); 77 80 … … 186 189 HAL_GPIO_Init(SD_DETECT_GPIO_Port, &GPIO_InitStruct); 187 190 191 /*Configure GPIO pins : ETH_SPI_NSS_Pin ETH_SPI_RST_Pin */ 192 GPIO_InitStruct.Pin = ETH_SPI_NSS_Pin|ETH_SPI_RST_Pin; 193 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; 194 GPIO_InitStruct.Pull = GPIO_NOPULL; 195 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; 196 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); 197 188 198 /*Configure GPIO pin : ETH_SPI_INT_Pin */ 189 199 GPIO_InitStruct.Pin = ETH_SPI_INT_Pin; 190 GPIO_InitStruct.Mode = GPIO_MODE_IT_ RISING;200 GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING; 191 201 GPIO_InitStruct.Pull = GPIO_NOPULL; 192 202 HAL_GPIO_Init(ETH_SPI_INT_GPIO_Port, &GPIO_InitStruct); 193 203 194 /*Configure GPIO pin : ETH_SPI_RST_Pin */ 195 GPIO_InitStruct.Pin = ETH_SPI_RST_Pin; 196 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; 197 GPIO_InitStruct.Pull = GPIO_NOPULL; 198 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; 199 HAL_GPIO_Init(ETH_SPI_RST_GPIO_Port, &GPIO_InitStruct); 204 /* EXTI interrupt init*/ 205 HAL_NVIC_SetPriority(EXTI9_5_IRQn, 5, 0); 206 HAL_NVIC_EnableIRQ(EXTI9_5_IRQn); 200 207 201 208 } -
ctrl/firmware/Main/CubeMX/Core/Src/main.c
r76 r77 35 35 #include <stdio.h> 36 36 37 #include "lwip.h"38 39 37 /* USER CODE END Includes */ 40 38 … … 187 185 RCC_OscInitStruct.PLL.PLLN = 40; 188 186 RCC_OscInitStruct.PLL.PLLP = 2; 189 RCC_OscInitStruct.PLL.PLLQ = 4;187 RCC_OscInitStruct.PLL.PLLQ = 2; 190 188 RCC_OscInitStruct.PLL.PLLR = 2; 191 189 RCC_OscInitStruct.PLL.PLLRGE = RCC_PLL1VCIRANGE_2; -
ctrl/firmware/Main/CubeMX/Core/Src/spi.c
r76 r77 46 46 hspi2.Init.CLKPolarity = SPI_POLARITY_LOW; 47 47 hspi2.Init.CLKPhase = SPI_PHASE_1EDGE; 48 hspi2.Init.NSS = SPI_NSS_ HARD_OUTPUT;48 hspi2.Init.NSS = SPI_NSS_SOFT; 49 49 hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; 50 50 hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB; … … 57 57 hspi2.Init.TxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN; 58 58 hspi2.Init.RxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN; 59 hspi2.Init.MasterSSIdleness = SPI_MASTER_SS_IDLENESS_0 3CYCLE;60 hspi2.Init.MasterInterDataIdleness = SPI_MASTER_INTERDATA_IDLENESS_0 6CYCLE;59 hspi2.Init.MasterSSIdleness = SPI_MASTER_SS_IDLENESS_00CYCLE; 60 hspi2.Init.MasterInterDataIdleness = SPI_MASTER_INTERDATA_IDLENESS_01CYCLE; 61 61 hspi2.Init.MasterReceiverAutoSusp = SPI_MASTER_RX_AUTOSUSP_DISABLE; 62 hspi2.Init.MasterKeepIOState = SPI_MASTER_KEEP_IO_STATE_ ENABLE;62 hspi2.Init.MasterKeepIOState = SPI_MASTER_KEEP_IO_STATE_DISABLE; 63 63 hspi2.Init.IOSwap = SPI_IO_SWAP_DISABLE; 64 64 if (HAL_SPI_Init(&hspi2) != HAL_OK) … … 128 128 */ 129 129 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SPI2; 130 PeriphClkInitStruct.Spi123ClockSelection = RCC_SPI123CLKSOURCE_PLL; 130 PeriphClkInitStruct.PLL2.PLL2M = 2; 131 PeriphClkInitStruct.PLL2.PLL2N = 20; 132 PeriphClkInitStruct.PLL2.PLL2P = 2; 133 PeriphClkInitStruct.PLL2.PLL2Q = 11; 134 PeriphClkInitStruct.PLL2.PLL2R = 10; 135 PeriphClkInitStruct.PLL2.PLL2RGE = RCC_PLL2VCIRANGE_3; 136 PeriphClkInitStruct.PLL2.PLL2VCOSEL = RCC_PLL2VCOWIDE; 137 PeriphClkInitStruct.PLL2.PLL2FRACN = 0; 138 PeriphClkInitStruct.Spi123ClockSelection = RCC_SPI123CLKSOURCE_PLL2; 131 139 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) 132 140 { … … 142 150 PB14 ------> SPI2_MISO 143 151 PB15 ------> SPI2_MOSI 144 PB4(NJTRST) ------> SPI2_NSS145 152 */ 146 153 GPIO_InitStruct.Pin = ETH_SPI_SCK_Pin|ETH_SPI_MISO_Pin|ETH_SPI_MOSI_Pin; … … 151 158 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); 152 159 153 GPIO_InitStruct.Pin = ETH_SPI_NSS_Pin; 154 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 155 GPIO_InitStruct.Pull = GPIO_NOPULL; 156 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 157 GPIO_InitStruct.Alternate = GPIO_AF7_SPI2; 158 HAL_GPIO_Init(ETH_SPI_NSS_GPIO_Port, &GPIO_InitStruct); 159 160 /* SPI2 interrupt Init */ 161 HAL_NVIC_SetPriority(SPI2_IRQn, 5, 0); 162 HAL_NVIC_EnableIRQ(SPI2_IRQn); 160 163 /* USER CODE BEGIN SPI2_MspInit 1 */ 161 164 … … 236 239 PB14 ------> SPI2_MISO 237 240 PB15 ------> SPI2_MOSI 238 PB4(NJTRST) ------> SPI2_NSS 239 */ 240 HAL_GPIO_DeInit(GPIOB, ETH_SPI_SCK_Pin|ETH_SPI_MISO_Pin|ETH_SPI_MOSI_Pin|ETH_SPI_NSS_Pin); 241 241 */ 242 HAL_GPIO_DeInit(GPIOB, ETH_SPI_SCK_Pin|ETH_SPI_MISO_Pin|ETH_SPI_MOSI_Pin); 243 244 /* SPI2 interrupt Deinit */ 245 HAL_NVIC_DisableIRQ(SPI2_IRQn); 242 246 /* USER CODE BEGIN SPI2_MspDeInit 1 */ 243 247 -
ctrl/firmware/Main/CubeMX/Core/Src/stm32h7xx_it.c
r72 r77 24 24 /* USER CODE BEGIN Includes */ 25 25 26 #include "FreeRTOS.h" 27 #include "semphr.h" 28 26 29 /* USER CODE END Includes */ 27 30 … … 59 62 extern SD_HandleTypeDef hsd1; 60 63 extern DMA_HandleTypeDef hdma_spi4_tx; 64 extern SPI_HandleTypeDef hspi2; 61 65 extern SPI_HandleTypeDef hspi4; 62 66 extern TIM_HandleTypeDef htim3; … … 212 216 213 217 /** 218 * @brief This function handles EXTI line[9:5] interrupts. 219 */ 220 void EXTI9_5_IRQHandler(void) 221 { 222 /* USER CODE BEGIN EXTI9_5_IRQn 0 */ 223 224 /* USER CODE END EXTI9_5_IRQn 0 */ 225 HAL_GPIO_EXTI_IRQHandler(ETH_SPI_INT_Pin); 226 /* USER CODE BEGIN EXTI9_5_IRQn 1 */ 227 228 /* USER CODE END EXTI9_5_IRQn 1 */ 229 } 230 231 /** 214 232 * @brief This function handles TIM3 global interrupt. 215 233 */ … … 226 244 227 245 /** 246 * @brief This function handles SPI2 global interrupt. 247 */ 248 void SPI2_IRQHandler(void) 249 { 250 /* USER CODE BEGIN SPI2_IRQn 0 */ 251 252 /* USER CODE END SPI2_IRQn 0 */ 253 HAL_SPI_IRQHandler(&hspi2); 254 /* USER CODE BEGIN SPI2_IRQn 1 */ 255 256 /* USER CODE END SPI2_IRQn 1 */ 257 } 258 259 /** 228 260 * @brief This function handles USART3 global interrupt. 229 261 */ … … 313 345 //------------------------------------------------------------------------------ 314 346 347 void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef* hspi) 348 { 349 if (hspi->Instance == SPI2) 350 { 351 //HAL_GPIO_WritePin(ETH_SPI_NSS_GPIO_Port, ETH_SPI_NSS_Pin, GPIO_PIN_SET); 352 } 353 } 354 355 //------------------------------------------------------------------------------ 356 357 void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) 358 { 359 if (GPIO_Pin == ETH_SPI_INT_Pin) 360 { 361 /*extern SemaphoreHandle_t s_xSemaphoreSpi; 362 363 portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; 364 365 xSemaphoreGiveFromISR(s_xSemaphoreSpi, &xHigherPriorityTaskWoken);*/ 366 367 } 368 } 369 370 //------------------------------------------------------------------------------ 371 //------------------------------------------------------------------------------ 372 //------------------------------------------------------------------------------ 373 //------------------------------------------------------------------------------ 374 //------------------------------------------------------------------------------ 375 376 315 377 /* USER CODE END 1 */
Note: See TracChangeset
for help on using the changeset viewer.