Index: ctrl/firmware/Main/CubeMX/Core/Inc/main.h
===================================================================
--- ctrl/firmware/Main/CubeMX/Core/Inc/main.h	(revision 75)
+++ ctrl/firmware/Main/CubeMX/Core/Inc/main.h	(revision 76)
@@ -78,4 +78,10 @@
 #define RST_DISPLAY_Pin GPIO_PIN_15
 #define RST_DISPLAY_GPIO_Port GPIOE
+#define ETH_SPI_SCK_Pin GPIO_PIN_10
+#define ETH_SPI_SCK_GPIO_Port GPIOB
+#define ETH_SPI_MISO_Pin GPIO_PIN_14
+#define ETH_SPI_MISO_GPIO_Port GPIOB
+#define ETH_SPI_MOSI_Pin GPIO_PIN_15
+#define ETH_SPI_MOSI_GPIO_Port GPIOB
 #define GSM_PWR_Pin GPIO_PIN_10
 #define GSM_PWR_GPIO_Port GPIOD
@@ -88,4 +94,6 @@
 #define SD_DETECT_Pin GPIO_PIN_8
 #define SD_DETECT_GPIO_Port GPIOA
+#define ETH_SPI_PWR_Pin GPIO_PIN_3
+#define ETH_SPI_PWR_GPIO_Port GPIOD
 #define OUTPUT_ON_LED_Pin GPIO_PIN_7
 #define OUTPUT_ON_LED_GPIO_Port GPIOD
@@ -102,4 +110,10 @@
 #define BUZZER_Pin GPIO_PIN_15
 #define BUZZER_GPIO_Port GPIOG
+#define ETH_SPI_NSS_Pin GPIO_PIN_4
+#define ETH_SPI_NSS_GPIO_Port GPIOB
+#define ETH_SPI_INT_Pin GPIO_PIN_8
+#define ETH_SPI_INT_GPIO_Port GPIOB
+#define ETH_SPI_RST_Pin GPIO_PIN_9
+#define ETH_SPI_RST_GPIO_Port GPIOB
 
 /* USER CODE BEGIN Private defines */
Index: ctrl/firmware/Main/CubeMX/Core/Inc/spi.h
===================================================================
--- ctrl/firmware/Main/CubeMX/Core/Inc/spi.h	(revision 75)
+++ ctrl/firmware/Main/CubeMX/Core/Inc/spi.h	(revision 76)
@@ -33,4 +33,6 @@
 /* USER CODE END Includes */
 
+extern SPI_HandleTypeDef hspi2;
+
 extern SPI_HandleTypeDef hspi4;
 
@@ -39,4 +41,5 @@
 /* USER CODE END Private defines */
 
+void MX_SPI2_Init(void);
 void MX_SPI4_Init(void);
 
Index: ctrl/firmware/Main/CubeMX/Core/Src/gpio.c
===================================================================
--- ctrl/firmware/Main/CubeMX/Core/Src/gpio.c	(revision 75)
+++ ctrl/firmware/Main/CubeMX/Core/Src/gpio.c	(revision 76)
@@ -70,4 +70,10 @@
   HAL_GPIO_WritePin(GPIOD, GSM_PWR_Pin|OUTPUT_ON_LED_Pin, GPIO_PIN_RESET);
 
+  /*Configure GPIO pin Output Level */
+  HAL_GPIO_WritePin(ETH_SPI_PWR_GPIO_Port, ETH_SPI_PWR_Pin, GPIO_PIN_SET);
+
+  /*Configure GPIO pin Output Level */
+  HAL_GPIO_WritePin(ETH_SPI_RST_GPIO_Port, ETH_SPI_RST_Pin, GPIO_PIN_RESET);
+
   /*Configure GPIO pins : PE2 PE3 PE4 PE5
                            PE8 PE9 PE10 PE0
@@ -119,12 +125,10 @@
   HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
 
-  /*Configure GPIO pins : PB0 PB1 PB2 PB10
-                           PB11 PB12 PB13 PB14
-                           PB15 PB3 PB4 PB5
-                           PB6 PB7 PB8 PB9 */
-  GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_10
-                          |GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14
-                          |GPIO_PIN_15|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5
-                          |GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9;
+  /*Configure GPIO pins : PB0 PB1 PB2 PB11
+                           PB12 PB13 PB3 PB5
+                           PB6 PB7 */
+  GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_11
+                          |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_3|GPIO_PIN_5
+                          |GPIO_PIN_6|GPIO_PIN_7;
   GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
   GPIO_InitStruct.Pull = GPIO_NOPULL;
@@ -147,6 +151,6 @@
   HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
 
-  /*Configure GPIO pins : GSM_PWR_Pin OUTPUT_ON_LED_Pin */
-  GPIO_InitStruct.Pin = GSM_PWR_Pin|OUTPUT_ON_LED_Pin;
+  /*Configure GPIO pins : GSM_PWR_Pin ETH_SPI_PWR_Pin OUTPUT_ON_LED_Pin */
+  GPIO_InitStruct.Pin = GSM_PWR_Pin|ETH_SPI_PWR_Pin|OUTPUT_ON_LED_Pin;
   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
   GPIO_InitStruct.Pull = GPIO_NOPULL;
@@ -161,7 +165,7 @@
 
   /*Configure GPIO pins : PD14 PD15 PD0 PD1
-                           PD3 PD4 PD5 PD6 */
+                           PD4 PD5 PD6 */
   GPIO_InitStruct.Pin = GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1
-                          |GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6;
+                          |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6;
   GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
   GPIO_InitStruct.Pull = GPIO_NOPULL;
@@ -182,4 +186,17 @@
   HAL_GPIO_Init(SD_DETECT_GPIO_Port, &GPIO_InitStruct);
 
+  /*Configure GPIO pin : ETH_SPI_INT_Pin */
+  GPIO_InitStruct.Pin = ETH_SPI_INT_Pin;
+  GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
+  HAL_GPIO_Init(ETH_SPI_INT_GPIO_Port, &GPIO_InitStruct);
+
+  /*Configure GPIO pin : ETH_SPI_RST_Pin */
+  GPIO_InitStruct.Pin = ETH_SPI_RST_Pin;
+  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
+  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+  HAL_GPIO_Init(ETH_SPI_RST_GPIO_Port, &GPIO_InitStruct);
+
 }
 
Index: ctrl/firmware/Main/CubeMX/Core/Src/main.c
===================================================================
--- ctrl/firmware/Main/CubeMX/Core/Src/main.c	(revision 75)
+++ ctrl/firmware/Main/CubeMX/Core/Src/main.c	(revision 76)
@@ -35,4 +35,6 @@
 #include <stdio.h>
 
+#include "lwip.h"
+
 /* USER CODE END Includes */
 
@@ -63,8 +65,4 @@
 void MX_FREERTOS_Init(void);
 /* USER CODE BEGIN PFP */
-
-void SPI_WriteComm(uint8_t);
-void SPI_WriteData(uint8_t);
-
 
 /* USER CODE END PFP */
@@ -127,4 +125,5 @@
   MX_FATFS_Init();
   MX_TIM8_Init();
+  MX_SPI2_Init();
   /* USER CODE BEGIN 2 */
 
@@ -219,29 +218,4 @@
 /* USER CODE BEGIN 4 */
 
-void SPI_Transmit(uint8_t cmd_data_toSend, uint8_t isCmd)
-{
-	uint16_t data[1];
-
-	data[0] = (uint16_t)isCmd << 8U;
-	data[0] |= (uint16_t)cmd_data_toSend;
-
-
-	HAL_SPI_Transmit(&hspi4, (const uint8_t*)data, 1, 1000);
-}
-
-void SPI_WriteComm(uint8_t cmdToSend)
-{
-	SPI_Transmit(cmdToSend, 0);
-}
-
-//------------------------------------------------------------------------------
-
-void SPI_WriteData(uint8_t dataToSend)
-{
-	SPI_Transmit(dataToSend, 1);
-}
-
-//------------------------------------------------------------------------------
-
 /* USER CODE END 4 */
 
Index: ctrl/firmware/Main/CubeMX/Core/Src/spi.c
===================================================================
--- ctrl/firmware/Main/CubeMX/Core/Src/spi.c	(revision 75)
+++ ctrl/firmware/Main/CubeMX/Core/Src/spi.c	(revision 76)
@@ -25,7 +25,50 @@
 /* USER CODE END 0 */
 
+SPI_HandleTypeDef hspi2;
 SPI_HandleTypeDef hspi4;
 DMA_HandleTypeDef hdma_spi4_tx;
 
+/* SPI2 init function */
+void MX_SPI2_Init(void)
+{
+
+  /* USER CODE BEGIN SPI2_Init 0 */
+
+  /* USER CODE END SPI2_Init 0 */
+
+  /* USER CODE BEGIN SPI2_Init 1 */
+
+  /* USER CODE END SPI2_Init 1 */
+  hspi2.Instance = SPI2;
+  hspi2.Init.Mode = SPI_MODE_MASTER;
+  hspi2.Init.Direction = SPI_DIRECTION_2LINES;
+  hspi2.Init.DataSize = SPI_DATASIZE_8BIT;
+  hspi2.Init.CLKPolarity = SPI_POLARITY_LOW;
+  hspi2.Init.CLKPhase = SPI_PHASE_1EDGE;
+  hspi2.Init.NSS = SPI_NSS_HARD_OUTPUT;
+  hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;
+  hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB;
+  hspi2.Init.TIMode = SPI_TIMODE_DISABLE;
+  hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
+  hspi2.Init.CRCPolynomial = 0x0;
+  hspi2.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
+  hspi2.Init.NSSPolarity = SPI_NSS_POLARITY_LOW;
+  hspi2.Init.FifoThreshold = SPI_FIFO_THRESHOLD_01DATA;
+  hspi2.Init.TxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN;
+  hspi2.Init.RxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN;
+  hspi2.Init.MasterSSIdleness = SPI_MASTER_SS_IDLENESS_03CYCLE;
+  hspi2.Init.MasterInterDataIdleness = SPI_MASTER_INTERDATA_IDLENESS_06CYCLE;
+  hspi2.Init.MasterReceiverAutoSusp = SPI_MASTER_RX_AUTOSUSP_DISABLE;
+  hspi2.Init.MasterKeepIOState = SPI_MASTER_KEEP_IO_STATE_ENABLE;
+  hspi2.Init.IOSwap = SPI_IO_SWAP_DISABLE;
+  if (HAL_SPI_Init(&hspi2) != HAL_OK)
+  {
+    Error_Handler();
+  }
+  /* USER CODE BEGIN SPI2_Init 2 */
+
+  /* USER CODE END SPI2_Init 2 */
+
+}
 /* SPI4 init function */
 void MX_SPI4_Init(void)
@@ -76,5 +119,48 @@
   GPIO_InitTypeDef GPIO_InitStruct = {0};
   RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
-  if(spiHandle->Instance==SPI4)
+  if(spiHandle->Instance==SPI2)
+  {
+  /* USER CODE BEGIN SPI2_MspInit 0 */
+
+  /* USER CODE END SPI2_MspInit 0 */
+
+  /** Initializes the peripherals clock
+  */
+    PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SPI2;
+    PeriphClkInitStruct.Spi123ClockSelection = RCC_SPI123CLKSOURCE_PLL;
+    if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
+    {
+      Error_Handler();
+    }
+
+    /* SPI2 clock enable */
+    __HAL_RCC_SPI2_CLK_ENABLE();
+
+    __HAL_RCC_GPIOB_CLK_ENABLE();
+    /**SPI2 GPIO Configuration
+    PB10     ------> SPI2_SCK
+    PB14     ------> SPI2_MISO
+    PB15     ------> SPI2_MOSI
+    PB4(NJTRST)     ------> SPI2_NSS
+    */
+    GPIO_InitStruct.Pin = ETH_SPI_SCK_Pin|ETH_SPI_MISO_Pin|ETH_SPI_MOSI_Pin;
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+    GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
+    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
+
+    GPIO_InitStruct.Pin = ETH_SPI_NSS_Pin;
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+    GPIO_InitStruct.Alternate = GPIO_AF7_SPI2;
+    HAL_GPIO_Init(ETH_SPI_NSS_GPIO_Port, &GPIO_InitStruct);
+
+  /* USER CODE BEGIN SPI2_MspInit 1 */
+
+  /* USER CODE END SPI2_MspInit 1 */
+  }
+  else if(spiHandle->Instance==SPI4)
   {
   /* USER CODE BEGIN SPI4_MspInit 0 */
@@ -138,5 +224,25 @@
 {
 
-  if(spiHandle->Instance==SPI4)
+  if(spiHandle->Instance==SPI2)
+  {
+  /* USER CODE BEGIN SPI2_MspDeInit 0 */
+
+  /* USER CODE END SPI2_MspDeInit 0 */
+    /* Peripheral clock disable */
+    __HAL_RCC_SPI2_CLK_DISABLE();
+
+    /**SPI2 GPIO Configuration
+    PB10     ------> SPI2_SCK
+    PB14     ------> SPI2_MISO
+    PB15     ------> SPI2_MOSI
+    PB4(NJTRST)     ------> SPI2_NSS
+    */
+    HAL_GPIO_DeInit(GPIOB, ETH_SPI_SCK_Pin|ETH_SPI_MISO_Pin|ETH_SPI_MOSI_Pin|ETH_SPI_NSS_Pin);
+
+  /* USER CODE BEGIN SPI2_MspDeInit 1 */
+
+  /* USER CODE END SPI2_MspDeInit 1 */
+  }
+  else if(spiHandle->Instance==SPI4)
   {
   /* USER CODE BEGIN SPI4_MspDeInit 0 */
Index: ctrl/firmware/Main/CubeMX/charger.ioc
===================================================================
--- ctrl/firmware/Main/CubeMX/charger.ioc	(revision 75)
+++ ctrl/firmware/Main/CubeMX/charger.ioc	(revision 76)
@@ -166,9 +166,10 @@
 Mcu.IP0=CORTEX_M7
 Mcu.IP1=DEBUG
-Mcu.IP10=SPI4
-Mcu.IP11=SYS
-Mcu.IP12=TIM3
-Mcu.IP13=TIM8
-Mcu.IP14=USART3
+Mcu.IP10=SPI2
+Mcu.IP11=SPI4
+Mcu.IP12=SYS
+Mcu.IP13=TIM3
+Mcu.IP14=TIM8
+Mcu.IP15=USART3
 Mcu.IP2=DMA
 Mcu.IP3=FATFS
@@ -179,5 +180,5 @@
 Mcu.IP8=RTC
 Mcu.IP9=SDMMC1
-Mcu.IPNb=15
+Mcu.IPNb=16
 Mcu.Name=STM32H723ZETx
 Mcu.Package=LQFP144
@@ -188,46 +189,53 @@
 Mcu.Pin12=PE14
 Mcu.Pin13=PE15
-Mcu.Pin14=PD8
-Mcu.Pin15=PD9
-Mcu.Pin16=PD10
-Mcu.Pin17=PD11
-Mcu.Pin18=PD12
-Mcu.Pin19=PD13
+Mcu.Pin14=PB10
+Mcu.Pin15=PB14
+Mcu.Pin16=PB15
+Mcu.Pin17=PD8
+Mcu.Pin18=PD9
+Mcu.Pin19=PD10
 Mcu.Pin2=PC15-OSC32_OUT
-Mcu.Pin20=PC6
-Mcu.Pin21=PC7
-Mcu.Pin22=PC8
-Mcu.Pin23=PC9
-Mcu.Pin24=PA8
-Mcu.Pin25=PA13(JTMS/SWDIO)
-Mcu.Pin26=PA14(JTCK/SWCLK)
-Mcu.Pin27=PC10
-Mcu.Pin28=PC11
-Mcu.Pin29=PC12
+Mcu.Pin20=PD11
+Mcu.Pin21=PD12
+Mcu.Pin22=PD13
+Mcu.Pin23=PC6
+Mcu.Pin24=PC7
+Mcu.Pin25=PC8
+Mcu.Pin26=PC9
+Mcu.Pin27=PA8
+Mcu.Pin28=PA13(JTMS/SWDIO)
+Mcu.Pin29=PA14(JTCK/SWCLK)
 Mcu.Pin3=PH0-OSC_IN
-Mcu.Pin30=PD2
-Mcu.Pin31=PD7
-Mcu.Pin32=PG9
-Mcu.Pin33=PG10
-Mcu.Pin34=PG11
-Mcu.Pin35=PG12
-Mcu.Pin36=PG13
-Mcu.Pin37=PG15
-Mcu.Pin38=VP_FATFS_VS_SDIO
-Mcu.Pin39=VP_FREERTOS_VS_CMSIS_V2
+Mcu.Pin30=PC10
+Mcu.Pin31=PC11
+Mcu.Pin32=PC12
+Mcu.Pin33=PD2
+Mcu.Pin34=PD3
+Mcu.Pin35=PD7
+Mcu.Pin36=PG9
+Mcu.Pin37=PG10
+Mcu.Pin38=PG11
+Mcu.Pin39=PG12
 Mcu.Pin4=PH1-OSC_OUT
-Mcu.Pin40=VP_RTC_VS_RTC_Activate
-Mcu.Pin41=VP_RTC_VS_RTC_Calendar
-Mcu.Pin42=VP_SYS_VS_tim7
-Mcu.Pin43=VP_TIM3_VS_ClockSourceINT
-Mcu.Pin44=VP_TIM8_VS_ControllerModeReset
-Mcu.Pin45=VP_TIM8_VS_ClockSourceINT
-Mcu.Pin46=VP_MEMORYMAP_VS_MEMORYMAP
+Mcu.Pin40=PG13
+Mcu.Pin41=PG15
+Mcu.Pin42=PB4(NJTRST)
+Mcu.Pin43=PB8
+Mcu.Pin44=PB9
+Mcu.Pin45=VP_FATFS_VS_SDIO
+Mcu.Pin46=VP_FREERTOS_VS_CMSIS_V2
+Mcu.Pin47=VP_RTC_VS_RTC_Activate
+Mcu.Pin48=VP_RTC_VS_RTC_Calendar
+Mcu.Pin49=VP_SYS_VS_tim7
 Mcu.Pin5=PF15
+Mcu.Pin50=VP_TIM3_VS_ClockSourceINT
+Mcu.Pin51=VP_TIM8_VS_ControllerModeReset
+Mcu.Pin52=VP_TIM8_VS_ClockSourceINT
+Mcu.Pin53=VP_MEMORYMAP_VS_MEMORYMAP
 Mcu.Pin6=PG0
 Mcu.Pin7=PG1
 Mcu.Pin8=PE7
 Mcu.Pin9=PE11
-Mcu.PinsNb=47
+Mcu.PinsNb=54
 Mcu.ThirdParty0=STMicroelectronics.X-CUBE-AZRTOS-H7.3.3.0
 Mcu.ThirdPartyNb=1
@@ -270,4 +278,31 @@
 PA8.Locked=true
 PA8.Signal=GPIO_Input
+PB10.GPIOParameters=GPIO_Label
+PB10.GPIO_Label=ETH_SPI_SCK
+PB10.Mode=Full_Duplex_Master
+PB10.Signal=SPI2_SCK
+PB14.GPIOParameters=GPIO_Label
+PB14.GPIO_Label=ETH_SPI_MISO
+PB14.Locked=true
+PB14.Mode=Full_Duplex_Master
+PB14.Signal=SPI2_MISO
+PB15.GPIOParameters=GPIO_Label
+PB15.GPIO_Label=ETH_SPI_MOSI
+PB15.Locked=true
+PB15.Mode=Full_Duplex_Master
+PB15.Signal=SPI2_MOSI
+PB4(NJTRST).GPIOParameters=GPIO_Label
+PB4(NJTRST).GPIO_Label=ETH_SPI_NSS
+PB4(NJTRST).Locked=true
+PB4(NJTRST).Mode=NSS_Signal_Hard_Output
+PB4(NJTRST).Signal=SPI2_NSS
+PB8.GPIOParameters=GPIO_Label
+PB8.GPIO_Label=ETH_SPI_INT
+PB8.Locked=true
+PB8.Signal=GPXTI8
+PB9.GPIOParameters=GPIO_Label
+PB9.GPIO_Label=ETH_SPI_RST
+PB9.Locked=true
+PB9.Signal=GPIO_Output
 PC10.Mode=SD_4_bits_Wide_bus
 PC10.Signal=SDMMC1_D2
@@ -308,4 +343,9 @@
 PD2.Mode=SD_4_bits_Wide_bus
 PD2.Signal=SDMMC1_CMD
+PD3.GPIOParameters=PinState,GPIO_Label
+PD3.GPIO_Label=ETH_SPI_PWR
+PD3.Locked=true
+PD3.PinState=GPIO_PIN_SET
+PD3.Signal=GPIO_Output
 PD7.GPIOParameters=GPIO_Label
 PD7.GPIO_Label=OUTPUT_ON_LED
@@ -421,5 +461,5 @@
 ProjectManager.UAScriptBeforePath=
 ProjectManager.UnderRoot=true
-ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-MX_MDMA_Init-MDMA-false-HAL-true,3-MX_RTC_Init-RTC-false-HAL-true,4-MX_SPI4_Init-SPI4-false-HAL-true,5-MX_SDMMC1_SD_Init-SDMMC1-false-HAL-true,6-MX_USART3_UART_Init-USART3-false-HAL-true,7-MX_TIM3_Init-TIM3-false-HAL-true,8-SystemClock_Config-RCC-false-HAL-false,9-MX_FATFS_Init-FATFS-false-HAL-false,10-MX_TIM8_Init-TIM8-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
+ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-MX_RTC_Init-RTC-false-HAL-true,4-MX_SPI4_Init-SPI4-false-HAL-true,5-MX_SDMMC1_SD_Init-SDMMC1-false-HAL-true,6-MX_USART3_UART_Init-USART3-false-HAL-true,7-MX_TIM3_Init-TIM3-false-HAL-true,8-SystemClock_Config-RCC-false-HAL-false,9-MX_FATFS_Init-FATFS-false-HAL-false,10-MX_TIM8_Init-TIM8-false-HAL-true,11-MX_SPI2_Init-SPI2-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
 RCC.ADCFreq_Value=166666666.66666666
 RCC.AHB12Freq_Value=100000000
@@ -507,4 +547,6 @@
 SDMMC1.HardwareFlowControl=SDMMC_HARDWARE_FLOW_CONTROL_ENABLE
 SDMMC1.IPParameters=ClockPowerSave,HardwareFlowControl,ClockDiv
+SH.GPXTI8.0=GPIO_EXTI8
+SH.GPXTI8.ConfNb=1
 SH.S_TIM3_CH2.0=TIM3_CH2,PWM Generation2 CH2
 SH.S_TIM3_CH2.ConfNb=1
@@ -512,4 +554,14 @@
 SH.S_TIM8_CH1.1=TIM8_CH1,TriggerSource_TI1FP1
 SH.S_TIM8_CH1.ConfNb=2
+SPI2.CalculateBaudRate=25.0 MBits/s
+SPI2.DataSize=SPI_DATASIZE_8BIT
+SPI2.Direction=SPI_DIRECTION_2LINES
+SPI2.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,VirtualNSS,DataSize,MasterInterDataIdleness,MasterSSIdleness,MasterKeepIOState
+SPI2.MasterInterDataIdleness=SPI_MASTER_INTERDATA_IDLENESS_06CYCLE
+SPI2.MasterKeepIOState=SPI_MASTER_KEEP_IO_STATE_ENABLE
+SPI2.MasterSSIdleness=SPI_MASTER_SS_IDLENESS_03CYCLE
+SPI2.Mode=SPI_MODE_MASTER
+SPI2.VirtualNSS=VM_NSSHARD
+SPI2.VirtualType=VM_MASTER
 SPI4.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_4
 SPI4.CalculateBaudRate=6.25 MBits/s
