cancel
Showing results for 
Search instead for 
Did you mean: 

stm32G474 adc ground offset

Azeve.1
Associate

Hello,

I am having an issue with an offset on my ADC measurements. I am using the NUCLEO-G474RE, and I am using pin PA8 as the analogue input.

When I measure an analogue pin, the value measured is a bit higher than the actual values. (Actual values measured with multi-meter Agilent U1242B)

The values measured are outside of the 10bits error defined in the datasheet. These measurements have been done after the ADC internal calibration.

I tested this by connecting the ADC PA8 pin directly to ground. Followed by an ADC measurement, this measures 28 bits instead of the 10 that I expected as maximum error. This pin is connected to ADC5

When I measure the VREF_INT (ADC4) to do a comparison check, I get the following:

The stored calibration is 1668.

The calibration was done with VREF=3.0V(reference datasheet) and currently the Vref measured is VREF=3.262V

The ADC measures 1571 this is 1708 when compensated for the differences in VREF.

The difference between the ADC measurement and the calibration value is 40 bits.

I have two questions:

  1. Why is there a larger offset between ground and ADC measurement than the expected error?
  2. Can the VREF_INT be used to compensate for this difference? or is there a better method?

I have added the register overview of the ADC's used and the ADC_common register during these measurements.

1 REPLY 1
Igor Cesko
ST Employee

Hi Azeve.1 (Community Member) ,

Please check the ADC clock - if it is below maximum ADC clock (max ADC clock is 60MHz).

The ADC offset error is usually very small after ADC calibration (max 4 LSB ).

Please also check if you are waiting correctly for calibration finish (do not stop calibration before it is finished) . The ADC_CALFACT register contains offset calibration corrections which are set during ADC calibration - those factors are set to have offset at minimum level after calibration. You can change them also manually to see the effect of ADC offset (this is not solution - just test).

Regards

Igor