cancel
Showing results for 
Search instead for 
Did you mean: 

STM32C011F4P6 internal Vref for ADC?

Glodhi
Associate II

Hi ST team,

  • Is VREFINT in STM32C011F4P6 internally fixed and stable, independent of VDDA fluctuations?

  • If VDDA fluctuates (for example due to LDO load or battery discharge), will the ADC raw readings change proportionally because ADC reference = VDDA?

  • Is it officially recommended for STM32C0 users to read VREFINT periodically and compute real VDDA to correct all ADC channels, especially when VDDA is not stable?

 Example : - ADC accuracy change if VDDA fluctuation like 3.3v to 2.9v. ? or it can take ref from Vrefint ?

7 REPLIES 7
mƎALLEm
ST Employee

Hello,

This knowledge base article could help you: How to use the STM32 ADC's internal reference voltage

 

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.
Ozone
Principal III

> Is VREFINT in STM32C011F4P6 internally fixed and stable, independent of VDDA fluctuations?

> If VDDA fluctuates (for example due to LDO load or battery discharge), will the ADC raw readings change proportionally because ADC reference = VDDA?

If I'm not mistaken, the C011F4P6 comes in a TSSOP package, which has no separate VDD and VDDA pins.
In other words, VDD and VDDA are most probably the same voltage, and other MCU operations affecting the current draw will influence Vref.

If this is correct and the induced tolerances are unacceptable, use an external ADC (or a different package with separate VDDA).

Hi , 

We did not want to use any external adc , just want to confirm when mcu Vdd supply have fluctuation that means it can also affect Vref internal voltage so based on that ADC value accuracy affect there is any package which cannot affect the ADC value if MCU supply have fluctuation please suggest?

 

TDK
Super User

> Is VREFINT in STM32C011F4P6 internally fixed and stable, independent of VDDA fluctuations?

Roughly, yes. It's not a precision regulator, but it won't change if VDD goes from 2.9 to 3.1. See the datasheet.

> If VDDA fluctuates (for example due to LDO load or battery discharge), will the ADC raw readings change proportionally because ADC reference = VDDA?

Yes.

> Is it officially recommended for STM32C0 users to read VREFINT periodically and compute real VDDA to correct all ADC channels, especially when VDDA is not stable?

I'm not an official, but I would recommend it.

If you feel a post has answered your question, please click "Accept as Solution".
Glodhi
Associate II

Is it officially recommended for STM32C0 users to read VREFINT periodically and compute real VDDA to correct all ADC channels, especially when VDDA is not stable?
as you recommend periodically reading, I think it's not possible because if we set some threshold for example on raw reading 500 if its reference change then raw set threshold will not compare as we set raw reading also need to change according to what is reference right? 

> ... please suggest?

Like poster TDK, I am not affiliated with ST in any way, and do not represent ST.

You need to make those assessments and decisions yourself.
Especially since nobody else here has access to the hardware in question.

This doesn't need to be terribly compilcated.

If VREF+ is not stable, add VREFINT to your channels that are monitored, do a crazy amount of oversampling on it, and use it in all calculations.

 

If VREF+ is wildly unstable, the ADC is not going to be accurate regardless. But if it's dropping off slowly like it would with a battery, this can work.

If you feel a post has answered your question, please click "Accept as Solution".