cancel
Showing results for 
Search instead for 
Did you mean: 

HAL fails to switch VRef from internal to external H743

Robmar
Senior III

Changing VRef source would seem simple, but it doesn't work, there is no change in the levels the ADC records.

 

__HAL_RCC_VREF_CLK_ENABLE();

HAL_SYSCFG_DisableVREFBUF(); // Disable the Internal Voltage Reference buffer, uses external 3.3v

HAL_SYSCFG_VREFBUF_HighImpedanceConfig(SYSCFG_VREFBUF_HIGH_IMPEDANCE_ENABLE);

 

What could stop this code from switching from Internal to external VRef+?

 

1 REPLY 1
Robmar
Senior III

The VRef source selection code is now working, I have no idea why it didn't work before.  I didn't changed the code, the only change was to update STM32CubeIDE and restart it.

What I have discovered though, is that the internal VRef is being affected by the internal ADC sampling rate of 384 KHz, and a sine-wave of 50mV peak-to-peak at that frequency is appearing on the VRef pin, and getting into the ADC samples and visible in the FFT data.

Switching to the external VRef input removes the interference from the ADC data, it can no longer be detected in the FFT data.

So it seems that the internal VRef is not very clean on the H743 MCU.

All in all, a lot of compromises, and ST doesn't seem to have any expert support available at this depth...or so it seems?

From AN5354 -

"Package impact 3.2
The reference voltage settling time can be degraded by the inductance of the package bonding. The package
adds a parasitic inductance on the VREF pin, increasing the VREF settling time. This limits the maximum
achievable ADC frequency."