Changeset 55 for trunk/fw_g473rct/Core


Ignore:
Timestamp:
Apr 1, 2026, 9:33:58 AM (5 weeks ago)
Author:
f.jahn
Message:

Fixing Projects.

Location:
trunk/fw_g473rct/Core
Files:
2 added
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/fw_g473rct/Core/Inc/main.h

    r44 r55  
    2929/* Includes ------------------------------------------------------------------*/
    3030#include "stm32g4xx_hal.h"
     31
     32#include "stm32g4xx_ll_ucpd.h"
     33#include "stm32g4xx_ll_bus.h"
     34#include "stm32g4xx_ll_cortex.h"
     35#include "stm32g4xx_ll_rcc.h"
     36#include "stm32g4xx_ll_system.h"
     37#include "stm32g4xx_ll_utils.h"
     38#include "stm32g4xx_ll_pwr.h"
     39#include "stm32g4xx_ll_gpio.h"
     40#include "stm32g4xx_ll_dma.h"
     41
     42#include "stm32g4xx_ll_exti.h"
    3143
    3244/* Private includes ----------------------------------------------------------*/
     
    6981#define LED_FUNCTION_Pin GPIO_PIN_4
    7082#define LED_FUNCTION_GPIO_Port GPIOA
    71 #define LED_ERROR_Pin GPIO_PIN_5
    72 #define LED_ERROR_GPIO_Port GPIOA
    7383#define ADC2_IN3_UBAT__Pin GPIO_PIN_6
    7484#define ADC2_IN3_UBAT__GPIO_Port GPIOA
    75 #define ADC3_IN12_MOSFET_TEMP_Pin GPIO_PIN_0
    76 #define ADC3_IN12_MOSFET_TEMP_GPIO_Port GPIOB
     85#define ADC2_IN4_UBAT__Pin GPIO_PIN_7
     86#define ADC2_IN4_UBAT__GPIO_Port GPIOA
     87#define LTC_CHARGE_CURRENT_MON_Pin GPIO_PIN_0
     88#define LTC_CHARGE_CURRENT_MON_GPIO_Port GPIOB
    7789#define ADC3_IN1_SHUNT_TEMP_Pin GPIO_PIN_1
    7890#define ADC3_IN1_SHUNT_TEMP_GPIO_Port GPIOB
     91#define LED_ERROR_Pin GPIO_PIN_2
     92#define LED_ERROR_GPIO_Port GPIOB
    7993#define BUZZER_Pin GPIO_PIN_10
    8094#define BUZZER_GPIO_Port GPIOB
    81 #define DISCHARGE_ENABLE_Pin GPIO_PIN_11
    82 #define DISCHARGE_ENABLE_GPIO_Port GPIOB
    83 #define CHARGE_ENABLE_Pin GPIO_PIN_12
    84 #define CHARGE_ENABLE_GPIO_Port GPIOB
    85 #define ADC3_IN5_RESERVIERT_Pin GPIO_PIN_13
    86 #define ADC3_IN5_RESERVIERT_GPIO_Port GPIOB
     95#define OVERWRITE_DISCHARGE_CTRL_Pin GPIO_PIN_11
     96#define OVERWRITE_DISCHARGE_CTRL_GPIO_Port GPIOB
     97#define OVERWRITE_CHARGE_CTRL_Pin GPIO_PIN_12
     98#define OVERWRITE_CHARGE_CTRL_GPIO_Port GPIOB
     99#define ADC3_IN5_LTC_DISCHARGE_CURRENT_MON_Pin GPIO_PIN_13
     100#define ADC3_IN5_LTC_DISCHARGE_CURRENT_MON_GPIO_Port GPIOB
    87101#define ADC4_IN4_U_SHUNT_SENSE__Pin GPIO_PIN_14
    88102#define ADC4_IN4_U_SHUNT_SENSE__GPIO_Port GPIOB
  • trunk/fw_g473rct/Core/Inc/stm32g4xx_hal_conf.h

    r38 r55  
    4343/*#define HAL_CRYP_MODULE_ENABLED   */
    4444/*#define HAL_DAC_MODULE_ENABLED   */
    45 #define HAL_FDCAN_MODULE_ENABLED
     45/*#define HAL_FDCAN_MODULE_ENABLED   */
    4646/*#define HAL_FMAC_MODULE_ENABLED   */
    4747/*#define HAL_HRTIM_MODULE_ENABLED   */
     
    6363#define HAL_SPI_MODULE_ENABLED
    6464/*#define HAL_SRAM_MODULE_ENABLED   */
    65 /*#define HAL_TIM_MODULE_ENABLED   */
     65#define HAL_TIM_MODULE_ENABLED
    6666#define HAL_UART_MODULE_ENABLED
    6767/*#define HAL_USART_MODULE_ENABLED   */
  • trunk/fw_g473rct/Core/Inc/stm32g4xx_it.h

    r38 r55  
    6464void DMA1_Channel6_IRQHandler(void);
    6565void DMA1_Channel7_IRQHandler(void);
     66void USB_LP_IRQHandler(void);
    6667void EXTI9_5_IRQHandler(void);
    6768void USART1_IRQHandler(void);
    6869void USART2_IRQHandler(void);
     70void DMA2_Channel1_IRQHandler(void);
     71void UCPD1_IRQHandler(void);
     72void DMA1_Channel8_IRQHandler(void);
    6973/* USER CODE BEGIN EFP */
    7074
  • trunk/fw_g473rct/Core/Src/adc.c

    r26 r55  
    6161  hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
    6262  hadc1.Init.LowPowerAutoWait = DISABLE;
    63   hadc1.Init.ContinuousConvMode = ENABLE;
     63  hadc1.Init.ContinuousConvMode = DISABLE;
    6464  hadc1.Init.NbrOfConversion = 1;
    6565  hadc1.Init.DiscontinuousConvMode = DISABLE;
    66   hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
    67   hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
     66  hadc1.Init.ExternalTrigConv = ADC_EXTERNALTRIG_T3_TRGO;
     67  hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_RISING;
    6868  hadc1.Init.DMAContinuousRequests = DISABLE;
    6969  hadc1.Init.Overrun = ADC_OVR_DATA_OVERWRITTEN;
     
    8080  /** Configure the ADC multi-mode
    8181  */
    82   multimode.Mode = ADC_DUALMODE_REGSIMULT;
    83   multimode.DMAAccessMode = ADC_DMAACCESSMODE_12_10_BITS;
    84   multimode.TwoSamplingDelay = ADC_TWOSAMPLINGDELAY_1CYCLE;
     82  multimode.Mode = ADC_MODE_INDEPENDENT;
    8583  if (HAL_ADCEx_MultiModeConfigChannel(&hadc1, &multimode) != HAL_OK)
    8684  {
     
    129127  hadc2.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
    130128  hadc2.Init.LowPowerAutoWait = DISABLE;
    131   hadc2.Init.ContinuousConvMode = ENABLE;
     129  hadc2.Init.ContinuousConvMode = DISABLE;
    132130  hadc2.Init.NbrOfConversion = 1;
    133131  hadc2.Init.DiscontinuousConvMode = DISABLE;
     132  hadc2.Init.ExternalTrigConv = ADC_EXTERNALTRIG_T3_TRGO;
     133  hadc2.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_RISING;
    134134  hadc2.Init.DMAContinuousRequests = DISABLE;
    135135  hadc2.Init.Overrun = ADC_OVR_DATA_OVERWRITTEN;
     
    226226  /** Configure Regular Channel
    227227  */
    228   sConfig.Channel = ADC_CHANNEL_12;
     228  sConfig.Channel = ADC_CHANNEL_5;
    229229  sConfig.Rank = ADC_REGULAR_RANK_2;
    230230  if (HAL_ADC_ConfigChannel(&hadc3, &sConfig) != HAL_OK)
     
    235235  /** Configure Regular Channel
    236236  */
    237   sConfig.Channel = ADC_CHANNEL_5;
     237  sConfig.Channel = ADC_CHANNEL_12;
    238238  sConfig.Rank = ADC_REGULAR_RANK_3;
    239239  if (HAL_ADC_ConfigChannel(&hadc3, &sConfig) != HAL_OK)
     
    270270  hadc4.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
    271271  hadc4.Init.LowPowerAutoWait = DISABLE;
    272   hadc4.Init.ContinuousConvMode = ENABLE;
     272  hadc4.Init.ContinuousConvMode = DISABLE;
    273273  hadc4.Init.NbrOfConversion = 1;
    274274  hadc4.Init.DiscontinuousConvMode = DISABLE;
    275   hadc4.Init.ExternalTrigConv = ADC_SOFTWARE_START;
    276   hadc4.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
    277   hadc4.Init.DMAContinuousRequests = ENABLE;
     275  hadc4.Init.ExternalTrigConv = ADC_EXTERNALTRIG_T3_TRGO;
     276  hadc4.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_RISING;
     277  hadc4.Init.DMAContinuousRequests = DISABLE;
    278278  hadc4.Init.Overrun = ADC_OVR_DATA_PRESERVED;
    279279  hadc4.Init.OversamplingMode = ENABLE;
     
    477477    PA7     ------> ADC2_IN4
    478478    */
    479     GPIO_InitStruct.Pin = ADC2_IN3_UBAT__Pin|GPIO_PIN_7;
     479    GPIO_InitStruct.Pin = ADC2_IN3_UBAT__Pin|ADC2_IN4_UBAT__Pin;
    480480    GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
    481481    GPIO_InitStruct.Pull = GPIO_NOPULL;
     
    531531    PB13     ------> ADC3_IN5
    532532    */
    533     GPIO_InitStruct.Pin = ADC3_IN12_MOSFET_TEMP_Pin|ADC3_IN1_SHUNT_TEMP_Pin|ADC3_IN5_RESERVIERT_Pin;
     533    GPIO_InitStruct.Pin = LTC_CHARGE_CURRENT_MON_Pin|ADC3_IN1_SHUNT_TEMP_Pin|ADC3_IN5_LTC_DISCHARGE_CURRENT_MON_Pin;
    534534    GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
    535535    GPIO_InitStruct.Pull = GPIO_NOPULL;
     
    598598    hdma_adc4.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
    599599    hdma_adc4.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
    600     hdma_adc4.Init.Mode = DMA_CIRCULAR;
     600    hdma_adc4.Init.Mode = DMA_NORMAL;
    601601    hdma_adc4.Init.Priority = DMA_PRIORITY_LOW;
    602602    if (HAL_DMA_Init(&hdma_adc4) != HAL_OK)
     
    707707    PA7     ------> ADC2_IN4
    708708    */
    709     HAL_GPIO_DeInit(GPIOA, ADC2_IN3_UBAT__Pin|GPIO_PIN_7);
     709    HAL_GPIO_DeInit(GPIOA, ADC2_IN3_UBAT__Pin|ADC2_IN4_UBAT__Pin);
    710710
    711711    /* ADC2 DMA DeInit */
     
    731731    PB13     ------> ADC3_IN5
    732732    */
    733     HAL_GPIO_DeInit(GPIOB, ADC3_IN12_MOSFET_TEMP_Pin|ADC3_IN1_SHUNT_TEMP_Pin|ADC3_IN5_RESERVIERT_Pin);
     733    HAL_GPIO_DeInit(GPIOB, LTC_CHARGE_CURRENT_MON_Pin|ADC3_IN1_SHUNT_TEMP_Pin|ADC3_IN5_LTC_DISCHARGE_CURRENT_MON_Pin);
    734734
    735735    /* ADC3 DMA DeInit */
     
    790790
    791791/* USER CODE END 1 */
     792
  • trunk/fw_g473rct/Core/Src/crc.c

    r25 r55  
    9292
    9393/* USER CODE END 1 */
     94
  • trunk/fw_g473rct/Core/Src/dma.c

    r23 r55  
    4343  __HAL_RCC_DMAMUX1_CLK_ENABLE();
    4444  __HAL_RCC_DMA1_CLK_ENABLE();
     45  __HAL_RCC_DMA2_CLK_ENABLE();
    4546
    4647  /* DMA interrupt init */
     
    6667  HAL_NVIC_SetPriority(DMA1_Channel7_IRQn, 0, 0);
    6768  HAL_NVIC_EnableIRQ(DMA1_Channel7_IRQn);
     69  /* DMA2_Channel1_IRQn interrupt configuration */
     70  NVIC_SetPriority(DMA2_Channel1_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(),0, 0));
     71  NVIC_EnableIRQ(DMA2_Channel1_IRQn);
     72  /* DMA1_Channel8_IRQn interrupt configuration */
     73  NVIC_SetPriority(DMA1_Channel8_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(),0, 0));
     74  NVIC_EnableIRQ(DMA1_Channel8_IRQn);
    6875
    6976}
  • trunk/fw_g473rct/Core/Src/gpio.c

    r38 r55  
    5656
    5757  /*Configure GPIO pin Output Level */
    58   HAL_GPIO_WritePin(GPIOA, LED_FUNCTION_Pin|LED_ERROR_Pin, GPIO_PIN_RESET);
     58  HAL_GPIO_WritePin(LED_FUNCTION_GPIO_Port, LED_FUNCTION_Pin, GPIO_PIN_RESET);
    5959
    6060  /*Configure GPIO pin Output Level */
    61   HAL_GPIO_WritePin(GPIOB, BUZZER_Pin|DISCHARGE_ENABLE_Pin|CHARGE_ENABLE_Pin, GPIO_PIN_RESET);
     61  HAL_GPIO_WritePin(GPIOB, LED_ERROR_Pin|BUZZER_Pin, GPIO_PIN_RESET);
    6262
    6363  /*Configure GPIO pins : AUX_EN_Pin ADC_START_CONV_Pin ADC_RESET_Pin */
     
    6868  HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
    6969
    70   /*Configure GPIO pins : LED_FUNCTION_Pin LED_ERROR_Pin */
    71   GPIO_InitStruct.Pin = LED_FUNCTION_Pin|LED_ERROR_Pin;
     70  /*Configure GPIO pin : LED_FUNCTION_Pin */
     71  GPIO_InitStruct.Pin = LED_FUNCTION_Pin;
    7272  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    7373  GPIO_InitStruct.Pull = GPIO_NOPULL;
    7474  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    75   HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
     75  HAL_GPIO_Init(LED_FUNCTION_GPIO_Port, &GPIO_InitStruct);
    7676
    77   /*Configure GPIO pins : BUZZER_Pin DISCHARGE_ENABLE_Pin CHARGE_ENABLE_Pin */
    78   GPIO_InitStruct.Pin = BUZZER_Pin|DISCHARGE_ENABLE_Pin|CHARGE_ENABLE_Pin;
     77  /*Configure GPIO pins : LED_ERROR_Pin BUZZER_Pin */
     78  GPIO_InitStruct.Pin = LED_ERROR_Pin|BUZZER_Pin;
    7979  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    8080  GPIO_InitStruct.Pull = GPIO_NOPULL;
    8181  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
     82  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
     83
     84  /*Configure GPIO pins : OVERWRITE_DISCHARGE_CTRL_Pin OVERWRITE_CHARGE_CTRL_Pin COM_POWERPRO_RES_Pin */
     85  GPIO_InitStruct.Pin = OVERWRITE_DISCHARGE_CTRL_Pin|OVERWRITE_CHARGE_CTRL_Pin|COM_POWERPRO_RES_Pin;
     86  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
     87  GPIO_InitStruct.Pull = GPIO_NOPULL;
    8288  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
    8389
     
    100106  HAL_GPIO_Init(FAULT_INT_GPIO_Port, &GPIO_InitStruct);
    101107
    102   /*Configure GPIO pin : COM_POWERPRO_RES_Pin */
    103   GPIO_InitStruct.Pin = COM_POWERPRO_RES_Pin;
    104   GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
    105   GPIO_InitStruct.Pull = GPIO_NOPULL;
    106   HAL_GPIO_Init(COM_POWERPRO_RES_GPIO_Port, &GPIO_InitStruct);
    107 
    108108  /* EXTI interrupt init*/
    109109  HAL_NVIC_SetPriority(EXTI2_IRQn, 0, 0);
  • trunk/fw_g473rct/Core/Src/i2c.c

    r28 r55  
    240240
    241241/* USER CODE END 1 */
     242
  • trunk/fw_g473rct/Core/Src/iwdg.c

    r38 r55  
    5555
    5656/* USER CODE END 1 */
     57
  • trunk/fw_g473rct/Core/Src/main.c

    r54 r55  
    2222#include "crc.h"
    2323#include "dma.h"
    24 #include "fdcan.h"
    2524#include "i2c.h"
    2625#include "iwdg.h"
    2726#include "rtc.h"
    2827#include "spi.h"
     28#include "tim.h"
     29#include "ucpd.h"
    2930#include "usart.h"
    30 #include "usb.h"
     31#include "usbpd.h"
     32#include "usb_device.h"
    3133#include "gpio.h"
    3234
     
    5355#include "efficiency.h"
    5456#include "self_discharge.h"
     57#include "ltc_current.h"
    5558
    5659/* USER CODE END Includes */
     
    6568
    6669#define MAX_OVERCURRENT_RETRYS  3
     70#ifdef DEBUG
     71#define MX_IWDG_Init DoNothing
     72#endif
    6773
    6874/* USER CODE END PD */
     
    8187modbus_t modbusData __attribute__((section(".RAM1")));
    8288
    83 __IO uint16_t adc12Data[SAMPLE_ARRAY_SIZE][2] __attribute__((section(".RAM1")));
    84 __IO uint32_t adc1Data[1] __attribute__((section(".RAM1")));
    85 __IO uint32_t adc2Data[1] __attribute__((section(".RAM1")));
     89
     90__IO uint32_t adc1Data[SAMPLE_ARRAY_SIZE] __attribute__((section(".RAM1")));
     91__IO uint32_t adc2Data[SAMPLE_ARRAY_SIZE] __attribute__((section(".RAM1")));
    8692__IO uint32_t adc3Data[3] __attribute__((section(".RAM1")));
    87 __IO uint32_t adc4Data[1] __attribute__((section(".RAM1")));
     93__IO uint32_t adc4Data[SAMPLE_ARRAY_SIZE] __attribute__((section(".RAM1")));
    8894__IO uint32_t adc5Data[4] __attribute__((section(".RAM1")));
    8995int silentmode =0;
    90 static volatile uint32_t newADC12Data = 0;
     96static volatile uint32_t newADC124Data = 0;
    9197static volatile uint32_t newADC3Data = 0;
    92 static volatile uint32_t newADC4Data = 0;
    9398static volatile uint32_t newADC5Data = 0;
    9499
     
    104109void SaveBackupRegister(void);
    105110void JumpToBootloader(void);
     111void DoNothing(void){};
    106112/* USER CODE END PFP */
    107113
     
    117123int main(void)
    118124{
     125
    119126  /* USER CODE BEGIN 1 */
    120127
     
    160167  MX_ADC4_Init();
    161168  MX_ADC5_Init();
    162   MX_FDCAN2_Init();
    163   MX_FDCAN3_Init();
    164169  MX_I2C3_Init();
    165170  MX_I2C4_Init();
     
    167172  MX_USART1_UART_Init();
    168173  MX_USART2_UART_Init();
    169   MX_USB_PCD_Init();
    170174  MX_CRC_Init();
    171175  MX_RTC_Init();
    172176  MX_IWDG_Init();
     177  MX_TIM3_Init();
     178  MX_USB_Device_Init();
     179  MX_UCPD1_Init();
    173180  /* USER CODE BEGIN 2 */
    174181  printf("Test debug io\r\n");
     
    178185
    179186  startType_t startType = EEPROM_isFirstStart();
    180  
     187
    181188  switch(startType)
    182189  {
     
    212219  HAL_ADCEx_Calibration_Start(&hadc5, ADC_SINGLE_ENDED);
    213220  HAL_IWDG_Refresh(&hiwdg);
    214 
     221 
    215222  //SET_BIT(hadc2.Instance->CFGR, ADC_CFGR_DMAEN); //Enable DMA transfer for ADC slave (ADC12_CCR.MDMA = 0b00 -> MDMA mode disabled)
    216223  //HAL_DMA_Start(hadc2.DMA_Handle,(uint32_t)&hadc2.Instance->DR, (uint32_t)adc2Data,1); //Start ADC slave DMA
    217224  //SET_BIT(hadc1.Instance->CFGR, ADC_CFGR_DMAEN); //Enable DMA transfer for ADC master (ADC12_CCR.MDMA = 0b00 -> MDMA mode disabled)
    218 
    219     //HAL_ADC_Start_DMA(&hadc2, (uint32_t*)adc2Data, 1);
    220   if (HAL_ADCEx_MultiModeStart_DMA(&hadc1,(uint32_t *)adc12Data,SAMPLE_ARRAY_SIZE))  //Start ADC interleaved mode
     225  if (HAL_ADC_Start_DMA(&hadc1,(uint32_t *)adc1Data,SAMPLE_ARRAY_SIZE))  //Start ADC interleaved mode
    221226  {
    222227     /* Start Error */
    223228     Error_Handler();
    224229  }
    225 
    226   if (HAL_ADC_Start_DMA(&hadc3, (uint32_t *) adc3Data , 3))
     230 
     231  if (HAL_ADC_Start_DMA(&hadc2,(uint32_t *)adc2Data,SAMPLE_ARRAY_SIZE))  //Start ADC interleaved mode
    227232  {
    228233     /* Start Error */
     
    230235  }
    231236
    232   if (HAL_ADC_Start_DMA(&hadc4, (uint32_t *) adc4Data , 1))
     237  if (HAL_ADC_Start_DMA(&hadc3, (uint32_t *) adc3Data , 3))
     238  {
     239     /* Start Error */
     240     Error_Handler();
     241  }
     242
     243  if (HAL_ADC_Start_DMA(&hadc4, (uint32_t *) adc4Data , SAMPLE_ARRAY_SIZE))
    233244  {
    234245     /* Start Error */
     
    265276  /* USER CODE END 2 */
    266277
     278  /* USBPD initialisation ---------------------------------*/
     279  MX_USBPD_Init();
     280
    267281  /* Infinite loop */
    268282  /* USER CODE BEGIN WHILE */
     
    270284  {
    271285    /* USER CODE END WHILE */
     286    USBPD_DPM_Run();
    272287
    273288    /* USER CODE BEGIN 3 */
    274289        HAL_IWDG_Refresh(&hiwdg);
    275         if (newADC12Data == 1)
    276     {
     290        if (newADC124Data == 1)
     291    {
     292          SHUNT_VOLTAGE_Exec( adc4Data[0]);
    277293          //Mit ADC_DIV2,Sample time 12,5Cycklen, ADC Clock 50Mhz, Oversampling 256
    278294          //Tconv = 6400 Takte = 0,128ms Pro Konvertierung. Also für 100 messwerte 12,8mS
    279           BATTERY_VOLTAGE_Exec( adc12Data[SAMPLE_ARRAY_SIZE-1][1]);
    280           FAST_CURRENT_Exec(adc12Data[SAMPLE_ARRAY_SIZE-1][0]);
     295          BATTERY_VOLTAGE_Exec( adc2Data[SAMPLE_ARRAY_SIZE-1]);
     296          FAST_CURRENT_Exec(adc1Data[SAMPLE_ARRAY_SIZE-1]);
    281297          ESR_FAST_Exec();
    282298          sys_data.s.values.batteryPower = ((int64_t) sys_data.s.values.batteryVoltage * (int64_t)sys_data.s.values.batteryCurrent) / 1000LL;
    283299          sys_data.s.values.power_Fast = ((int64_t) sys_data.s.values.batteryVoltage * (int64_t)sys_data.s.values.fast_current) / 1000LL;
    284           newADC12Data = 0;
     300          newADC124Data = 0;
     301
     302           
    285303         
    286304
    287           if (HAL_ADCEx_MultiModeStart_DMA(&hadc1,(uint32_t *)adc12Data,SAMPLE_ARRAY_SIZE))  //Start ADC interleaved mode
    288       {
    289          /* Start Error */
    290          Error_Handler();
    291       }
     305           if (HAL_ADC_Start_DMA(&hadc1,(uint32_t *)adc1Data,SAMPLE_ARRAY_SIZE))  //Start ADC interleaved mode
     306          {
     307                 /* Start Error */
     308                 Error_Handler();
     309          }
     310
     311          if (HAL_ADC_Start_DMA(&hadc2,(uint32_t *)adc2Data,SAMPLE_ARRAY_SIZE))  //Start ADC interleaved mode
     312          {
     313                 /* Start Error */
     314                 Error_Handler();
     315          }
     316
     317                //  if (HAL_ADC_Start_DMA(&hadc4, (uint32_t *) adc4Data , SAMPLE_ARRAY_SIZE))
     318                //  {             
     319        //       /* Start Error */
     320        //       Error_Handler();
     321        //  }
     322
     323         
     324
    292325
    293326        }
     
    296329    {
    297330          SHUNT_TEMPERATURE_Exec(adc3Data[0]);
    298         }
    299 
    300 
    301         if (newADC4Data == 1)
    302     {
    303           SHUNT_VOLTAGE_Exec( adc4Data[0]);
    304         }
     331          LTC_CURRENT_Exec(adc3Data[1], adc3Data[2]);
     332
     333        }
     334
     335
     336
     337 
     338       
     339       
    305340
    306341
     
    317352    {
    318353      ADS1260_ConversionFinished();
    319       sys_data.s.values.esrCalcStatus = ESR_Exec();
     354      //sys_data.s.values.esrCalcStatus = ESR_Exec();
    320355
    321356      newCurrentValue = 0;
     
    343378          printf("SHORT_CIRCUIT_PROTECTION\n");
    344379          sys_data.s.values.lvpState = OUTPUTS_LVP_SHORT_PROTECTION;
    345           HAL_GPIO_WritePin(DISCHARGE_ENABLE_GPIO_Port, DISCHARGE_ENABLE_Pin, OUTPUTS_DISCHARGE_NOT_ALLOWED);
     380          OUTPUTS_OverwriteDischargeCtrl_DischargeDisabled();
    346381
    347382          sys_data.s.values.lvpState = OUTPUTS_OVP_SHORT_PROTECTION;
    348           HAL_GPIO_WritePin(CHARGE_ENABLE_GPIO_Port, CHARGE_ENABLE_Pin, OUTPUTS_CHARGE_NOT_ALLOWED);
     383          OUTPUTS_OverwriteChargeCtrl_ChargeDisabled();
    349384        }
    350385
     
    410445          case COMMAND_BATTERY_CURRENT_OFFSET_CAL:           
    411446                                ADS_1260_BatteryCurrentOffsetCalibrationStart(&sys_data);
    412                                 CurrentOffsetCal(adc12Data[SAMPLE_ARRAY_SIZE - 1][0]); 
     447                                CurrentOffsetCal(adc1Data[SAMPLE_ARRAY_SIZE - 1]); 
    413448                                break;
    414449          case COMMAND_BATTERY_CURRENT_OFFSET_COMMONMODE_CAL: ADS_1260_BatteryCurrentOffsetCommonModeErrorComepensationStart(&sys_data);  break;
     
    416451          case COMMAND_BATTERY_CURRENT_GAIN_CAL:             
    417452                                ADS_1260_BatteryCurrentGainCalibrationStart(&sys_data);
    418                                 CurrentGainCal(adc12Data[SAMPLE_ARRAY_SIZE - 1][0]);     
     453                                CurrentGainCal(adc1Data[SAMPLE_ARRAY_SIZE - 1]);         
    419454                                break;
    420455          case COMMAND_BATTERY_CURRENT_GAIN_TEMP_SHUNT_CAL:   ADS_1260_BatteryCurrentGainTemperatureCalibrationShuntStart();                      break;
     
    499534  * in the RCC_OscInitTypeDef structure.
    500535  */
    501   RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI48|RCC_OSCILLATORTYPE_LSI
    502                               |RCC_OSCILLATORTYPE_HSE|RCC_OSCILLATORTYPE_LSE;
     536  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_HSI48
     537                              |RCC_OSCILLATORTYPE_LSI|RCC_OSCILLATORTYPE_HSE
     538                              |RCC_OSCILLATORTYPE_LSE;
    503539  RCC_OscInitStruct.HSEState = RCC_HSE_ON;
    504540  RCC_OscInitStruct.LSEState = RCC_LSE_ON;
     541  RCC_OscInitStruct.HSIState = RCC_HSI_ON;
     542  RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
    505543  RCC_OscInitStruct.LSIState = RCC_LSI_ON;
    506544  RCC_OscInitStruct.HSI48State = RCC_HSI48_ON;
     
    616654    if (hadc->Instance==ADC1)
    617655        {
    618           newADC12Data=1;
     656          newADC124Data=1;
    619657        }
    620658
     
    622660        {
    623661          newADC3Data=1;
    624         }
    625 
    626 
    627         if (hadc->Instance==ADC4)
    628         {
    629           newADC4Data=1;
    630662        }
    631663
  • trunk/fw_g473rct/Core/Src/rtc.c

    r25 r55  
    108108
    109109/* USER CODE END 1 */
     110
  • trunk/fw_g473rct/Core/Src/spi.c

    r25 r55  
    132132
    133133/* USER CODE END 1 */
     134
  • trunk/fw_g473rct/Core/Src/stm32g4xx_hal_msp.c

    r22 r55  
    1818  */
    1919/* USER CODE END Header */
    20 
    2120/* Includes ------------------------------------------------------------------*/
    2221#include "main.h"
  • trunk/fw_g473rct/Core/Src/stm32g4xx_it.c

    r38 r55  
    2121#include "main.h"
    2222#include "stm32g4xx_it.h"
     23#include "usbpd.h"
    2324/* Private includes ----------------------------------------------------------*/
    2425/* USER CODE BEGIN Includes */
     
    5859
    5960/* External variables --------------------------------------------------------*/
     61extern PCD_HandleTypeDef hpcd_USB_FS;
    6062extern DMA_HandleTypeDef hdma_adc1;
    6163extern DMA_HandleTypeDef hdma_adc2;
     
    197199  /* USER CODE END SysTick_IRQn 0 */
    198200  HAL_IncTick();
     201  USBPD_DPM_TimerCounter();
    199202  /* USER CODE BEGIN SysTick_IRQn 1 */
    200203
     
    322325
    323326/**
     327  * @brief This function handles USB low priority interrupt remap.
     328  */
     329void USB_LP_IRQHandler(void)
     330{
     331  /* USER CODE BEGIN USB_LP_IRQn 0 */
     332
     333  /* USER CODE END USB_LP_IRQn 0 */
     334  HAL_PCD_IRQHandler(&hpcd_USB_FS);
     335  /* USER CODE BEGIN USB_LP_IRQn 1 */
     336
     337  /* USER CODE END USB_LP_IRQn 1 */
     338}
     339
     340/**
    324341  * @brief This function handles EXTI line[9:5] interrupts.
    325342  */
     
    363380}
    364381
     382/**
     383  * @brief This function handles DMA2 channel1 global interrupt.
     384  */
     385void DMA2_Channel1_IRQHandler(void)
     386{
     387  /* USER CODE BEGIN DMA2_Channel1_IRQn 0 */
     388
     389  /* USER CODE END DMA2_Channel1_IRQn 0 */
     390  /* USER CODE BEGIN DMA2_Channel1_IRQn 1 */
     391
     392  /* USER CODE END DMA2_Channel1_IRQn 1 */
     393}
     394
     395/**
     396  * @brief This function handles UCPD1 interrupt / UCPD1 wake-up interrupt through EXTI line 43.
     397  */
     398void UCPD1_IRQHandler(void)
     399{
     400  /* USER CODE BEGIN UCPD1_IRQn 0 */
     401
     402  /* USER CODE END UCPD1_IRQn 0 */
     403  USBPD_PORT0_IRQHandler();
     404
     405  /* USER CODE BEGIN UCPD1_IRQn 1 */
     406
     407  /* USER CODE END UCPD1_IRQn 1 */
     408}
     409
     410/**
     411  * @brief This function handles DMA1 channel8 global interrupt.
     412  */
     413void DMA1_Channel8_IRQHandler(void)
     414{
     415  /* USER CODE BEGIN DMA1_Channel8_IRQn 0 */
     416
     417  /* USER CODE END DMA1_Channel8_IRQn 0 */
     418  /* USER CODE BEGIN DMA1_Channel8_IRQn 1 */
     419
     420  /* USER CODE END DMA1_Channel8_IRQn 1 */
     421}
     422
    365423/* USER CODE BEGIN 1 */
    366424void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
  • trunk/fw_g473rct/Core/Src/usart.c

    r44 r55  
    9797  huart2.Init.ClockPrescaler = UART_PRESCALER_DIV1;
    9898  huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
    99   huart2.AdvancedInit.Swap = UART_ADVFEATURE_SWAP_ENABLE;
    10099  if (HAL_UART_Init(&huart2) != HAL_OK)
    101100  {
     
    288287
    289288/* USER CODE END 1 */
     289
Note: See TracChangeset for help on using the changeset viewer.