Ignore:
Timestamp:
Feb 14, 2025, 1:48:18 PM (3 months ago)
Author:
Zed
Message:

ADC3 with DMA was implemented.
DTS was activated.

Location:
ctrl/firmware/Main/CubeMX
Files:
4 added
5 edited

Legend:

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

    r95 r96  
    4747        struct
    4848        {
     49                uint16_t UBat;
    4950                uint16_t Vbat;
     51                uint16_t Temp;
    5052                uint16_t Vref;
    51                 uint16_t CPUTemp;
    52                 uint16_t UBat;
    5353        } Name;
    5454} __attribute__((packed, aligned(32))) ADC3_data_t;
     
    6060/* USER CODE BEGIN Prototypes */
    6161
    62 extern volatile uint16_t ADC3_values[2];
     62extern volatile ADC3_data_t ADC3Data;
    6363
    6464/* USER CODE END Prototypes */
  • ctrl/firmware/Main/CubeMX/Core/Inc/stm32h7xx_hal_conf.h

    r91 r96  
    8888/* #define HAL_MDIOS_MODULE_ENABLED   */
    8989/* #define HAL_PSSI_MODULE_ENABLED   */
    90 /* #define HAL_DTS_MODULE_ENABLED   */
     90#define HAL_DTS_MODULE_ENABLED
    9191#define HAL_GPIO_MODULE_ENABLED
    9292#define HAL_DMA_MODULE_ENABLED
  • ctrl/firmware/Main/CubeMX/Core/Src/adc.c

    r95 r96  
    2323/* USER CODE BEGIN 0 */
    2424
    25 volatile uint16_t ADC3_values[2] __attribute__((section(".BKP_RAM_4_DMA")));
     25volatile ADC3_data_t ADC3Data __attribute__((section(".BKP_RAM_4_DMA")));
    2626
    2727/* USER CODE END 0 */
     
    5454  hadc3.Init.LowPowerAutoWait = DISABLE;
    5555  hadc3.Init.ContinuousConvMode = ENABLE;
    56   hadc3.Init.NbrOfConversion = 2;
     56  hadc3.Init.NbrOfConversion = 4;
    5757  hadc3.Init.DiscontinuousConvMode = DISABLE;
    5858  hadc3.Init.ExternalTrigConv = ADC_SOFTWARE_START;
     
    8989  /** Configure Regular Channel
    9090  */
     91  sConfig.Channel = ADC_CHANNEL_VBAT;
     92  sConfig.Rank = ADC_REGULAR_RANK_2;
     93  if (HAL_ADC_ConfigChannel(&hadc3, &sConfig) != HAL_OK)
     94  {
     95    Error_Handler();
     96  }
     97
     98  /** Configure Regular Channel
     99  */
    91100  sConfig.Channel = ADC_CHANNEL_TEMPSENSOR;
    92   sConfig.Rank = ADC_REGULAR_RANK_2;
     101  sConfig.Rank = ADC_REGULAR_RANK_3;
     102  if (HAL_ADC_ConfigChannel(&hadc3, &sConfig) != HAL_OK)
     103  {
     104    Error_Handler();
     105  }
     106
     107  /** Configure Regular Channel
     108  */
     109  sConfig.Channel = ADC_CHANNEL_VREFINT;
     110  sConfig.Rank = ADC_REGULAR_RANK_4;
    93111  if (HAL_ADC_ConfigChannel(&hadc3, &sConfig) != HAL_OK)
    94112  {
     
    103121
    104122  //if (HAL_OK != HAL_ADC_Start(&hadc3)) Error_Handler();
    105   if (HAL_OK != HAL_ADC_Start_DMA(&hadc3, (uint32_t*)ADC3_values, 2/*ADC3_CHANNELS*/)) Error_Handler();
     123  if (HAL_OK != HAL_ADC_Start_DMA(&hadc3, (uint32_t*)&ADC3Data, ADC3_CHANNELS)) Error_Handler();
    106124  //__HAL_DMA_DISABLE_IT(&hdma_adc3, DMA_IT_HT);
    107125
  • ctrl/firmware/Main/CubeMX/Core/Src/main.c

    r94 r96  
    2323#include "bdma.h"
    2424#include "dma.h"
     25#include "dts.h"
    2526#include "fatfs.h"
    2627#include "i2c.h"
     
    145146  MX_I2C1_Init();
    146147  MX_USART3_UART_Init();
     148  MX_DTS_Init();
    147149  /* USER CODE BEGIN 2 */
    148150
  • ctrl/firmware/Main/CubeMX/charger.ioc

    r95 r96  
    11#MicroXplorer Configuration settings - do not modify
    22ADC3.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_10
    3 ADC3.Channel-1\#ChannelRegularConversion=ADC_CHANNEL_TEMPSENSOR
     3ADC3.Channel-1\#ChannelRegularConversion=ADC_CHANNEL_VBAT
     4ADC3.Channel-2\#ChannelRegularConversion=ADC_CHANNEL_TEMPSENSOR
     5ADC3.Channel-4\#ChannelRegularConversion=ADC_CHANNEL_VREFINT
    46ADC3.ClockPrescalerADC3=ADC_CLOCK_ASYNC_DIV256
    57ADC3.ContinuousConvMode=ENABLE
     
    79ADC3.DMAContinuousRequests=ENABLE
    810ADC3.EOCSelection=ADC_EOC_SEQ_CONV
    9 ADC3.IPParameters=Rank-0\#ChannelRegularConversion,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,OffsetNumber-0\#ChannelRegularConversion,OffsetSign-0\#ChannelRegularConversion,NbrOfConversionFlag,ContinuousConvMode,DMAContinuousRequests,EOCSelection,Overrun,OversamplingMode,ClockPrescalerADC3,Ratio,NbrOfConversion,RightBitShift,ConversionDataManagement,Rank-1\#ChannelRegularConversion,Channel-1\#ChannelRegularConversion,SamplingTime-1\#ChannelRegularConversion,OffsetNumber-1\#ChannelRegularConversion,OffsetSign-1\#ChannelRegularConversion
    10 ADC3.NbrOfConversion=2
     11ADC3.IPParameters=Rank-0\#ChannelRegularConversion,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,OffsetNumber-0\#ChannelRegularConversion,OffsetSign-0\#ChannelRegularConversion,NbrOfConversionFlag,ContinuousConvMode,DMAContinuousRequests,EOCSelection,Overrun,OversamplingMode,ClockPrescalerADC3,Ratio,NbrOfConversion,RightBitShift,ConversionDataManagement,Rank-1\#ChannelRegularConversion,Channel-1\#ChannelRegularConversion,SamplingTime-1\#ChannelRegularConversion,OffsetNumber-1\#ChannelRegularConversion,OffsetSign-1\#ChannelRegularConversion,Rank-2\#ChannelRegularConversion,Channel-2\#ChannelRegularConversion,SamplingTime-2\#ChannelRegularConversion,OffsetNumber-2\#ChannelRegularConversion,OffsetSign-2\#ChannelRegularConversion,Rank-4\#ChannelRegularConversion,Channel-4\#ChannelRegularConversion,SamplingTime-4\#ChannelRegularConversion,OffsetNumber-4\#ChannelRegularConversion,OffsetSign-4\#ChannelRegularConversion
     12ADC3.NbrOfConversion=4
    1113ADC3.NbrOfConversionFlag=1
    1214ADC3.OffsetNumber-0\#ChannelRegularConversion=ADC_OFFSET_NONE
    1315ADC3.OffsetNumber-1\#ChannelRegularConversion=ADC_OFFSET_NONE
     16ADC3.OffsetNumber-2\#ChannelRegularConversion=ADC_OFFSET_NONE
     17ADC3.OffsetNumber-4\#ChannelRegularConversion=ADC_OFFSET_NONE
    1418ADC3.OffsetSign-0\#ChannelRegularConversion=ADC3_OFFSET_SIGN_NEGATIVE
    1519ADC3.OffsetSign-1\#ChannelRegularConversion=ADC3_OFFSET_SIGN_NEGATIVE
     20ADC3.OffsetSign-2\#ChannelRegularConversion=ADC3_OFFSET_SIGN_NEGATIVE
     21ADC3.OffsetSign-4\#ChannelRegularConversion=ADC3_OFFSET_SIGN_NEGATIVE
    1622ADC3.Overrun=ADC_OVR_DATA_OVERWRITTEN
    1723ADC3.OversamplingMode=ENABLE
    1824ADC3.Rank-0\#ChannelRegularConversion=1
    1925ADC3.Rank-1\#ChannelRegularConversion=2
     26ADC3.Rank-2\#ChannelRegularConversion=3
     27ADC3.Rank-4\#ChannelRegularConversion=4
    2028ADC3.Ratio=ADC3_OVERSAMPLING_RATIO_256
    2129ADC3.RightBitShift=ADC_RIGHTBITSHIFT_8
    2230ADC3.SamplingTime-0\#ChannelRegularConversion=ADC3_SAMPLETIME_640CYCLES_5
    2331ADC3.SamplingTime-1\#ChannelRegularConversion=ADC3_SAMPLETIME_640CYCLES_5
     32ADC3.SamplingTime-2\#ChannelRegularConversion=ADC3_SAMPLETIME_640CYCLES_5
     33ADC3.SamplingTime-4\#ChannelRegularConversion=ADC3_SAMPLETIME_640CYCLES_5
    2434Bdma.ADC3.0.Direction=DMA_PERIPH_TO_MEMORY
    2535Bdma.ADC3.0.EventEnable=DISABLE
     
    344354Mcu.Pin56=PB9
    345355Mcu.Pin57=VP_ADC3_TempSens_Input
    346 Mcu.Pin58=VP_DTS_VS-DTS
    347 Mcu.Pin59=VP_FATFS_VS_SDIO
     356Mcu.Pin58=VP_ADC3_Vref_Input
     357Mcu.Pin59=VP_ADC3_Vbat_Input
    348358Mcu.Pin6=PF1
    349 Mcu.Pin60=VP_FREERTOS_VS_CMSIS_V2
    350 Mcu.Pin61=VP_RTC_VS_RTC_Activate
    351 Mcu.Pin62=VP_RTC_VS_RTC_Calendar
    352 Mcu.Pin63=VP_SYS_VS_tim7
    353 Mcu.Pin64=VP_TIM3_VS_ClockSourceINT
    354 Mcu.Pin65=VP_TIM6_VS_ClockSourceINT
    355 Mcu.Pin66=VP_TIM8_VS_ControllerModeReset
    356 Mcu.Pin67=VP_TIM8_VS_ClockSourceINT
    357 Mcu.Pin68=VP_VREFBUF_V_VREFBUF
    358 Mcu.Pin69=VP_MEMORYMAP_VS_MEMORYMAP
     359Mcu.Pin60=VP_DTS_VS-DTS
     360Mcu.Pin61=VP_FATFS_VS_SDIO
     361Mcu.Pin62=VP_FREERTOS_VS_CMSIS_V2
     362Mcu.Pin63=VP_RTC_VS_RTC_Activate
     363Mcu.Pin64=VP_RTC_VS_RTC_Calendar
     364Mcu.Pin65=VP_SYS_VS_tim7
     365Mcu.Pin66=VP_TIM3_VS_ClockSourceINT
     366Mcu.Pin67=VP_TIM6_VS_ClockSourceINT
     367Mcu.Pin68=VP_TIM8_VS_ControllerModeReset
     368Mcu.Pin69=VP_TIM8_VS_ClockSourceINT
    359369Mcu.Pin7=PH0-OSC_IN
    360 Mcu.Pin70=VP_STMicroelectronics.X-CUBE-EEPRMA1_VS_BoardOoPartJjEEPROM_5.1.0_5.1.0
     370Mcu.Pin70=VP_VREFBUF_V_VREFBUF
     371Mcu.Pin71=VP_MEMORYMAP_VS_MEMORYMAP
     372Mcu.Pin72=VP_STMicroelectronics.X-CUBE-EEPRMA1_VS_BoardOoPartJjEEPROM_5.1.0_5.1.0
    361373Mcu.Pin8=PH1-OSC_OUT
    362374Mcu.Pin9=PC0
    363 Mcu.PinsNb=71
     375Mcu.PinsNb=73
    364376Mcu.ThirdParty0=STMicroelectronics.X-CUBE-AZRTOS-H7.3.3.0
    365377Mcu.ThirdParty1=STMicroelectronics.X-CUBE-EEPRMA1.5.1.0
     
    653665ProjectManager.UAScriptBeforePath=
    654666ProjectManager.UnderRoot=true
    655 ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-MX_BDMA_Init-BDMA-false-HAL-true,4-MX_RTC_Init-RTC-false-HAL-true,5-MX_SPI4_Init-SPI4-false-HAL-true,6-MX_SDMMC1_SD_Init-SDMMC1-false-HAL-true,7-SystemClock_Config-RCC-false-HAL-false,8-MX_FATFS_Init-FATFS-false-HAL-false,9-MX_TIM8_Init-TIM8-false-HAL-true,10-MX_SPI2_Init-SPI2-false-HAL-true,11-MX_USART2_UART_Init-USART2-false-HAL-true,12-MX_USART10_UART_Init-USART10-false-HAL-true,13-MX_TIM6_Init-TIM6-false-HAL-true,14-MX_I2C2_Init-I2C2-false-HAL-true,15-MX_ADC3_Init-ADC3-false-HAL-true,16-MX_TIM3_Init-TIM3-false-HAL-true,17-MX_I2C1_Init-I2C1-false-HAL-true,18-MX_USART3_UART_Init-USART3-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true,0-MX_VREFBUF_Init-VREFBUF-false-HAL-true
     667ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-MX_BDMA_Init-BDMA-false-HAL-true,4-MX_RTC_Init-RTC-false-HAL-true,5-MX_SPI4_Init-SPI4-false-HAL-true,6-MX_SDMMC1_SD_Init-SDMMC1-false-HAL-true,7-SystemClock_Config-RCC-false-HAL-false,8-MX_FATFS_Init-FATFS-false-HAL-false,9-MX_TIM8_Init-TIM8-false-HAL-true,10-MX_SPI2_Init-SPI2-false-HAL-true,11-MX_USART2_UART_Init-USART2-false-HAL-true,12-MX_USART10_UART_Init-USART10-false-HAL-true,13-MX_TIM6_Init-TIM6-false-HAL-true,14-MX_I2C2_Init-I2C2-false-HAL-true,15-MX_ADC3_Init-ADC3-false-HAL-true,16-MX_TIM3_Init-TIM3-false-HAL-true,17-MX_I2C1_Init-I2C1-false-HAL-true,18-MX_USART3_UART_Init-USART3-false-HAL-true,19-MX_DTS_Init-DTS-false-HAL-true,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true,0-MX_VREFBUF_Init-VREFBUF-false-HAL-true
    656668RCC.ADCCLockSelection=RCC_ADCCLKSOURCE_PLL3
    657669RCC.ADCFreq_Value=60000000
     
    830842VP_ADC3_TempSens_Input.Mode=IN-TempSens
    831843VP_ADC3_TempSens_Input.Signal=ADC3_TempSens_Input
     844VP_ADC3_Vbat_Input.Mode=IN-Vbat
     845VP_ADC3_Vbat_Input.Signal=ADC3_Vbat_Input
     846VP_ADC3_Vref_Input.Mode=IN-Vrefint
     847VP_ADC3_Vref_Input.Signal=ADC3_Vref_Input
    832848VP_DTS_VS-DTS.Mode=DTS
    833849VP_DTS_VS-DTS.Signal=DTS_VS-DTS
Note: See TracChangeset for help on using the changeset viewer.