cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H743 Vrefint value is always read as 0xFFFF

OIrin.1
Associate II

Hello to everyone,

I have encountered a problem trying to work with ADC data on STM32H743 chip. When I read VREFINT value (19th ADC input channel) I always see 0xFFFF. Data on other channels look slightly more adequate (at least they are changed depending on the voltage applied to corresponding inputs). TEMP channel also gives a strange value after recalculations (about 900 degrees). I've got two identical boards and each board gives the same result. The channels are enabled. I tried to read the channels directly in polling mode as well as using DMA, but always got 0xFFFF from VREFINT channel.

Some time ago I worked with another board with STM32H743 and everything was OK there with VREFINT. I have never run into such a problem with other STM32 chips I worked with.

I checked VDDA, Vref+ and VSSA lines, they seem to be good and the pins are soldered to this lines without any defects.

Has anybody meet this situation before? I really appreciate your help.

Oleg

6 REPLIES 6

VREFINT needs to be switched on in some STM32. Also, it is not available in all ADCs in models with multiple ADC. I don't know how these details are implemented in 'H7, check RM.

JW

 

PS.

waclawekjan_0-1701944470063.png

 

Thank you for your attention to the issue. Yes,Vref is enabled. Actually I work with this the same way as I did on a previous board with STM32H743, where it worked without any problems. Moreover, I has just discovered that if I program this project to NUCLEO-H743ZI2 I get proper VREF values (around 0x627E).

I though the problem was in a faulty MCU on the board. But two boards behaves the same way, so now I think the MCU is not the case.
Can there be something with the schematics or the PCB?

 

Oleg

TDK
Guru

Let's look at the bigger picture.

  • Custom board
  • Other ADC channels also look incorrect, including temperature.
  • Code works on known good hardware.

Magic 8 ball says that your hardware is faulty. Certainly doesn't sound like a VREFINT-specific thing. Perhaps the schematic would shed some light.

General hardware advice:

  • Check all VDD(A)/VSS(A) pins.
  • Check VCAP pins for correct voltage.
  • Ensure decoupling on VREF+.
If you feel a post has answered your question, please click "Accept as Solution".

> Can there be something with the schematics or the PCB?

Maybe.

Start with checking whether *all* VSS and VDD (including analog) are properly physically connected (think not only errors in design, but also bad solder joints, although with two boards the latter is less likely). Check also VREF+ and if present on your package, VREF- connections.

If VDD is below 2.7V, check also the analog switch booster settings.

Generally, think about what the differences between the two boards are.

JW

 

One more thing, do you attempt to use VREFBUF?

You may want to tell us more about details of your hardware, for further discussion.

JW

FBL
ST Employee

Hello @OIrin.1 , 

If you would like to improve VREFBUF with internal VREFINT and ADC, you can check this AN5690 

More VREFBUF application examples are provided as well for reference.

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.