I want to decrease the reference voltage of the ADC to have a better resolution, by now I do not want to try other options.

Could someone explain me how can I do this? I am using the Nucleo-64 board STM32F030R8 and CubeMX to generate the code. Do I have to configure something in the programming code or I just need to provide the correspondent voltage to the right pin of the board?

  • 2
    \$\begingroup\$ (a) What is the ADC reference voltage that you would want to use, ideally? And, (b) if it is different to the previous answer, what is the highest ADC reference voltage that you would be able to accept, and still get the ADC resolution which you believe you need? \$\endgroup\$
    – SamGibson
    Commented Apr 26, 2019 at 14:13
  • \$\begingroup\$ Most LDOs and DC/DC converters have precision on the order of few percents while the ADC is 12 bit. 12 bit is 1/40th of 1%. It seems that even with increased precision your results won't be more accurate (looking at your MCU choice I assume you don't have any advanced signal processing going on). \$\endgroup\$
    – jaskij
    Commented Apr 27, 2019 at 0:34
  • \$\begingroup\$ @JanDorniak Forgive me if I'm wrong. You are mixing "precision" with "resolution". Resolution is the ratio between the maximum signal measured to the smallest change that can still be detected. Precision or should I say accuracy (I think people are mixing up these 2 words) is the amount of uncertainty in measurement with respect to an absolute standard. For voltage regulator/reference, the "absolute standard" is the "typical value" written in the datasheet. \$\endgroup\$
    – Long Pham
    Commented Apr 27, 2019 at 8:12
  • \$\begingroup\$ @LongPham I did, but "precision" and "accuracy" are different too! And I did use the wrong word (should be "accuracy") for LDOs. Still, what I wanted to say: if the LDO gives you a constant 10 mV off voltage reference (low accuracy) what's the point of having more than 1 mV resolution? \$\endgroup\$
    – jaskij
    Commented Apr 27, 2019 at 10:48

1 Answer 1


It appears that VREF+ and VREF- are internally tied to VDDA and GND. From the datasheet:

Figure 13. Power supply scheme from STM32F030R8 datasheet

The STM32F030R8 does have an internal voltage reference, but it can only be read by using an ADC input.

Since you do not want to try other options, the answer is: NO, you can't.

I said no because I'm assuming you're a newbie but actually, it can be done. Because VREF+ is connected to VDDA, you can change VDDA to change VREF. I've looked at the Nucleo board's User Manual:

Solder bridges

Desolder the SB57 solder bridge first and then connect an external reference to pin 8 of CN5. Make sure that the external reference can supply enough current because it will also have to power the analog section of the MCU.

However, there are some limitations/precautions (please read the datasheet):

1. VDD-VDDA ≤ 0.4V

This means if you want a smaller voltage reference, you may have to lower VDD.

2. VDDA_min = 2.4V

If you want to measure small signal, please consider to use an external ADC or amplifier.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.