Ignore:
Timestamp:
Mar 13, 2025, 2:08:13 PM (2 months ago)
Author:
Zed
Message:

Fixing project.

Location:
ctrl/firmware/Main/CubeMX/Core
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • ctrl/firmware/Main/CubeMX/Core/Inc/stm32h7xx_it.h

    r108 r110  
    2323
    2424#ifdef __cplusplus
    25  extern "C" {
     25extern "C" {
    2626#endif
    2727
  • ctrl/firmware/Main/CubeMX/Core/Src/adc.c

    r109 r110  
    5454  */
    5555  hadc2.Instance = ADC2;
    56   hadc2.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV2;
     56  hadc2.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV1;
    5757  hadc2.Init.Resolution = ADC_RESOLUTION_16B;
    5858  hadc2.Init.ScanConvMode = ADC_SCAN_ENABLE;
     
    6868  hadc2.Init.LeftBitShift = ADC_LEFTBITSHIFT_NONE;
    6969  hadc2.Init.OversamplingMode = ENABLE;
    70   hadc2.Init.Oversampling.Ratio = 64;
    71   hadc2.Init.Oversampling.RightBitShift = ADC_RIGHTBITSHIFT_6;
     70  hadc2.Init.Oversampling.Ratio = 256;
     71  hadc2.Init.Oversampling.RightBitShift = ADC_RIGHTBITSHIFT_8;
    7272  hadc2.Init.Oversampling.TriggeredMode = ADC_TRIGGEREDMODE_SINGLE_TRIGGER;
    7373  hadc2.Init.Oversampling.OversamplingStopReset = ADC_REGOVERSAMPLING_CONTINUED_MODE;
     
    8181  sConfig.Channel = ADC_CHANNEL_3;
    8282  sConfig.Rank = ADC_REGULAR_RANK_1;
    83   sConfig.SamplingTime = ADC_SAMPLETIME_810CYCLES_5;
     83  sConfig.SamplingTime = ADC_SAMPLETIME_16CYCLES_5;
    8484  sConfig.SingleDiff = ADC_DIFFERENTIAL_ENDED;
    8585  sConfig.OffsetNumber = ADC_OFFSET_NONE;
     
    108108
    109109  uint32_t offset[2] = { 0U };
    110   const uint32_t max_samples = 16U;
     110  const uint32_t max_samples = 8192U / ((hadc2.Init.OversamplingMode == ENABLE)? hadc2.Init.Oversampling.Ratio: 1);
    111111  // Starting DMA converstion
    112112  if (HAL_OK != HAL_ADC_Start_DMA(&hadc2, (uint32_t*)&ADC2Data, ADC2_CHANNELS_NUM)) Error_Handler();
     
    126126  if (HAL_OK == HAL_ADC_Stop_DMA(&hadc2))
    127127  {
    128           LL_ADC_SetOffset(hadc2.Instance, LL_ADC_OFFSET_1, LL_ADC_CHANNEL_3, (offset[0]/max_samples) << 6U);
    129           LL_ADC_SetOffset(hadc2.Instance, LL_ADC_OFFSET_2, LL_ADC_CHANNEL_4, (offset[1]/max_samples) << 6U);
     128          LL_ADC_SetOffset(hadc2.Instance, LL_ADC_OFFSET_1, LL_ADC_CHANNEL_3, (offset[0]/max_samples) * ((hadc2.Init.OversamplingMode == ENABLE)? hadc2.Init.Oversampling.Ratio: 1));
     129          LL_ADC_SetOffset(hadc2.Instance, LL_ADC_OFFSET_2, LL_ADC_CHANNEL_4, (offset[1]/max_samples) * ((hadc2.Init.OversamplingMode == ENABLE)? hadc2.Init.Oversampling.Ratio: 1));
    130130  }
    131131
     
    184184  sConfig.Channel = ADC_CHANNEL_10;
    185185  sConfig.Rank = ADC_REGULAR_RANK_1;
    186   sConfig.SamplingTime = ADC3_SAMPLETIME_640CYCLES_5;
     186  sConfig.SamplingTime = ADC_SAMPLETIME_810CYCLES_5;
    187187  sConfig.SingleDiff = ADC_SINGLE_ENDED;
    188188  sConfig.OffsetNumber = ADC_OFFSET_NONE;
  • ctrl/firmware/Main/CubeMX/Core/Src/main.c

    r109 r110  
    192192  /** Configure the main internal regulator output voltage
    193193  */
    194   __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE2);
     194  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE0);
    195195
    196196  while(!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) {}
     
    266266  PeriphClkInitStruct.PLL2.PLL2FRACN = 0;
    267267  PeriphClkInitStruct.PLL3.PLL3M = 25;
    268   PeriphClkInitStruct.PLL3.PLL3N = 180;
     268  PeriphClkInitStruct.PLL3.PLL3N = 150;
    269269  PeriphClkInitStruct.PLL3.PLL3P = 2;
    270   PeriphClkInitStruct.PLL3.PLL3Q = 8;
     270  PeriphClkInitStruct.PLL3.PLL3Q = 6;
    271271  PeriphClkInitStruct.PLL3.PLL3R = 3;
    272272  PeriphClkInitStruct.PLL3.PLL3RGE = RCC_PLL3VCIRANGE_0;
     
    350350
    351351  /* USER CODE END Callback 0 */
    352   if (htim->Instance == TIM7) {
     352  if (htim->Instance == TIM7)
     353  {
    353354    HAL_IncTick();
    354355  }
  • ctrl/firmware/Main/CubeMX/Core/Src/stm32h7xx_hal_timebase_tim.c

    r54 r110  
    6363  __HAL_RCC_TIM7_CLK_ENABLE();
    6464
    65 /* Get clock configuration */
     65  /* Get clock configuration */
    6666  HAL_RCC_GetClockConfig(&clkconfig, &pFLatency);
    6767
     
    8585
    8686  /* Initialize TIMx peripheral as follow:
    87 
    88   + Period = [(TIM7CLK/1000) - 1]. to have a (1/1000) s time base.
    89   + Prescaler = (uwTimclock/1000000 - 1) to have a 1MHz counter clock.
    90   + ClockDivision = 0
    91   + Counter direction = Up
    92   */
     87   * Period = [(TIM7CLK/1000) - 1]. to have a (1/1000) s time base.
     88   * Prescaler = (uwTimclock/1000000 - 1) to have a 1MHz counter clock.
     89   * ClockDivision = 0
     90   * Counter direction = Up
     91   */
    9392  htim7.Init.Period = (1000000U / 1000U) - 1U;
    9493  htim7.Init.Prescaler = uwPrescalerValue;
  • ctrl/firmware/Main/CubeMX/Core/Src/stm32h7xx_it.c

    r109 r110  
    483483        {
    484484                HAL_GPIO_WritePin(RX1_LED_GPIO_Port, RX1_LED_Pin, GPIO_PIN_SET);
    485                 charge_tmp = (((int64_t)ADC2Data.Name.charge_strom * ((int64_t)VREF) * 1000LL) / ((int64_t)0xFFFF)) / 50LL;
    486                 load_tmp = (((int64_t)ADC2Data.Name.eload_strom * ((int64_t)VREF) * 1000LL) / ((int64_t)0xFFFF)) / 50LL;
    487                 charge_i = (float)charge_tmp / 500LL;
    488                 load_i = (float)load_tmp / 500LL;
     485                //charge_tmp = (((int64_t)ADC2Data.Name.charge_strom * ((int64_t)VREF) * 1000LL) / ((int64_t)0xFFFF)) / 50LL;
     486                //load_tmp = (((int64_t)ADC2Data.Name.eload_strom * ((int64_t)VREF) * 1000LL) / ((int64_t)0xFFFF)) / 50LL;
     487                //charge_i = (float)charge_tmp / 500LL;
     488                //load_i = (float)load_tmp / 500LL;
    489489                //printf("\t\t\t%5.2fA, %5.2fA\n", charge_i, load_i);
     490                printf("%d, %d\n", ADC2Data.Name.charge_strom, ADC2Data.Name.eload_strom);
    490491                HAL_GPIO_WritePin(RX1_LED_GPIO_Port, RX1_LED_Pin, GPIO_PIN_RESET);
    491492        }
Note: See TracChangeset for help on using the changeset viewer.