32 lines
805 B
C
32 lines
805 B
C
/*
|
|
* Copyright (c) 2021 STMicroelectronics
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#include <zephyr/kernel.h>
|
|
#include <zephyr/init.h>
|
|
#include <stm32_ll_adc.h>
|
|
#include <zephyr/devicetree.h>
|
|
|
|
static int enable_adc_reference(void)
|
|
{
|
|
uint8_t init_status;
|
|
/* VREF+ is not connected to VDDA by default */
|
|
/* Use 2.5V as reference (instead of 3.3V) for internal channels
|
|
* calculation
|
|
*/
|
|
__HAL_RCC_SYSCFG_CLK_ENABLE();
|
|
|
|
/* VREF_OUT2 = 2.5 V */
|
|
HAL_SYSCFG_VREFBUF_VoltageScalingConfig(SYSCFG_VREFBUF_VOLTAGE_SCALE1);
|
|
HAL_SYSCFG_VREFBUF_HighImpedanceConfig(
|
|
SYSCFG_VREFBUF_HIGH_IMPEDANCE_DISABLE);
|
|
|
|
init_status = HAL_SYSCFG_EnableVREFBUF();
|
|
__ASSERT(init_status == HAL_OK, "ADC Conversion value may be incorrect");
|
|
|
|
return init_status;
|
|
}
|
|
|
|
SYS_INIT(enable_adc_reference, POST_KERNEL, 0);
|