Skip to content

Commit 88c28da

Browse files
Merge branch 'main' into feature/bms-precharge-drive-lock
2 parents 6089cfb + 3abffd5 commit 88c28da

17 files changed

Lines changed: 177 additions & 160 deletions

.mxproject

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

Cerberus-2.0.ioc

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -94,13 +94,13 @@ ETH.IPParameters=MediaInterface
9494
ETH.MediaInterface=HAL_ETH_RMII_MODE
9595
FDCAN2.CalculateBaudRateNominal=500000
9696
FDCAN2.CalculateTimeBitNominal=2000
97-
FDCAN2.CalculateTimeQuantumNominal=200.0
97+
FDCAN2.CalculateTimeQuantumNominal=125.0
9898
FDCAN2.ExtFiltersNbr=8
9999
FDCAN2.IPParameters=CalculateTimeQuantumNominal,CalculateTimeBitNominal,CalculateBaudRateNominal,NominalPrescaler,NominalTimeSeg1,NominalTimeSeg2,Mode,StdFiltersNbr,ExtFiltersNbr
100100
FDCAN2.Mode=FDCAN_MODE_NORMAL
101-
FDCAN2.NominalPrescaler=5
102-
FDCAN2.NominalTimeSeg1=1
103-
FDCAN2.NominalTimeSeg2=8
101+
FDCAN2.NominalPrescaler=8
102+
FDCAN2.NominalTimeSeg1=11
103+
FDCAN2.NominalTimeSeg2=4
104104
FDCAN2.StdFiltersNbr=12
105105
File.Version=6
106106
GPDMA1.CIRCULARMODE_GPDMACH4=ENABLE
@@ -536,11 +536,12 @@ PD2.Signal=GPIO_Output
536536
PD3.Locked=true
537537
PD4.Locked=true
538538
PD5.Locked=true
539-
PD6.GPIOParameters=GPIO_PuPd,GPIO_Label
539+
PD6.GPIOParameters=PinState,GPIO_PuPd,GPIO_Label
540540
PD6.GPIO_Label=EF_LV_EN
541541
PD6.GPIO_PuPd=GPIO_PULLUP
542542
PD6.Locked=true
543-
PD6.Signal=GPIO_Input
543+
PD6.PinState=GPIO_PIN_SET
544+
PD6.Signal=GPIO_Output
544545
PD7.GPIOParameters=GPIO_PuPd,GPIO_Label
545546
PD7.GPIO_Label=EF_LV_ER
546547
PD7.GPIO_PuPd=GPIO_PULLUP
@@ -624,9 +625,11 @@ PF15.GPIOParameters=GPIO_Label
624625
PF15.GPIO_Label=HVD_GPIO
625626
PF15.Locked=true
626627
PF15.Signal=GPIO_Input
627-
PF2.GPIOParameters=GPIO_Label
628+
PF2.GPIOParameters=PinState,GPIO_PuPd,GPIO_Label
628629
PF2.GPIO_Label=EF_BATTBOX_EN
630+
PF2.GPIO_PuPd=GPIO_PULLUP
629631
PF2.Locked=true
632+
PF2.PinState=GPIO_PIN_SET
630633
PF2.Signal=GPIO_Output
631634
PF3.GPIOParameters=GPIO_PuPd,GPIO_Label
632635
PF3.GPIO_Label=EF_BATTBOX_ER
@@ -699,11 +702,12 @@ PG5.GPIO_Label=EF_RADFAN_ER
699702
PG5.GPIO_PuPd=GPIO_PULLUP
700703
PG5.Locked=true
701704
PG5.Signal=GPIO_Input
702-
PG6.GPIOParameters=GPIO_PuPd,GPIO_Label
705+
PG6.GPIOParameters=PinState,GPIO_PuPd,GPIO_Label
703706
PG6.GPIO_Label=EF_SHUTDOWN_EN
704707
PG6.GPIO_PuPd=GPIO_PULLUP
705708
PG6.Locked=true
706-
PG6.Signal=GPIO_Input
709+
PG6.PinState=GPIO_PIN_SET
710+
PG6.Signal=GPIO_Output
707711
PG7.GPIOParameters=GPIO_PuPd,GPIO_Label
708712
PG7.GPIO_Label=EF_SHUTDOWN_ER
709713
PG7.GPIO_PuPd=GPIO_PULLUP
@@ -748,7 +752,7 @@ ProjectManager.RegisterCallBack=
748752
ProjectManager.StackSize=0x400
749753
ProjectManager.TargetToolchain=CMake
750754
ProjectManager.ToolChainLocation=
751-
ProjectManager.UAScriptAfterPath=
755+
ProjectManager.UAScriptAfterPath=post_cubemx.sh
752756
ProjectManager.UAScriptBeforePath=
753757
ProjectManager.UnderRoot=false
754758
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPDMA1_Init-GPDMA1-false-HAL-true,3-MX_GPIO_Init-GPIO-false-HAL-true,4-MX_ICACHE_Init-ICACHE-false-HAL-true,5-MX_NetXDuo_Init-NETXDUO-false-HAL-false,6-MX_ADC1_Init-ADC1-false-HAL-true,7-MX_ADC2_Init-ADC2-false-HAL-true,8-MX_FDCAN2_Init-FDCAN2-false-HAL-true,9-MX_ETH_Init-ETH-false-HAL-true,10-MX_I2C2_Init-I2C2-false-HAL-true,11-MX_LPUART1_UART_Init-LPUART1-false-HAL-true,12-MX_SPI2_Init-SPI2-false-HAL-true,13-MX_UART7_Init-UART7-false-HAL-true,14-MX_DCACHE1_Init-DCACHE1-false-HAL-true,15-MX_IWDG_Init-IWDG-false-HAL-true,0-MX_CORTEX_M33_NS_Init-CORTEX_M33_NS-false-HAL-true,0-MX_PWR_Init-PWR-false-HAL-true
@@ -769,7 +773,8 @@ RCC.DACFreq_Value=32768
769773
RCC.EPOD_VALUE=25000000
770774
RCC.ETHFreq_Value=175000000
771775
RCC.FCLKCortexFreq_Value=175000000
772-
RCC.FDCANFreq_Value=25000000
776+
RCC.FDCANClockSelection=RCC_FDCANCLKSOURCE_PLL2Q
777+
RCC.FDCANFreq_Value=64000000
773778
RCC.FamilyName=M
774779
RCC.HCLKFreq_Value=175000000
775780
RCC.HSE_VALUE=25000000
@@ -780,7 +785,7 @@ RCC.I2C2Freq_Value=175000000
780785
RCC.I2C3Freq_Value=175000000
781786
RCC.I2C4Freq_Value=175000000
782787
RCC.I3C1Freq_Value=175000000
783-
RCC.IPParameters=ADCFreq_Value,AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2CLKDivider,APB2Freq_Value,APB2TimFreq_Value,APB3Freq_Value,CECFreq_Value,CKPERFreq_Value,CRSFreq_Value,CSI_VALUE,CortexFreq_Value,DACFreq_Value,EPOD_VALUE,ETHFreq_Value,FCLKCortexFreq_Value,FDCANFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI48_VALUE,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,I2C4Freq_Value,I3C1Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM3Freq_Value,LPTIM4Freq_Value,LPTIM5Freq_Value,LPTIM6Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSIRC_VALUE,MCO1PinFreq_Value,MCO2PinFreq_Value,OCTOSPIMFreq_Value,PLL2FRACN,PLL2M,PLL2N,PLL2P,PLL2PoutputFreq_Value,PLL2Q,PLL2QoutputFreq_Value,PLL2RoutputFreq_Value,PLL2Source,PLL3PoutputFreq_Value,PLL3QoutputFreq_Value,PLL3RoutputFreq_Value,PLLFRACN,PLLM,PLLN,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLSourceVirtual,PWRFreq_Value,RNGFreq_Value,SAI1Freq_Value,SAI2Freq_Value,SDMMC1Freq_Value,SDMMC2Freq_Value,SPI1Freq_Value,SPI2CLockSelection,SPI2Freq_Value,SPI3Freq_Value,SPI4Freq_Value,SPI5Freq_Value,SPI6Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,UART12Freq_Value,UART4Freq_Value,UART5Freq_Value,UART7Freq_Value,UART8Freq_Value,UART9Freq_Value,UCPD1outputFreq_Value,USART10Freq_Value,USART11Freq_Value,USART1Freq_Value,USART2Freq_Value,USART3Freq_Value,USART6Freq_Value,USBFreq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOPLL2OutputFreq_Value,VCOPLL3OutputFreq_Value
788+
RCC.IPParameters=ADCFreq_Value,AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2CLKDivider,APB2Freq_Value,APB2TimFreq_Value,APB3Freq_Value,CECFreq_Value,CKPERFreq_Value,CRSFreq_Value,CSI_VALUE,CortexFreq_Value,DACFreq_Value,EPOD_VALUE,ETHFreq_Value,FCLKCortexFreq_Value,FDCANClockSelection,FDCANFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI48_VALUE,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,I2C4Freq_Value,I3C1Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM3Freq_Value,LPTIM4Freq_Value,LPTIM5Freq_Value,LPTIM6Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSIRC_VALUE,MCO1PinFreq_Value,MCO2PinFreq_Value,OCTOSPIMFreq_Value,PLL2FRACN,PLL2M,PLL2N,PLL2P,PLL2PoutputFreq_Value,PLL2Q,PLL2QoutputFreq_Value,PLL2RoutputFreq_Value,PLL2Source,PLL3PoutputFreq_Value,PLL3QoutputFreq_Value,PLL3RoutputFreq_Value,PLLFRACN,PLLM,PLLN,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLSourceVirtual,PWRFreq_Value,RNGFreq_Value,SAI1Freq_Value,SAI2Freq_Value,SDMMC1Freq_Value,SDMMC2Freq_Value,SPI1Freq_Value,SPI2CLockSelection,SPI2Freq_Value,SPI3Freq_Value,SPI4Freq_Value,SPI5Freq_Value,SPI6Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,UART12Freq_Value,UART4Freq_Value,UART5Freq_Value,UART7Freq_Value,UART8Freq_Value,UART9Freq_Value,UCPD1outputFreq_Value,USART10Freq_Value,USART11Freq_Value,USART1Freq_Value,USART2Freq_Value,USART3Freq_Value,USART6Freq_Value,USBFreq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOPLL2OutputFreq_Value,VCOPLL3OutputFreq_Value
784789
RCC.LPTIM1Freq_Value=175000000
785790
RCC.LPTIM2Freq_Value=175000000
786791
RCC.LPTIM3Freq_Value=175000000

Core/Inc/u_shutdown.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ void update_bms_shutdown(bool new_state);
1414
void shutdown_process(void);
1515

1616
/**
17-
* @brief Indicates if shutdown is active or not.
18-
* @return The current shutdown state. `false` means that shutdown is NOT active, indicating normal operation. `true` means that shutdown IS active, which is bad.
17+
* @brief Indicates if shutdown is closed or not.
18+
* @return `true` if shutdown is closed, or `false` if otherwise. Shutdown has to be closed for us to drive.
1919
*/
20-
bool is_shutdown_active(void);
20+
bool is_shutdown_closed(void);

Core/Inc/u_statemachine.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -134,10 +134,6 @@ int fault();
134134
*/
135135
void send_carstate_msg(void);
136136

137-
/* BMS-Reported Shutdown! */
138-
void update_shutdown(bool new_shutdown);
139-
bool is_shutdown_active(void);
140-
141137
/* Process the state machine */
142138
void statemachine_process(state_req_t new_state_req);
143139
int init_statemachine(void);

Core/Src/main.c

Lines changed: 104 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
#include "u_queues.h"
3333
#include "u_debug.h"
3434
#include "u_lightning.h"
35+
#include "u_tx_debug.h"
3536
/* USER CODE END Includes */
3637

3738
/* Private typedef -----------------------------------------------------------*/
@@ -85,6 +86,7 @@ SPI_HandleTypeDef hspi2;
8586

8687
/* Private function prototypes -----------------------------------------------*/
8788
void SystemClock_Config(void);
89+
void PeriphCommonClock_Config(void);
8890
static void MX_GPDMA1_Init(void);
8991
static void MX_GPIO_Init(void);
9092
static void MX_ICACHE_Init(void);
@@ -158,7 +160,36 @@ void HAL_FDCAN_ErrorStatusCallback(FDCAN_HandleTypeDef *hfdcan, uint32_t ErrorSt
158160

159161
if (protocol_status.BusOff != 0) // If Bus-Off error occurred
160162
{
163+
PRINTLN_ERROR("CAN ENCOUNTERED BUS OFF STATE");
161164
CLEAR_BIT(hfdcan->Instance->CCCR, FDCAN_CCCR_INIT); // Clear INIT bit to recover from Bus-Off
165+
/* get the FDCAN hal errors. */
166+
uint8_t status = HAL_FDCAN_GetError(can1.hcan);
167+
printf("can - HAL_FDCAN_GetError() status: %d\n", status);
168+
169+
FDCAN_ProtocolStatusTypeDef statt = { 0 };
170+
status = HAL_FDCAN_GetProtocolStatus(can1.hcan, &statt);
171+
printf("can - HAL_FDCAN_GetProtocolStatus() status: %d\n", status);
172+
173+
/* Big statt */
174+
printf("can - HAL_FDCAN_GetProtocolStatus() - LastErrorCode=%ld\n", statt.LastErrorCode);
175+
printf("can - HAL_FDCAN_GetProtocolStatus() - DataLastErrorCode=%ld\n", statt.DataLastErrorCode);
176+
printf("can - HAL_FDCAN_GetProtocolStatus() - Activity=%ld\n", statt.Activity);
177+
printf("can - HAL_FDCAN_GetProtocolStatus() - ErrorPassive=%ld\n", statt.ErrorPassive);
178+
printf("can - HAL_FDCAN_GetProtocolStatus() - Warning=%ld\n", statt.Warning);
179+
printf("can - HAL_FDCAN_GetProtocolStatus() - BusOff=%ld\n", statt.BusOff);
180+
printf("can - HAL_FDCAN_GetProtocolStatus() - RxESIflag=%ld\n", statt.RxESIflag);
181+
printf("can - HAL_FDCAN_GetProtocolStatus() - RxBRSflag=%ld\n", statt.RxBRSflag);
182+
printf("can - HAL_FDCAN_GetProtocolStatus() - RxFDFflag=%ld\n", statt.RxFDFflag);
183+
printf("can - HAL_FDCAN_GetProtocolStatus() - ProtocolException=%ld\n", statt.ProtocolException);
184+
printf("can - HAL_FDCAN_GetProtocolStatus() - TDCvalue=%ld\n", statt.TDCvalue);
185+
186+
FDCAN_ErrorCountersTypeDef statt2 = { 0 };
187+
status = HAL_FDCAN_GetErrorCounters(can1.hcan, &statt2);
188+
printf("can - HAL_FDCAN_GetErrorCounters() status: %d\n", status);
189+
printf("can - HAL_FDCAN_GetErrorCounters() - TxErrorCnt: %ld\n", statt2.TxErrorCnt);
190+
printf("can - HAL_FDCAN_GetErrorCounters() - RxErrorCnt: %ld\n", statt2.RxErrorCnt);
191+
printf("can - HAL_FDCAN_GetErrorCounters() - RxErrorPassive: %ld\n", statt2.RxErrorPassive);
192+
printf("can - HAL_FDCAN_GetErrorCounters() - ErrorLogging: %ld\n", statt2.ErrorLogging);
162193
}
163194
}
164195

@@ -187,6 +218,9 @@ int main(void)
187218
/* Configure the system clock */
188219
SystemClock_Config();
189220

221+
/* Configure the peripherals common clocks */
222+
PeriphCommonClock_Config();
223+
190224
/* USER CODE BEGIN SysInit */
191225
//HAL_Delay(10000);
192226
/* USER CODE END SysInit */
@@ -285,6 +319,36 @@ void SystemClock_Config(void)
285319
__HAL_FLASH_SET_PROGRAM_DELAY(FLASH_PROGRAMMING_DELAY_2);
286320
}
287321

322+
/**
323+
* @brief Peripherals Common Clock Configuration
324+
* @retval None
325+
*/
326+
void PeriphCommonClock_Config(void)
327+
{
328+
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
329+
330+
/** Initializes the peripherals clock
331+
*/
332+
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_ADCDAC|RCC_PERIPHCLK_FDCAN
333+
|RCC_PERIPHCLK_SPI2;
334+
PeriphClkInitStruct.PLL2.PLL2Source = RCC_PLL2_SOURCE_HSE;
335+
PeriphClkInitStruct.PLL2.PLL2M = 5;
336+
PeriphClkInitStruct.PLL2.PLL2N = 64;
337+
PeriphClkInitStruct.PLL2.PLL2P = 5;
338+
PeriphClkInitStruct.PLL2.PLL2Q = 5;
339+
PeriphClkInitStruct.PLL2.PLL2R = 2;
340+
PeriphClkInitStruct.PLL2.PLL2RGE = RCC_PLL2_VCIRANGE_2;
341+
PeriphClkInitStruct.PLL2.PLL2VCOSEL = RCC_PLL2_VCORANGE_WIDE;
342+
PeriphClkInitStruct.PLL2.PLL2FRACN = 0;
343+
PeriphClkInitStruct.PLL2.PLL2ClockOut = RCC_PLL2_DIVP|RCC_PLL2_DIVQ;
344+
PeriphClkInitStruct.FdcanClockSelection = RCC_FDCANCLKSOURCE_PLL2Q;
345+
PeriphClkInitStruct.Spi2ClockSelection = RCC_SPI2CLKSOURCE_PLL2P;
346+
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
347+
{
348+
Error_Handler();
349+
}
350+
}
351+
288352
/**
289353
* @brief ADC1 Initialization Function
290354
* @param None
@@ -596,10 +660,10 @@ static void MX_FDCAN2_Init(void)
596660
hfdcan2.Init.AutoRetransmission = DISABLE;
597661
hfdcan2.Init.TransmitPause = DISABLE;
598662
hfdcan2.Init.ProtocolException = DISABLE;
599-
hfdcan2.Init.NominalPrescaler = 5;
663+
hfdcan2.Init.NominalPrescaler = 8;
600664
hfdcan2.Init.NominalSyncJumpWidth = 1;
601-
hfdcan2.Init.NominalTimeSeg1 = 1;
602-
hfdcan2.Init.NominalTimeSeg2 = 8;
665+
hfdcan2.Init.NominalTimeSeg1 = 11;
666+
hfdcan2.Init.NominalTimeSeg2 = 4;
603667
hfdcan2.Init.DataPrescaler = 1;
604668
hfdcan2.Init.DataSyncJumpWidth = 1;
605669
hfdcan2.Init.DataTimeSeg1 = 1;
@@ -928,7 +992,10 @@ static void MX_GPIO_Init(void)
928992
HAL_GPIO_WritePin(GPIOE, RED_LED_Pin|GREEN_LED_Pin|PHY_RESET_Pin, GPIO_PIN_RESET);
929993

930994
/*Configure GPIO pin Output Level */
931-
HAL_GPIO_WritePin(GPIOF, EF_BATTBOX_EN_Pin|EF_MC_EN_Pin, GPIO_PIN_RESET);
995+
HAL_GPIO_WritePin(EF_BATTBOX_EN_GPIO_Port, EF_BATTBOX_EN_Pin, GPIO_PIN_SET);
996+
997+
/*Configure GPIO pin Output Level */
998+
HAL_GPIO_WritePin(EF_MC_EN_GPIO_Port, EF_MC_EN_Pin, GPIO_PIN_RESET);
932999

9331000
/*Configure GPIO pin Output Level */
9341001
HAL_GPIO_WritePin(GPIOD, EF_BREAK_EN_Pin|EF_FANBATT_EN_Pin|EF_PUMP1_EN_Pin|EF_PUMP2_EN_Pin
@@ -937,11 +1004,14 @@ static void MX_GPIO_Init(void)
9371004
/*Configure GPIO pin Output Level */
9381005
HAL_GPIO_WritePin(GPIOG, EF_RADFAN_EN_Pin|EF_SPARE_EN_Pin|WATCHDOG_Pin, GPIO_PIN_RESET);
9391006

1007+
/*Configure GPIO pin Output Level */
1008+
HAL_GPIO_WritePin(GPIOG, EF_SHUTDOWN_EN_Pin|FAULT_MCU_Pin, GPIO_PIN_SET);
1009+
9401010
/*Configure GPIO pin Output Level */
9411011
HAL_GPIO_WritePin(GPIOC, MUX_SEL1_Pin|MUX_SEL2_Pin|MUX_SEL3_Pin|MUX_SEL4_Pin, GPIO_PIN_RESET);
9421012

9431013
/*Configure GPIO pin Output Level */
944-
HAL_GPIO_WritePin(FAULT_MCU_GPIO_Port, FAULT_MCU_Pin, GPIO_PIN_SET);
1014+
HAL_GPIO_WritePin(EF_LV_EN_GPIO_Port, EF_LV_EN_Pin, GPIO_PIN_SET);
9451015

9461016
/*Configure GPIO pin Output Level */
9471017
HAL_GPIO_WritePin(IMU_CS_GPIO_Port, IMU_CS_Pin, GPIO_PIN_SET);
@@ -959,19 +1029,26 @@ static void MX_GPIO_Init(void)
9591029
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
9601030
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
9611031

962-
/*Configure GPIO pins : EF_BATTBOX_EN_Pin EF_MC_EN_Pin */
963-
GPIO_InitStruct.Pin = EF_BATTBOX_EN_Pin|EF_MC_EN_Pin;
1032+
/*Configure GPIO pin : EF_BATTBOX_EN_Pin */
1033+
GPIO_InitStruct.Pin = EF_BATTBOX_EN_Pin;
9641034
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
965-
GPIO_InitStruct.Pull = GPIO_NOPULL;
1035+
GPIO_InitStruct.Pull = GPIO_PULLUP;
9661036
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
967-
HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
1037+
HAL_GPIO_Init(EF_BATTBOX_EN_GPIO_Port, &GPIO_InitStruct);
9681038

9691039
/*Configure GPIO pins : EF_BATTBOX_ER_Pin EF_MC_ER_Pin */
9701040
GPIO_InitStruct.Pin = EF_BATTBOX_ER_Pin|EF_MC_ER_Pin;
9711041
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
9721042
GPIO_InitStruct.Pull = GPIO_PULLUP;
9731043
HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
9741044

1045+
/*Configure GPIO pin : EF_MC_EN_Pin */
1046+
GPIO_InitStruct.Pin = EF_MC_EN_Pin;
1047+
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
1048+
GPIO_InitStruct.Pull = GPIO_NOPULL;
1049+
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
1050+
HAL_GPIO_Init(EF_MC_EN_GPIO_Port, &GPIO_InitStruct);
1051+
9751052
/*Configure GPIO pins : BMS_GPIO_Pin BOTS_GPIO_Pin SPARE_GPIO_Pin BSPD_GPIO_Pin
9761053
HV_C_GPIO_Pin HVD_GPIO_Pin */
9771054
GPIO_InitStruct.Pin = BMS_GPIO_Pin|BOTS_GPIO_Pin|SPARE_GPIO_Pin|BSPD_GPIO_Pin
@@ -1008,9 +1085,9 @@ static void MX_GPIO_Init(void)
10081085
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
10091086

10101087
/*Configure GPIO pins : EF_BREAK_ER_Pin EF_FANBATT_ER_Pin EF_PUMP1_ER_Pin EF_PUMP2_ER_Pin
1011-
EF_DASH_ER_Pin EF_LV_EN_Pin EF_LV_ER_Pin */
1088+
EF_DASH_ER_Pin EF_LV_ER_Pin */
10121089
GPIO_InitStruct.Pin = EF_BREAK_ER_Pin|EF_FANBATT_ER_Pin|EF_PUMP1_ER_Pin|EF_PUMP2_ER_Pin
1013-
|EF_DASH_ER_Pin|EF_LV_EN_Pin|EF_LV_ER_Pin;
1090+
|EF_DASH_ER_Pin|EF_LV_ER_Pin;
10141091
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
10151092
GPIO_InitStruct.Pull = GPIO_PULLUP;
10161093
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
@@ -1028,12 +1105,19 @@ static void MX_GPIO_Init(void)
10281105
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
10291106
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
10301107

1031-
/*Configure GPIO pins : EF_RADFAN_ER_Pin EF_SHUTDOWN_EN_Pin EF_SHUTDOWN_ER_Pin EF_SPARE_ER_Pin */
1032-
GPIO_InitStruct.Pin = EF_RADFAN_ER_Pin|EF_SHUTDOWN_EN_Pin|EF_SHUTDOWN_ER_Pin|EF_SPARE_ER_Pin;
1108+
/*Configure GPIO pins : EF_RADFAN_ER_Pin EF_SHUTDOWN_ER_Pin EF_SPARE_ER_Pin */
1109+
GPIO_InitStruct.Pin = EF_RADFAN_ER_Pin|EF_SHUTDOWN_ER_Pin|EF_SPARE_ER_Pin;
10331110
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
10341111
GPIO_InitStruct.Pull = GPIO_PULLUP;
10351112
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
10361113

1114+
/*Configure GPIO pin : EF_SHUTDOWN_EN_Pin */
1115+
GPIO_InitStruct.Pin = EF_SHUTDOWN_EN_Pin;
1116+
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
1117+
GPIO_InitStruct.Pull = GPIO_PULLUP;
1118+
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
1119+
HAL_GPIO_Init(EF_SHUTDOWN_EN_GPIO_Port, &GPIO_InitStruct);
1120+
10371121
/*Configure GPIO pins : MUX_SEL1_Pin MUX_SEL2_Pin MUX_SEL3_Pin MUX_SEL4_Pin */
10381122
GPIO_InitStruct.Pin = MUX_SEL1_Pin|MUX_SEL2_Pin|MUX_SEL3_Pin|MUX_SEL4_Pin;
10391123
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
@@ -1047,6 +1131,13 @@ static void MX_GPIO_Init(void)
10471131
GPIO_InitStruct.Pull = GPIO_NOPULL;
10481132
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
10491133

1134+
/*Configure GPIO pin : EF_LV_EN_Pin */
1135+
GPIO_InitStruct.Pin = EF_LV_EN_Pin;
1136+
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
1137+
GPIO_InitStruct.Pull = GPIO_PULLUP;
1138+
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
1139+
HAL_GPIO_Init(EF_LV_EN_GPIO_Port, &GPIO_InitStruct);
1140+
10501141
/*Configure GPIO pin : IMU_CS_Pin */
10511142
GPIO_InitStruct.Pin = IMU_CS_Pin;
10521143
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;

Core/Src/stm32h5xx_hal_msp.c

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -592,22 +592,11 @@ void HAL_ETH_MspDeInit(ETH_HandleTypeDef* heth)
592592
void HAL_FDCAN_MspInit(FDCAN_HandleTypeDef* hfdcan)
593593
{
594594
GPIO_InitTypeDef GPIO_InitStruct = {0};
595-
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
596595
if(hfdcan->Instance==FDCAN2)
597596
{
598597
/* USER CODE BEGIN FDCAN2_MspInit 0 */
599598

600599
/* USER CODE END FDCAN2_MspInit 0 */
601-
602-
/** Initializes the peripherals clock
603-
*/
604-
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_FDCAN;
605-
PeriphClkInitStruct.FdcanClockSelection = RCC_FDCANCLKSOURCE_HSE;
606-
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
607-
{
608-
Error_Handler();
609-
}
610-
611600
/* Peripheral clock enable */
612601
__HAL_RCC_FDCAN_CLK_ENABLE();
613602

@@ -919,32 +908,11 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
919908
void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
920909
{
921910
GPIO_InitTypeDef GPIO_InitStruct = {0};
922-
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
923911
if(hspi->Instance==SPI2)
924912
{
925913
/* USER CODE BEGIN SPI2_MspInit 0 */
926914

927915
/* USER CODE END SPI2_MspInit 0 */
928-
929-
/** Initializes the peripherals clock
930-
*/
931-
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SPI2;
932-
PeriphClkInitStruct.PLL2.PLL2Source = RCC_PLL2_SOURCE_HSE;
933-
PeriphClkInitStruct.PLL2.PLL2M = 5;
934-
PeriphClkInitStruct.PLL2.PLL2N = 64;
935-
PeriphClkInitStruct.PLL2.PLL2P = 5;
936-
PeriphClkInitStruct.PLL2.PLL2Q = 5;
937-
PeriphClkInitStruct.PLL2.PLL2R = 2;
938-
PeriphClkInitStruct.PLL2.PLL2RGE = RCC_PLL2_VCIRANGE_2;
939-
PeriphClkInitStruct.PLL2.PLL2VCOSEL = RCC_PLL2_VCORANGE_WIDE;
940-
PeriphClkInitStruct.PLL2.PLL2FRACN = 0;
941-
PeriphClkInitStruct.PLL2.PLL2ClockOut = RCC_PLL2_DIVP;
942-
PeriphClkInitStruct.Spi2ClockSelection = RCC_SPI2CLKSOURCE_PLL2P;
943-
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
944-
{
945-
Error_Handler();
946-
}
947-
948916
/* Peripheral clock enable */
949917
__HAL_RCC_SPI2_CLK_ENABLE();
950918

0 commit comments

Comments
 (0)