diff --git a/Software/.cproject b/Software/.cproject
index 99a8ba3..f3258c6 100644
--- a/Software/.cproject
+++ b/Software/.cproject
@@ -24,7 +24,7 @@
-
+
@@ -120,7 +120,7 @@
-
+
diff --git a/Software/Core/Src/main.c b/Software/Core/Src/main.c
index f574860..47d5ba0 100644
--- a/Software/Core/Src/main.c
+++ b/Software/Core/Src/main.c
@@ -179,7 +179,7 @@ void SystemClock_Config(void)
/** Configure the main internal regulator output voltage
*/
- __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE2);
+ __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
while(!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) {}
@@ -192,7 +192,7 @@ void SystemClock_Config(void)
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLM = 1;
- RCC_OscInitStruct.PLL.PLLN = 20;
+ RCC_OscInitStruct.PLL.PLLN = 25;
RCC_OscInitStruct.PLL.PLLP = 2;
RCC_OscInitStruct.PLL.PLLQ = 4;
RCC_OscInitStruct.PLL.PLLR = 2;
@@ -217,7 +217,7 @@ void SystemClock_Config(void)
RCC_ClkInitStruct.APB2CLKDivider = RCC_APB2_DIV2;
RCC_ClkInitStruct.APB4CLKDivider = RCC_APB4_DIV2;
- if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4) != HAL_OK)
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK)
{
Error_Handler();
}
@@ -323,7 +323,7 @@ static void MX_I2C4_Init(void)
/* USER CODE END I2C4_Init 1 */
hi2c4.Instance = I2C4;
- hi2c4.Init.Timing = 0x10909CEC;
+ hi2c4.Init.Timing = 0x10C0ECFF;
hi2c4.Init.OwnAddress1 = 0;
hi2c4.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
hi2c4.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
@@ -579,11 +579,11 @@ static void MX_FMC_Init(void)
hsdram1.Init.ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_1;
/* SdramTiming */
SdramTiming.LoadToActiveDelay = 2;
- SdramTiming.ExitSelfRefreshDelay = 5;
- SdramTiming.SelfRefreshTime = 3;
- SdramTiming.RowCycleDelay = 4;
- SdramTiming.WriteRecoveryTime = 3;
- SdramTiming.RPDelay = 3;
+ SdramTiming.ExitSelfRefreshDelay = 7;
+ SdramTiming.SelfRefreshTime = 4;
+ SdramTiming.RowCycleDelay = 6;
+ SdramTiming.WriteRecoveryTime = 2;
+ SdramTiming.RPDelay = 2;
SdramTiming.RCDDelay = 2;
if (HAL_SDRAM_Init(&hsdram1, &SdramTiming) != HAL_OK)
@@ -617,7 +617,7 @@ static void MX_FMC_Init(void)
command.ModeRegisterDefinition = 0;
status = HAL_SDRAM_SendCommand(&hsdram1, &command, 1000);
- status = HAL_SDRAM_ProgramRefreshRate(&hsdram1, 0x0595);
+ status = HAL_SDRAM_ProgramRefreshRate(&hsdram1, 840);
/* USER CODE END FMC_Init 2 */
}
diff --git a/Software/Core/Src/stm32h7xx_hal_msp.c b/Software/Core/Src/stm32h7xx_hal_msp.c
index 4864650..efd0426 100644
--- a/Software/Core/Src/stm32h7xx_hal_msp.c
+++ b/Software/Core/Src/stm32h7xx_hal_msp.c
@@ -739,7 +739,7 @@ static void HAL_FMC_MspInit(void){
*/
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_FMC;
PeriphClkInitStruct.PLL2.PLL2M = 1;
- PeriphClkInitStruct.PLL2.PLL2N = 20;
+ PeriphClkInitStruct.PLL2.PLL2N = 25;
PeriphClkInitStruct.PLL2.PLL2P = 2;
PeriphClkInitStruct.PLL2.PLL2Q = 4;
PeriphClkInitStruct.PLL2.PLL2R = 2;
diff --git a/Software/FT23_Charger.ioc b/Software/FT23_Charger.ioc
index 3508d28..6721634 100644
--- a/Software/FT23_Charger.ioc
+++ b/Software/FT23_Charger.ioc
@@ -2,9 +2,9 @@
CAD.formats=
CAD.pinconfig=
CAD.provider=
-FDCAN1.CalculateBaudRateNominal=500000
-FDCAN1.CalculateTimeBitNominal=2000
-FDCAN1.CalculateTimeQuantumNominal=25.0
+FDCAN1.CalculateBaudRateNominal=625000
+FDCAN1.CalculateTimeBitNominal=1600
+FDCAN1.CalculateTimeQuantumNominal=20.0
FDCAN1.IPParameters=CalculateTimeQuantumNominal,CalculateTimeBitNominal,CalculateBaudRateNominal,StdFiltersNbr,RxFifo0ElmtsNbr,TxFifoQueueElmtsNbr,NominalPrescaler,NominalTimeSeg1,NominalTimeSeg2
FDCAN1.NominalPrescaler=2
FDCAN1.NominalTimeSeg1=63
@@ -14,26 +14,26 @@ FDCAN1.StdFiltersNbr=32
FDCAN1.TxFifoQueueElmtsNbr=1
FMC.CASLatency1=FMC_SDRAM_CAS_LATENCY_3
FMC.ColumnBitsNumber1=FMC_SDRAM_COLUMN_BITS_NUM_9
-FMC.ExitSelfRefreshDelay1=5
+FMC.ExitSelfRefreshDelay1=7
FMC.IPParameters=ReadBurst1,WriteProtection1,LoadToActiveDelay1,ExitSelfRefreshDelay1,CASLatency1,SelfRefreshTime1,RowCycleDelay1,RowCycleDelay2,RCDDelay1,RPDelay1,RPDelay2,WriteRecoveryTime1,ColumnBitsNumber1,ReadPipeDelay1,ReadPipeDelay2,SDClockPeriod1,SDClockPeriod2
FMC.LoadToActiveDelay1=2
FMC.RCDDelay1=2
-FMC.RPDelay1=3
-FMC.RPDelay2=3
+FMC.RPDelay1=2
+FMC.RPDelay2=2
FMC.ReadBurst1=FMC_SDRAM_RBURST_DISABLE
FMC.ReadPipeDelay1=FMC_SDRAM_RPIPE_DELAY_1
FMC.ReadPipeDelay2=FMC_SDRAM_RPIPE_DELAY_1
-FMC.RowCycleDelay1=4
-FMC.RowCycleDelay2=4
+FMC.RowCycleDelay1=6
+FMC.RowCycleDelay2=6
FMC.SDClockPeriod1=FMC_SDRAM_CLOCK_PERIOD_2
FMC.SDClockPeriod2=FMC_SDRAM_CLOCK_PERIOD_2
-FMC.SelfRefreshTime1=3
+FMC.SelfRefreshTime1=4
FMC.WriteProtection1=FMC_SDRAM_WRITE_PROTECTION_DISABLE
-FMC.WriteRecoveryTime1=3
+FMC.WriteRecoveryTime1=2
File.Version=6
GPIO.groupedBy=Group By Peripherals
I2C4.IPParameters=Timing
-I2C4.Timing=0x10909CEC
+I2C4.Timing=0x10C0ECFF
KeepUserPlacement=false
LTDC.ActiveH=600
LTDC.ActiveW=1024
@@ -407,18 +407,18 @@ ProjectManager.ToolChainLocation=
ProjectManager.UAScriptAfterPath=
ProjectManager.UAScriptBeforePath=
ProjectManager.UnderRoot=true
-ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_FDCAN1_Init-FDCAN1-false-HAL-true,4-MX_FMC_Init-FMC-false-HAL-true,5-MX_I2C4_Init-I2C4-false-HAL-true,6-MX_USART10_UART_Init-USART10-false-HAL-true,7-MX_USB_OTG_HS_PCD_Init-USB_OTG_HS-false-HAL-true,8-MX_UART5_Init-UART5-false-HAL-true,9-MX_LTDC_Init-LTDC-false-HAL-true,10-MX_CRC_Init-CRC-false-HAL-true,12-MX_TouchGFX_Init-STMicroelectronics.X-CUBE-TOUCHGFX.4.21.0-false-HAL-false,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true,13-MX_TouchGFX_Process-STMicroelectronics.X-CUBE-TOUCHGFX.4.21.0-false-HAL-false
+ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_FDCAN1_Init-FDCAN1-false-HAL-true,4-MX_FMC_Init-FMC-false-HAL-true,5-MX_I2C4_Init-I2C4-false-HAL-true,6-MX_USART10_UART_Init-USART10-false-HAL-true,7-MX_USB_OTG_HS_PCD_Init-USB_OTG_HS-false-HAL-true,8-MX_UART5_Init-UART5-false-HAL-true,9-MX_LTDC_Init-LTDC-false-HAL-true,10-MX_CRC_Init-CRC-false-HAL-true,11-MX_TouchGFX_Init-STMicroelectronics.X-CUBE-TOUCHGFX.4.21.0-false-HAL-false,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true,12-MX_TouchGFX_Process-STMicroelectronics.X-CUBE-TOUCHGFX.4.21.0-false-HAL-false
RCC.ADCCLockSelection=RCC_ADCCLKSOURCE_PLL2
-RCC.ADCFreq_Value=160000000
-RCC.AHB12Freq_Value=160000000
-RCC.AHB4Freq_Value=160000000
-RCC.APB1Freq_Value=80000000
-RCC.APB2Freq_Value=80000000
-RCC.APB3Freq_Value=80000000
-RCC.APB4Freq_Value=80000000
-RCC.AXIClockFreq_Value=160000000
+RCC.ADCFreq_Value=200000000
+RCC.AHB12Freq_Value=200000000
+RCC.AHB4Freq_Value=200000000
+RCC.APB1Freq_Value=100000000
+RCC.APB2Freq_Value=100000000
+RCC.APB3Freq_Value=100000000
+RCC.APB4Freq_Value=100000000
+RCC.AXIClockFreq_Value=200000000
RCC.CDCPRE=RCC_SYSCLK_DIV1
-RCC.CDCPREFreq_Value=160000000
+RCC.CDCPREFreq_Value=200000000
RCC.CDPPRE=RCC_APB3_DIV2
RCC.CDPPRE1=RCC_APB1_DIV2
RCC.CDPPRE2=RCC_APB2_DIV2
@@ -427,75 +427,75 @@ RCC.CECFreq_Value=32000
RCC.CKPERFreq_Value=64000000
RCC.CKPERSourceSelection=RCC_CLKPSOURCE_HSI
RCC.CSI_VALUE=4000000
-RCC.CortexFreq_Value=160000000
+RCC.CortexFreq_Value=200000000
RCC.Cortex_Div=SYSTICK_CLKSOURCE_HCLK
RCC.Cortex_DivARG=SystemCoreClock/1000
-RCC.CpuClockFreq_Value=160000000
+RCC.CpuClockFreq_Value=200000000
RCC.DAC1Freq_Value=32000
RCC.DAC2Freq_Value=32000
-RCC.DFSDM2ACLkFreq_Value=80000000
-RCC.DFSDM2Freq_Value=80000000
-RCC.DFSDMACLkFreq_Value=80000000
+RCC.DFSDM2ACLkFreq_Value=100000000
+RCC.DFSDM2Freq_Value=100000000
+RCC.DFSDMACLkFreq_Value=100000000
RCC.DFSDMCLockSelection=RCC_DFSDM1CLKSOURCE_D2PCLK1
-RCC.DFSDMFreq_Value=80000000
+RCC.DFSDMFreq_Value=100000000
RCC.DIVM1=1
RCC.DIVM2=1
RCC.DIVM3=1
-RCC.DIVN1=20
-RCC.DIVN2=20
+RCC.DIVN1=25
+RCC.DIVN2=25
RCC.DIVN3=12
RCC.DIVP1=2
-RCC.DIVP1Freq_Value=160000000
+RCC.DIVP1Freq_Value=200000000
RCC.DIVP2=2
-RCC.DIVP2Freq_Value=160000000
+RCC.DIVP2Freq_Value=200000000
RCC.DIVP3=2
RCC.DIVP3Freq_Value=96000000
RCC.DIVQ1=4
-RCC.DIVQ1Freq_Value=80000000
+RCC.DIVQ1Freq_Value=100000000
RCC.DIVQ2=4
-RCC.DIVQ2Freq_Value=80000000
+RCC.DIVQ2Freq_Value=100000000
RCC.DIVQ3=3
RCC.DIVQ3Freq_Value=64000000
RCC.DIVR1=2
-RCC.DIVR1Freq_Value=160000000
-RCC.DIVR2Freq_Value=160000000
+RCC.DIVR1Freq_Value=200000000
+RCC.DIVR2Freq_Value=200000000
RCC.DIVR3=3
RCC.DIVR3Freq_Value=64000000
RCC.EXTERNAL_CLOCK_VALUE=12288000
-RCC.FDCANFreq_Value=80000000
+RCC.FDCANFreq_Value=100000000
RCC.FMCCLockSelection=RCC_FMCCLKSOURCE_PLL2
-RCC.FMCFreq_Value=160000000
+RCC.FMCFreq_Value=200000000
RCC.FamilyName=M
-RCC.HCLK3ClockFreq_Value=160000000
-RCC.HCLKFreq_Value=160000000
+RCC.HCLK3ClockFreq_Value=200000000
+RCC.HCLKFreq_Value=200000000
RCC.HPRE=RCC_HCLK_DIV1
RCC.HSE_VALUE=16000000
RCC.HSI48_VALUE=48000000
RCC.HSIDiv=RCC_PLLSAIDIVR_1
RCC.HSI_VALUE=64000000
RCC.I2C123CLockSelection=RCC_I2C123CLKSOURCE_D2PCLK1
-RCC.I2C123Freq_Value=80000000
+RCC.I2C123Freq_Value=100000000
RCC.I2C4CLockSelection=RCC_I2C4CLKSOURCE_D3PCLK1
-RCC.I2C4Freq_Value=80000000
+RCC.I2C4Freq_Value=100000000
RCC.IPParameters=ADCCLockSelection,ADCFreq_Value,AHB12Freq_Value,AHB4Freq_Value,APB1Freq_Value,APB2Freq_Value,APB3Freq_Value,APB4Freq_Value,AXIClockFreq_Value,CDCPRE,CDCPREFreq_Value,CDPPRE,CDPPRE1,CDPPRE2,CECCLockSelection,CECFreq_Value,CKPERFreq_Value,CKPERSourceSelection,CSI_VALUE,CortexFreq_Value,Cortex_Div,Cortex_DivARG,CpuClockFreq_Value,DAC1Freq_Value,DAC2Freq_Value,DFSDM2ACLkFreq_Value,DFSDM2Freq_Value,DFSDMACLkFreq_Value,DFSDMCLockSelection,DFSDMFreq_Value,DIVM1,DIVM2,DIVM3,DIVN1,DIVN2,DIVN3,DIVP1,DIVP1Freq_Value,DIVP2,DIVP2Freq_Value,DIVP3,DIVP3Freq_Value,DIVQ1,DIVQ1Freq_Value,DIVQ2,DIVQ2Freq_Value,DIVQ3,DIVQ3Freq_Value,DIVR1,DIVR1Freq_Value,DIVR2Freq_Value,DIVR3,DIVR3Freq_Value,EXTERNAL_CLOCK_VALUE,FDCANFreq_Value,FMCCLockSelection,FMCFreq_Value,FamilyName,HCLK3ClockFreq_Value,HCLKFreq_Value,HPRE,HSE_VALUE,HSI48_VALUE,HSIDiv,HSI_VALUE,I2C123CLockSelection,I2C123Freq_Value,I2C4CLockSelection,I2C4Freq_Value,LPTIM1CLockSelection,LPTIM1Freq_Value,LPTIM2CLockSelection,LPTIM2Freq_Value,LPTIM345CLockSelection,LPTIM345Freq_Value,LPUART1CLockSelection,LPUART1Freq_Value,LSI_VALUE,LTDCFreq_Value,MCO1PinFreq_Value,MCO2PinFreq_Value,PLL2FRACN,PLL3FRACN,PLLFRACN,PLLSourceVirtual,QSPICLockSelection,QSPIFreq_Value,RCC_MCO1Source,RCC_MCO2Source,RCC_MCODiv1,RCC_MCODiv2,RCC_RTC_Clock_Source_FROM_HSE,RNGCLockSelection,RNGFreq_Value,RTCFreq_Value,SAI1CLockSelection,SAI1Freq_Value,SAI2AFreq_Value,SAI2BCLockSelection,SAI2BFreq_Value,SDMMC1CLockSelection,SDMMCFreq_Value,SPDIFCLockSelection,SPDIFRXFreq_Value,SPI123CLockSelection,SPI123Freq_Value,SPI45Freq_Value,SPI6CLockSelection,SPI6Freq_Value,SRDPPRE,SWPCLockSelection,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,Spi45ClockSelection,Tim1OutputFreq_Value,Tim2OutputFreq_Value,TraceFreq_Value,USART16CLockSelection,USART16Freq_Value,USART234578CLockSelection,USART234578Freq_Value,USBCLockSelection,USBFreq_Value,VCO1OutputFreq_Value,VCO2OutputFreq_Value,VCO3OutputFreq_Value,VCOInput1Freq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value,WatchDogFreq_Value
RCC.LPTIM1CLockSelection=RCC_LPTIM1CLKSOURCE_D2PCLK1
-RCC.LPTIM1Freq_Value=80000000
+RCC.LPTIM1Freq_Value=100000000
RCC.LPTIM2CLockSelection=RCC_LPTIM2CLKSOURCE_D3PCLK1
-RCC.LPTIM2Freq_Value=80000000
+RCC.LPTIM2Freq_Value=100000000
RCC.LPTIM345CLockSelection=RCC_LPTIM3CLKSOURCE_D3PCLK1
-RCC.LPTIM345Freq_Value=80000000
+RCC.LPTIM345Freq_Value=100000000
RCC.LPUART1CLockSelection=RCC_LPUART1CLKSOURCE_D3PCLK1
-RCC.LPUART1Freq_Value=80000000
+RCC.LPUART1Freq_Value=100000000
RCC.LSI_VALUE=32000
RCC.LTDCFreq_Value=64000000
RCC.MCO1PinFreq_Value=64000000
-RCC.MCO2PinFreq_Value=160000000
+RCC.MCO2PinFreq_Value=200000000
RCC.PLL2FRACN=0
RCC.PLL3FRACN=0
RCC.PLLFRACN=0
RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
RCC.QSPICLockSelection=RCC_OSPICLKSOURCE_D1HCLK
-RCC.QSPIFreq_Value=160000000
+RCC.QSPIFreq_Value=200000000
RCC.RCC_MCO1Source=RCC_MCO1SOURCE_HSI
RCC.RCC_MCO2Source=RCC_MCO2SOURCE_SYSCLK
RCC.RCC_MCODiv1=RCC_MCODIV_1
@@ -505,36 +505,36 @@ RCC.RNGCLockSelection=RCC_RNGCLKSOURCE_HSI48
RCC.RNGFreq_Value=48000000
RCC.RTCFreq_Value=32000
RCC.SAI1CLockSelection=RCC_SAI1CLKSOURCE_PLL
-RCC.SAI1Freq_Value=80000000
-RCC.SAI2AFreq_Value=80000000
+RCC.SAI1Freq_Value=100000000
+RCC.SAI2AFreq_Value=100000000
RCC.SAI2BCLockSelection=RCC_SAI2BCLKSOURCE_PLL
-RCC.SAI2BFreq_Value=80000000
+RCC.SAI2BFreq_Value=100000000
RCC.SDMMC1CLockSelection=RCC_SDMMCCLKSOURCE_PLL2
-RCC.SDMMCFreq_Value=160000000
+RCC.SDMMCFreq_Value=200000000
RCC.SPDIFCLockSelection=RCC_SPDIFRXCLKSOURCE_PLL
-RCC.SPDIFRXFreq_Value=80000000
+RCC.SPDIFRXFreq_Value=100000000
RCC.SPI123CLockSelection=RCC_SPI123CLKSOURCE_PLL
-RCC.SPI123Freq_Value=80000000
-RCC.SPI45Freq_Value=80000000
+RCC.SPI123Freq_Value=100000000
+RCC.SPI45Freq_Value=100000000
RCC.SPI6CLockSelection=RCC_SPI6CLKSOURCE_D3PCLK1
-RCC.SPI6Freq_Value=80000000
+RCC.SPI6Freq_Value=100000000
RCC.SRDPPRE=RCC_APB4_DIV2
RCC.SWPCLockSelection=RCC_SWPMI1CLKSOURCE_D2PCLK1
-RCC.SWPMI1Freq_Value=80000000
-RCC.SYSCLKFreq_VALUE=160000000
+RCC.SWPMI1Freq_Value=100000000
+RCC.SYSCLKFreq_VALUE=200000000
RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
RCC.Spi45ClockSelection=RCC_SPI45CLKSOURCE_D2PCLK1
-RCC.Tim1OutputFreq_Value=160000000
-RCC.Tim2OutputFreq_Value=160000000
-RCC.TraceFreq_Value=160000000
+RCC.Tim1OutputFreq_Value=200000000
+RCC.Tim2OutputFreq_Value=200000000
+RCC.TraceFreq_Value=200000000
RCC.USART16CLockSelection=RCC_USART16910CLKSOURCE_D2PCLK2
-RCC.USART16Freq_Value=80000000
+RCC.USART16Freq_Value=100000000
RCC.USART234578CLockSelection=RCC_USART234578CLKSOURCE_D2PCLK1
-RCC.USART234578Freq_Value=80000000
+RCC.USART234578Freq_Value=100000000
RCC.USBCLockSelection=RCC_USBCLKSOURCE_HSI48
RCC.USBFreq_Value=48000000
-RCC.VCO1OutputFreq_Value=320000000
-RCC.VCO2OutputFreq_Value=320000000
+RCC.VCO1OutputFreq_Value=400000000
+RCC.VCO2OutputFreq_Value=400000000
RCC.VCO3OutputFreq_Value=192000000
RCC.VCOInput1Freq_Value=16000000
RCC.VCOInput2Freq_Value=16000000