Changeset 98 for ctrl/firmware/Main/CubeMX/Core
- Timestamp:
- Feb 20, 2025, 4:39:55 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
r97 r98 80 80 #define POWER_15V_EN_Pin GPIO_PIN_7 81 81 #define POWER_15V_EN_GPIO_Port GPIOE 82 #define CHARGE_PWM_L_Pin GPIO_PIN_8 83 #define CHARGE_PWM_L_GPIO_Port GPIOE 84 #define CHARGE_PWM_H_Pin GPIO_PIN_9 85 #define CHARGE_PWM_H_GPIO_Port GPIOE 82 86 #define SPI4_NSS_DISPLAY_Pin GPIO_PIN_11 83 87 #define SPI4_NSS_DISPLAY_GPIO_Port GPIOE -
ctrl/firmware/Main/CubeMX/Core/Inc/tim.h
r84 r98 33 33 /* USER CODE END Includes */ 34 34 35 extern TIM_HandleTypeDef htim1; 36 35 37 extern TIM_HandleTypeDef htim3; 36 38 … … 43 45 /* USER CODE END Private defines */ 44 46 47 void MX_TIM1_Init(void); 45 48 void MX_TIM3_Init(void); 46 49 void MX_TIM6_Init(void); -
ctrl/firmware/Main/CubeMX/Core/Src/dac.c
r97 r98 64 64 /* USER CODE BEGIN DAC1_Init 2 */ 65 65 66 uint32_t Voltage_mV = 3400U / 2U; // We devide by 2, because voltage from Li-cell passes voltage divider 30k/30k (1:1)67 uint32_t Data = (Voltage_mV * ( 1U << DAC_RESOLUTION_BIT)) / VREF;66 uint32_t Voltage_mV = 6000U / 2U; // We devide by 2, because voltage from Li-cell passes voltage divider 30k/30k (1:1) 67 uint32_t Data = (Voltage_mV * ((1U << DAC_RESOLUTION_BIT) - 1U)) / VREF; 68 68 HAL_StatusTypeDef r = HAL_DAC_SetValue(&hdac1, DAC_U_LIMIT_CHANNEL, DAC_ALIGN_12B_R, Data); 69 69 if (r == HAL_OK) -
ctrl/firmware/Main/CubeMX/Core/Src/gpio.c
r97 r98 82 82 HAL_GPIO_WritePin(ETH_SPI_RST_GPIO_Port, ETH_SPI_RST_Pin, GPIO_PIN_RESET); 83 83 84 /*Configure GPIO pins : PE4 PE5 PE 8 PE985 PE1 0 PE0 PE1*/86 GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_ 8|GPIO_PIN_987 |GPIO_PIN_1 0|GPIO_PIN_0|GPIO_PIN_1;84 /*Configure GPIO pins : PE4 PE5 PE10 PE0 85 PE1 */ 86 GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_10|GPIO_PIN_0 87 |GPIO_PIN_1; 88 88 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; 89 89 GPIO_InitStruct.Pull = GPIO_NOPULL; -
ctrl/firmware/Main/CubeMX/Core/Src/main.c
r97 r98 149 149 MX_DTS_Init(); 150 150 MX_DAC1_Init(); 151 MX_TIM1_Init(); 151 152 /* USER CODE BEGIN 2 */ 152 153 -
ctrl/firmware/Main/CubeMX/Core/Src/tim.c
r86 r98 25 25 /* USER CODE END 0 */ 26 26 27 TIM_HandleTypeDef htim1; 27 28 TIM_HandleTypeDef htim3; 28 29 TIM_HandleTypeDef htim6; 29 30 TIM_HandleTypeDef htim8; 30 31 32 /* TIM1 init function */ 33 void MX_TIM1_Init(void) 34 { 35 36 /* USER CODE BEGIN TIM1_Init 0 */ 37 38 // This Timer is used to generate two PWM wave forms to charge the cell. 39 40 /* USER CODE END TIM1_Init 0 */ 41 42 TIM_ClockConfigTypeDef sClockSourceConfig = {0}; 43 TIM_MasterConfigTypeDef sMasterConfig = {0}; 44 TIM_OC_InitTypeDef sConfigOC = {0}; 45 TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig = {0}; 46 47 /* USER CODE BEGIN TIM1_Init 1 */ 48 49 // CPU freqency is assumed as 100MHz. PWM frequency must not be greater than 64kHz. 50 51 /* USER CODE END TIM1_Init 1 */ 52 htim1.Instance = TIM1; 53 htim1.Init.Prescaler = 0; 54 htim1.Init.CounterMode = TIM_COUNTERMODE_UP; 55 htim1.Init.Period = 800; // 1600 56 htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; 57 htim1.Init.RepetitionCounter = 0; 58 htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE; 59 if (HAL_TIM_Base_Init(&htim1) != HAL_OK) 60 { 61 Error_Handler(); 62 } 63 sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; 64 if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK) 65 { 66 Error_Handler(); 67 } 68 if (HAL_TIM_PWM_Init(&htim1) != HAL_OK) 69 { 70 Error_Handler(); 71 } 72 sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; 73 sMasterConfig.MasterOutputTrigger2 = TIM_TRGO2_RESET; 74 sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; 75 if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK) 76 { 77 Error_Handler(); 78 } 79 sConfigOC.OCMode = TIM_OCMODE_PWM1; 80 sConfigOC.Pulse = 200U; 81 sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; 82 sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH; 83 sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; 84 sConfigOC.OCIdleState = TIM_OCIDLESTATE_SET; 85 sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET; 86 if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) 87 { 88 Error_Handler(); 89 } 90 sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_ENABLE; 91 sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_ENABLE; 92 sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_1; 93 sBreakDeadTimeConfig.DeadTime = 20; 94 sBreakDeadTimeConfig.BreakState = TIM_BREAK_ENABLE; 95 sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH; 96 sBreakDeadTimeConfig.BreakFilter = 0; 97 sBreakDeadTimeConfig.Break2State = TIM_BREAK2_DISABLE; 98 sBreakDeadTimeConfig.Break2Polarity = TIM_BREAK2POLARITY_HIGH; 99 sBreakDeadTimeConfig.Break2Filter = 0; 100 sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_ENABLE; 101 if (HAL_TIMEx_ConfigBreakDeadTime(&htim1, &sBreakDeadTimeConfig) != HAL_OK) 102 { 103 Error_Handler(); 104 } 105 /* USER CODE BEGIN TIM1_Init 2 */ 106 107 /* USER CODE END TIM1_Init 2 */ 108 HAL_TIM_MspPostInit(&htim1); 109 110 } 31 111 /* TIM3 init function */ 32 112 void MX_TIM3_Init(void) … … 35 115 /* USER CODE BEGIN TIM3_Init 0 */ 36 116 37 // This timer is used to control FAN 117 // This timer is used to control FAN with the PWM generation. 38 118 39 119 /* USER CODE END TIM3_Init 0 */ … … 93 173 /* USER CODE BEGIN TIM6_Init 0 */ 94 174 95 // This timer increments its co ntentevery 1µs and is used to generate175 // This timer increments its counter every 1µs and is used to generate 96 176 // delays for 1-Wire protocol. CPU speed is assumed as 100MHz. 97 177 … … 128 208 129 209 /* USER CODE BEGIN TIM8_Init 0 */ 210 211 // This timer is used to count pulses from FAN's Hall-sensor to count RPM. 130 212 131 213 /* USER CODE END TIM8_Init 0 */ … … 192 274 193 275 GPIO_InitTypeDef GPIO_InitStruct = {0}; 194 if(tim_baseHandle->Instance==TIM3) 276 if(tim_baseHandle->Instance==TIM1) 277 { 278 /* USER CODE BEGIN TIM1_MspInit 0 */ 279 280 /* USER CODE END TIM1_MspInit 0 */ 281 /* TIM1 clock enable */ 282 __HAL_RCC_TIM1_CLK_ENABLE(); 283 /* USER CODE BEGIN TIM1_MspInit 1 */ 284 285 /* USER CODE END TIM1_MspInit 1 */ 286 } 287 else if(tim_baseHandle->Instance==TIM3) 195 288 { 196 289 /* USER CODE BEGIN TIM3_MspInit 0 */ … … 252 345 253 346 GPIO_InitTypeDef GPIO_InitStruct = {0}; 254 if(timHandle->Instance==TIM3) 347 if(timHandle->Instance==TIM1) 348 { 349 /* USER CODE BEGIN TIM1_MspPostInit 0 */ 350 351 /* USER CODE END TIM1_MspPostInit 0 */ 352 __HAL_RCC_GPIOE_CLK_ENABLE(); 353 /**TIM1 GPIO Configuration 354 PE8 ------> TIM1_CH1N 355 PE9 ------> TIM1_CH1 356 */ 357 GPIO_InitStruct.Pin = CHARGE_PWM_L_Pin|CHARGE_PWM_H_Pin; 358 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 359 GPIO_InitStruct.Pull = GPIO_NOPULL; 360 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; 361 GPIO_InitStruct.Alternate = GPIO_AF1_TIM1; 362 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); 363 364 /* USER CODE BEGIN TIM1_MspPostInit 1 */ 365 366 /* USER CODE END TIM1_MspPostInit 1 */ 367 } 368 else if(timHandle->Instance==TIM3) 255 369 { 256 370 /* USER CODE BEGIN TIM3_MspPostInit 0 */ … … 279 393 { 280 394 281 if(tim_baseHandle->Instance==TIM3) 395 if(tim_baseHandle->Instance==TIM1) 396 { 397 /* USER CODE BEGIN TIM1_MspDeInit 0 */ 398 399 /* USER CODE END TIM1_MspDeInit 0 */ 400 /* Peripheral clock disable */ 401 __HAL_RCC_TIM1_CLK_DISABLE(); 402 /* USER CODE BEGIN TIM1_MspDeInit 1 */ 403 404 /* USER CODE END TIM1_MspDeInit 1 */ 405 } 406 else if(tim_baseHandle->Instance==TIM3) 282 407 { 283 408 /* USER CODE BEGIN TIM3_MspDeInit 0 */
Note: See TracChangeset
for help on using the changeset viewer.