2022-04-05 02:16 AM
I have a STM32WB35CEU7A. Vref doesn't provide a pin out, it's tied to Vdda internally. On my PCB Vdda is connected to Vdd.
The question is: The ADC will take into account the internal Vref or Vdda ? I suppose the latter please verify. If that is the case can the internal Vref (Vrefbuf) still be read to offset the error from Vdda ?
Thanks in advance
Solved! Go to Solution.
2022-04-05 05:33 AM
I guess I am confusing you with unnecessarily lengthy text. I might've just simply answered *both* your original questions as:
> The question is: The ADC will take into account the internal Vref or Vdda ? I suppose the latter please verify.
If "take into account" means "uses as its reference", than yes, it's the latter.
> If that is the case can the internal Vref (Vrefbuf) still be read to offset the error from Vdda ?
Yes.
JW
2022-04-05 02:36 AM
No, in packages where VREF+ is tied to VDDA, you must not use the options which would switch the internal reference (VREFBUF) to VREF+ pin.
JW
2022-04-05 05:08 AM
I found this which says you can actually read internal Vref even if it's tied to external Vdda. So this means that you can offset any error from Vdda since Vref int is known and calibrated.
Jimis
2022-04-05 05:26 AM
Oh, I know that text... I wrote it... :)
The confusion here arises from too many things being marked "VREF", although if you pay attention, there are differences between them - notably the plus mark in VREF+. Note, that I am trying - both in that text and here - to meticulously separate marking of the reference voltage to the ADC, which physically comes from the VREF+ pin/pad and I mark its value as vrefext in the text; from the voltage which physically comes from an internal bandgap reference, wich I marked vrefint there.
Now, in older STM32, the vrefint bandgap reference was connected only to a channel in ADC, nowhere else, so vrefint could be used only as an indirect reference, and there was no discussion like we're having there.
But then ST decided to extend the number of options, and provided an option to connect the vrefint bandgap reference through an amplifier (VREFBUF) to the VREF+ pad/pin, i.e. vrefint directly determining vrefext i.e. ADC's physical reference. However, this also implies, that VREF+ pin MUST NOT be connected to VDDA. So, in newer models which do have this VREFBUF connection, but the chosen package connects VREF+ to VDDA, you must not switch on that connection (it's switched off by default).
Even then, the internal connection of vrefin to one of the ADC channels is still maintained, so you still can use the the internal vrefin bandgap reference as an indirect source of precision, while ADC's physical reference vrefext is still VREF+ tied to VDDA - exactly as in the older STM models without the VREFBUF connection.
JW
2022-04-05 05:33 AM
I guess I am confusing you with unnecessarily lengthy text. I might've just simply answered *both* your original questions as:
> The question is: The ADC will take into account the internal Vref or Vdda ? I suppose the latter please verify.
If "take into account" means "uses as its reference", than yes, it's the latter.
> If that is the case can the internal Vref (Vrefbuf) still be read to offset the error from Vdda ?
Yes.
JW
2022-04-05 11:46 PM
Thanks for the reply JW that clarified things :)