mirror of
https://github.com/mitxela/clock4.git
synced 2025-12-05 23:20:26 -08:00
initial vbat reading using adc3
This commit is contained in:
@@ -50,6 +50,7 @@
|
||||
|
||||
/* Private variables ---------------------------------------------------------*/
|
||||
ADC_HandleTypeDef hadc1;
|
||||
ADC_HandleTypeDef hadc3;
|
||||
|
||||
CRC_HandleTypeDef hcrc;
|
||||
|
||||
@@ -96,6 +97,7 @@ static void MX_TIM7_Init(void);
|
||||
static void MX_CRC_Init(void);
|
||||
static void MX_LPTIM1_Init(void);
|
||||
static void MX_TIM5_Init(void);
|
||||
static void MX_ADC3_Init(void);
|
||||
/* USER CODE BEGIN PFP */
|
||||
void tmToBcd(struct tm *in, bcdStamp_t *out );
|
||||
uint8_t loadRulesSingle(char * str);
|
||||
@@ -1805,7 +1807,7 @@ int main(void)
|
||||
USART1->CR1 |= USART_CR1_UE;
|
||||
|
||||
|
||||
|
||||
MX_ADC3_Init();
|
||||
|
||||
// Configure ADC and DAC DMA for display brightness
|
||||
HAL_ADC_Start(&hadc1);
|
||||
@@ -1969,6 +1971,15 @@ int main(void)
|
||||
|
||||
monitor_vbus();
|
||||
|
||||
ADC123_COMMON->CCR |= ADC_CCR_VBATEN;
|
||||
HAL_Delay(5);
|
||||
HAL_ADC_Start(&hadc3);
|
||||
HAL_ADC_PollForConversion(&hadc3, 10);
|
||||
uint16_t vbat = HAL_ADC_GetValue(&hadc3) *3;
|
||||
ADC123_COMMON->CCR &= ~ADC_CCR_VBATEN;
|
||||
float vbatf = (float)vbat *0.0008034188034188035;//3.29/4095.0;
|
||||
sprintf(textDisplay,"bat %.4f",vbatf);
|
||||
|
||||
/* USER CODE END WHILE */
|
||||
|
||||
/* USER CODE BEGIN 3 */
|
||||
@@ -2112,6 +2123,67 @@ static void MX_ADC1_Init(void)
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief ADC3 Initialization Function
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
static void MX_ADC3_Init(void)
|
||||
{
|
||||
|
||||
/* USER CODE BEGIN ADC3_Init 0 */
|
||||
|
||||
/* USER CODE END ADC3_Init 0 */
|
||||
|
||||
ADC_ChannelConfTypeDef sConfig = {0};
|
||||
|
||||
/* USER CODE BEGIN ADC3_Init 1 */
|
||||
|
||||
LL_ADC_StartCalibration(ADC3, LL_ADC_SINGLE_ENDED);
|
||||
while (LL_ADC_IsCalibrationOnGoing(ADC3) != 0);
|
||||
|
||||
/* USER CODE END ADC3_Init 1 */
|
||||
/** Common config
|
||||
*/
|
||||
hadc3.Instance = ADC3;
|
||||
hadc3.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV1;
|
||||
hadc3.Init.Resolution = ADC_RESOLUTION_12B;
|
||||
hadc3.Init.DataAlign = ADC_DATAALIGN_RIGHT;
|
||||
hadc3.Init.ScanConvMode = ADC_SCAN_DISABLE;
|
||||
hadc3.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
|
||||
hadc3.Init.LowPowerAutoWait = DISABLE;
|
||||
hadc3.Init.ContinuousConvMode = DISABLE;
|
||||
hadc3.Init.NbrOfConversion = 1;
|
||||
hadc3.Init.DiscontinuousConvMode = DISABLE;
|
||||
hadc3.Init.NbrOfDiscConversion = 1;
|
||||
hadc3.Init.ExternalTrigConv = ADC_SOFTWARE_START;
|
||||
hadc3.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
|
||||
hadc3.Init.DMAContinuousRequests = DISABLE;
|
||||
hadc3.Init.Overrun = ADC_OVR_DATA_PRESERVED;
|
||||
hadc3.Init.OversamplingMode = DISABLE;
|
||||
|
||||
if (HAL_ADC_Init(&hadc3) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
/** Configure Regular Channel
|
||||
*/
|
||||
sConfig.Channel = ADC_CHANNEL_VBAT;
|
||||
sConfig.Rank = ADC_REGULAR_RANK_1;
|
||||
sConfig.SamplingTime = ADC_SAMPLETIME_92CYCLES_5;
|
||||
sConfig.SingleDiff = ADC_SINGLE_ENDED;
|
||||
sConfig.OffsetNumber = ADC_OFFSET_NONE;
|
||||
sConfig.Offset = 0;
|
||||
if (HAL_ADC_ConfigChannel(&hadc3, &sConfig) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
/* USER CODE BEGIN ADC3_Init 2 */
|
||||
ADC123_COMMON->CCR &= ~ADC_CCR_VBATEN;
|
||||
/* USER CODE END ADC3_Init 2 */
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief CRC Initialization Function
|
||||
* @param None
|
||||
|
||||
@@ -94,6 +94,8 @@ void HAL_MspInit(void)
|
||||
/* USER CODE END MspInit 1 */
|
||||
}
|
||||
|
||||
static uint32_t HAL_RCC_ADC_CLK_ENABLED=0;
|
||||
|
||||
/**
|
||||
* @brief ADC MSP Initialization
|
||||
* This function configures the hardware resources used in this example
|
||||
@@ -109,7 +111,10 @@ void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
|
||||
|
||||
/* USER CODE END ADC1_MspInit 0 */
|
||||
/* Peripheral clock enable */
|
||||
__HAL_RCC_ADC_CLK_ENABLE();
|
||||
HAL_RCC_ADC_CLK_ENABLED++;
|
||||
if(HAL_RCC_ADC_CLK_ENABLED==1){
|
||||
__HAL_RCC_ADC_CLK_ENABLE();
|
||||
}
|
||||
|
||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||
/**ADC1 GPIO Configuration
|
||||
@@ -124,6 +129,20 @@ void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
|
||||
|
||||
/* USER CODE END ADC1_MspInit 1 */
|
||||
}
|
||||
else if(hadc->Instance==ADC3)
|
||||
{
|
||||
/* USER CODE BEGIN ADC3_MspInit 0 */
|
||||
|
||||
/* USER CODE END ADC3_MspInit 0 */
|
||||
/* Peripheral clock enable */
|
||||
HAL_RCC_ADC_CLK_ENABLED++;
|
||||
if(HAL_RCC_ADC_CLK_ENABLED==1){
|
||||
__HAL_RCC_ADC_CLK_ENABLE();
|
||||
}
|
||||
/* USER CODE BEGIN ADC3_MspInit 1 */
|
||||
|
||||
/* USER CODE END ADC3_MspInit 1 */
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -141,7 +160,10 @@ void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
|
||||
|
||||
/* USER CODE END ADC1_MspDeInit 0 */
|
||||
/* Peripheral clock disable */
|
||||
__HAL_RCC_ADC_CLK_DISABLE();
|
||||
HAL_RCC_ADC_CLK_ENABLED--;
|
||||
if(HAL_RCC_ADC_CLK_ENABLED==0){
|
||||
__HAL_RCC_ADC_CLK_DISABLE();
|
||||
}
|
||||
|
||||
/**ADC1 GPIO Configuration
|
||||
PA5 ------> ADC1_IN10
|
||||
@@ -152,6 +174,20 @@ void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
|
||||
|
||||
/* USER CODE END ADC1_MspDeInit 1 */
|
||||
}
|
||||
else if(hadc->Instance==ADC3)
|
||||
{
|
||||
/* USER CODE BEGIN ADC3_MspDeInit 0 */
|
||||
|
||||
/* USER CODE END ADC3_MspDeInit 0 */
|
||||
/* Peripheral clock disable */
|
||||
HAL_RCC_ADC_CLK_ENABLED--;
|
||||
if(HAL_RCC_ADC_CLK_ENABLED==0){
|
||||
__HAL_RCC_ADC_CLK_DISABLE();
|
||||
}
|
||||
/* USER CODE BEGIN ADC3_MspDeInit 1 */
|
||||
|
||||
/* USER CODE END ADC3_MspDeInit 1 */
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -9,6 +9,15 @@ ADC1.Overrun=ADC_OVR_DATA_OVERWRITTEN
|
||||
ADC1.Rank-0\#ChannelRegularConversion=1
|
||||
ADC1.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_92CYCLES_5
|
||||
ADC1.master=1
|
||||
ADC3.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_VBAT
|
||||
ADC3.IPParameters=Rank-0\#ChannelRegularConversion,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,OffsetNumber-0\#ChannelRegularConversion,NbrOfConversionFlag
|
||||
ADC3.NbrOfConversionFlag=1
|
||||
ADC3.OffsetNumber-0\#ChannelRegularConversion=ADC_OFFSET_NONE
|
||||
ADC3.Rank-0\#ChannelRegularConversion=1
|
||||
ADC3.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_2CYCLES_5
|
||||
CAD.formats=
|
||||
CAD.pinconfig=
|
||||
CAD.provider=
|
||||
CRC.IPParameters=InputDataInversionMode,OutputDataInversionMode,InputDataFormat
|
||||
CRC.InputDataFormat=CRC_INPUTDATA_FORMAT_WORDS
|
||||
CRC.InputDataInversionMode=CRC_INPUTDATA_INVERSION_BYTE
|
||||
@@ -94,28 +103,30 @@ FATFS._MIN_SS=4096
|
||||
File.Version=6
|
||||
GPIO.groupedBy=Group By Peripherals
|
||||
KeepUserPlacement=false
|
||||
Mcu.CPN=STM32L476RGT3
|
||||
Mcu.Family=STM32L4
|
||||
Mcu.IP0=ADC1
|
||||
Mcu.IP1=CRC
|
||||
Mcu.IP10=SYS
|
||||
Mcu.IP11=TIM1
|
||||
Mcu.IP12=TIM2
|
||||
Mcu.IP13=TIM5
|
||||
Mcu.IP14=TIM6
|
||||
Mcu.IP15=TIM7
|
||||
Mcu.IP16=USART1
|
||||
Mcu.IP17=USART2
|
||||
Mcu.IP18=USB_DEVICE
|
||||
Mcu.IP19=USB_OTG_FS
|
||||
Mcu.IP2=DAC1
|
||||
Mcu.IP3=DMA
|
||||
Mcu.IP4=FATFS
|
||||
Mcu.IP5=LPTIM1
|
||||
Mcu.IP6=NVIC
|
||||
Mcu.IP7=QUADSPI
|
||||
Mcu.IP8=RCC
|
||||
Mcu.IP9=RTC
|
||||
Mcu.IPNb=20
|
||||
Mcu.IP1=ADC3
|
||||
Mcu.IP10=RTC
|
||||
Mcu.IP11=SYS
|
||||
Mcu.IP12=TIM1
|
||||
Mcu.IP13=TIM2
|
||||
Mcu.IP14=TIM5
|
||||
Mcu.IP15=TIM6
|
||||
Mcu.IP16=TIM7
|
||||
Mcu.IP17=USART1
|
||||
Mcu.IP18=USART2
|
||||
Mcu.IP19=USB_DEVICE
|
||||
Mcu.IP2=CRC
|
||||
Mcu.IP20=USB_OTG_FS
|
||||
Mcu.IP3=DAC1
|
||||
Mcu.IP4=DMA
|
||||
Mcu.IP5=FATFS
|
||||
Mcu.IP6=LPTIM1
|
||||
Mcu.IP7=NVIC
|
||||
Mcu.IP8=QUADSPI
|
||||
Mcu.IP9=RCC
|
||||
Mcu.IPNb=21
|
||||
Mcu.Name=STM32L476R(C-E-G)Tx
|
||||
Mcu.Package=LQFP64
|
||||
Mcu.Pin0=PC13
|
||||
@@ -159,51 +170,52 @@ Mcu.Pin42=PB6
|
||||
Mcu.Pin43=PB7
|
||||
Mcu.Pin44=PB8
|
||||
Mcu.Pin45=PB9
|
||||
Mcu.Pin46=VP_CRC_VS_CRC
|
||||
Mcu.Pin47=VP_FATFS_VS_Generic
|
||||
Mcu.Pin48=VP_LPTIM1_VS_LPTIM_counterModeInternalClock
|
||||
Mcu.Pin49=VP_RTC_VS_RTC_Activate
|
||||
Mcu.Pin46=VP_ADC3_Vbat_Input
|
||||
Mcu.Pin47=VP_CRC_VS_CRC
|
||||
Mcu.Pin48=VP_FATFS_VS_Generic
|
||||
Mcu.Pin49=VP_LPTIM1_VS_LPTIM_counterModeInternalClock
|
||||
Mcu.Pin5=PC0
|
||||
Mcu.Pin50=VP_SYS_VS_Systick
|
||||
Mcu.Pin51=VP_TIM1_VS_ClockSourceINT
|
||||
Mcu.Pin52=VP_TIM5_VS_ClockSourceINT
|
||||
Mcu.Pin53=VP_TIM5_VS_no_output1
|
||||
Mcu.Pin54=VP_TIM5_VS_no_output2
|
||||
Mcu.Pin55=VP_TIM6_VS_ClockSourceINT
|
||||
Mcu.Pin56=VP_TIM7_VS_ClockSourceINT
|
||||
Mcu.Pin57=VP_USB_DEVICE_VS_USB_DEVICE_MSC_FS
|
||||
Mcu.Pin50=VP_RTC_VS_RTC_Activate
|
||||
Mcu.Pin51=VP_SYS_VS_Systick
|
||||
Mcu.Pin52=VP_TIM1_VS_ClockSourceINT
|
||||
Mcu.Pin53=VP_TIM5_VS_ClockSourceINT
|
||||
Mcu.Pin54=VP_TIM5_VS_no_output1
|
||||
Mcu.Pin55=VP_TIM5_VS_no_output2
|
||||
Mcu.Pin56=VP_TIM6_VS_ClockSourceINT
|
||||
Mcu.Pin57=VP_TIM7_VS_ClockSourceINT
|
||||
Mcu.Pin58=VP_USB_DEVICE_VS_USB_DEVICE_MSC_FS
|
||||
Mcu.Pin6=PC1
|
||||
Mcu.Pin7=PC2
|
||||
Mcu.Pin8=PC3
|
||||
Mcu.Pin9=PA0
|
||||
Mcu.PinsNb=58
|
||||
Mcu.PinsNb=59
|
||||
Mcu.ThirdPartyNb=0
|
||||
Mcu.UserConstants=
|
||||
Mcu.UserName=STM32L476RGTx
|
||||
MxCube.Version=5.6.0
|
||||
MxDb.Version=DB.5.0.60
|
||||
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
|
||||
NVIC.DMA1_Channel3_IRQn=true\:1\:0\:true\:false\:true\:false\:true
|
||||
NVIC.DMA1_Channel4_IRQn=true\:0\:0\:false\:false\:true\:false\:true
|
||||
NVIC.DMA1_Channel5_IRQn=true\:0\:0\:false\:false\:true\:false\:true
|
||||
NVIC.DMA1_Channel6_IRQn=true\:0\:0\:false\:false\:true\:false\:true
|
||||
NVIC.DMA1_Channel7_IRQn=true\:0\:0\:false\:false\:true\:false\:true
|
||||
NVIC.DMA2_Channel4_IRQn=true\:0\:0\:false\:false\:true\:false\:true
|
||||
NVIC.DMA2_Channel5_IRQn=true\:0\:0\:false\:false\:true\:false\:true
|
||||
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false
|
||||
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||
NVIC.DMA1_Channel3_IRQn=true\:1\:0\:true\:false\:true\:false\:true\:true
|
||||
NVIC.DMA1_Channel4_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
|
||||
NVIC.DMA1_Channel5_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
|
||||
NVIC.DMA1_Channel6_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
|
||||
NVIC.DMA1_Channel7_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
|
||||
NVIC.DMA2_Channel4_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
|
||||
NVIC.DMA2_Channel5_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
|
||||
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||
NVIC.ForceEnableDMAVector=true
|
||||
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
|
||||
NVIC.LPTIM1_IRQn=true\:1\:0\:true\:false\:true\:true\:true
|
||||
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false
|
||||
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false
|
||||
NVIC.OTG_FS_IRQn=true\:1\:0\:true\:false\:true\:false\:true
|
||||
NVIC.PendSV_IRQn=true\:2\:0\:true\:false\:true\:false\:false
|
||||
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||
NVIC.LPTIM1_IRQn=true\:1\:0\:true\:false\:true\:true\:true\:true
|
||||
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||
NVIC.OTG_FS_IRQn=true\:1\:0\:true\:false\:true\:false\:true\:true
|
||||
NVIC.PendSV_IRQn=true\:2\:0\:true\:false\:true\:false\:false\:false
|
||||
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
|
||||
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false
|
||||
NVIC.SysTick_IRQn=true\:0\:0\:true\:false\:false\:false\:false
|
||||
NVIC.USART1_IRQn=true\:1\:0\:true\:false\:true\:true\:false
|
||||
NVIC.USART2_IRQn=true\:0\:0\:false\:false\:true\:true\:true
|
||||
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
|
||||
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||
NVIC.SysTick_IRQn=true\:0\:0\:true\:false\:false\:false\:false\:false
|
||||
NVIC.USART1_IRQn=true\:1\:0\:true\:false\:true\:true\:false\:true
|
||||
NVIC.USART2_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
|
||||
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||
PA0.Signal=S_TIM2_CH1
|
||||
PA1.Signal=S_TIM2_CH2
|
||||
PA10.Mode=Asynchronous
|
||||
@@ -322,10 +334,13 @@ ProjectManager.PreviousToolchain=
|
||||
ProjectManager.ProjectBuild=false
|
||||
ProjectManager.ProjectFileName=mk4-time.ioc
|
||||
ProjectManager.ProjectName=mk4-time
|
||||
ProjectManager.ProjectStructure=
|
||||
ProjectManager.RegisterCallBack=
|
||||
ProjectManager.StackSize=0x400
|
||||
ProjectManager.TargetToolchain=STM32CubeIDE
|
||||
ProjectManager.ToolChainLocation=
|
||||
ProjectManager.UAScriptAfterPath=
|
||||
ProjectManager.UAScriptBeforePath=
|
||||
ProjectManager.UnderRoot=true
|
||||
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-SystemClock_Config-RCC-false-HAL-false,4-MX_QUADSPI_Init-QUADSPI-false-HAL-true,5-MX_TIM1_Init-TIM1-false-HAL-true,6-MX_USART2_UART_Init-USART2-false-HAL-true,7-MX_FATFS_Init-FATFS-false-HAL-false,8-MX_USB_DEVICE_Init-USB_DEVICE-false-HAL-false,9-MX_USART1_UART_Init-USART1-false-HAL-true,10-MX_TIM2_Init-TIM2-false-HAL-true,11-MX_ADC1_Init-ADC1-false-HAL-true,12-MX_DAC1_Init-DAC1-false-HAL-true,13-MX_TIM6_Init-TIM6-false-HAL-true,14-MX_RTC_Init-RTC-true-HAL-true,15-MX_TIM7_Init-TIM7-false-HAL-true,16-MX_CRC_Init-CRC-false-HAL-true,17-MX_LPTIM1_Init-LPTIM1-false-LL-true,18-MX_TIM5_Init-TIM5-false-HAL-true
|
||||
QUADSPI.ClockPrescaler-Single\ Bank=0
|
||||
@@ -445,6 +460,8 @@ USB_DEVICE.VirtualMode=Msc
|
||||
USB_DEVICE.VirtualModeFS=Msc_FS
|
||||
USB_OTG_FS.IPParameters=VirtualMode
|
||||
USB_OTG_FS.VirtualMode=Device_Only
|
||||
VP_ADC3_Vbat_Input.Mode=IN-Vbat
|
||||
VP_ADC3_Vbat_Input.Signal=ADC3_Vbat_Input
|
||||
VP_CRC_VS_CRC.Mode=CRC_Activate
|
||||
VP_CRC_VS_CRC.Signal=CRC_VS_CRC
|
||||
VP_FATFS_VS_Generic.Mode=User_defined
|
||||
@@ -470,3 +487,4 @@ VP_TIM7_VS_ClockSourceINT.Signal=TIM7_VS_ClockSourceINT
|
||||
VP_USB_DEVICE_VS_USB_DEVICE_MSC_FS.Mode=MSC_FS
|
||||
VP_USB_DEVICE_VS_USB_DEVICE_MSC_FS.Signal=USB_DEVICE_VS_USB_DEVICE_MSC_FS
|
||||
board=custom
|
||||
isbadioc=false
|
||||
|
||||
Reference in New Issue
Block a user