ADC band gap Accuracy problem

i am facing accuracy problem for ADC band voltage, i have done below register settings based on that settings i can able to read 0.75v by multi-meter but the decimal values are i am getting in ADC->DATA_TRIM_CH is 7056, this decimal value is equal to 0.86v, so i am getting 100mv variation.

Calibrate_Power_VBG(0, (uint32_t *)&ADC->DATA_TRIM_CH[0],
75);

/* VTRIM for AOUT ADC channel /
/
Select AOUT option as Band gap regulator supply voltage */
// ACS->BG_CTRL = (BG_SLOPE_TRIM_VALUE | BG_TRIM_0P750V);

ACS->AOUT_CTRL = (DIO0_RTC_CLK_STOP_RISING |
DIO0_RTC_CLK_STOP_DIO0 |
DIO0_RTC_CLK_DISABLE |
AOUT_VREF_0P75V_BUF_OUTPUT);

if any other settings required to improve accuracy, please give your inputs.

Welcome to the Community Forum!

Have you checked the return value of the Calibrate_Power_VBG function is 0 indicating that it succeeded? Also be sure that the VBAT is 1.25V when performing the calibration.

In addition, the call to Calibrate_Power_VBG is incorrect. The third parameter is to be the expected measurement value of VBAT/2 in units of 10mV. With VBAT at 1.25V, this expected value should be 62, not 75. After calibration the value measured by the ADC will be VBAT/2, not VBG.

Lastly, please note that the Hardware Reference Manual states “This reference voltage is calibrated during production, and use of this calibrated setting is recommended for all use cases.”

1 Like