2025-10-02 7:00 AM - edited 2025-10-02 7:09 AM
Hi everyone,
first, our setup: We're currently developing a custom-made board using STM32U375CGU6Q. We've configured the ADC1 for continuous scan conversion of 9 channels - VSENSE (int. temp. sensor) being one of them - and use the GPDMA to transfer the data into a buffer array. Using FreeRTOS, we have a task that regularly checks the temperature. VDD is supplied by a 3.3 V regulator, VDDA/VREF+ via a 2.048 V reference with up to 20 mA output current, VDD11 is using the SMPS (circuitry for SMPS is basically a copy-paste from the NUCLEO-U385RG-Q). Since there is currently a bug in CubeIDE regarding U3 PWR, we start up with the internal LDO enabled, then switch to SMPS using
HAL_PWREx_ConfigSupply(PWR_SMPS_SUPPLY)
straight after
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* Configure the system clock */
SystemClock_Config();
The problem is this: The temperature readout will work properly for some time after power up (raw value of about 1450 @ 12 Bit ADC / 2048 mV ≙ about 26 °C), then start to drop, initially very slowly, then more quickly until the raw value read back by the ADC reaches and stays at 0 (which would be a temperature around -280 °C, which is *slightly* implausible). How fast this drop in general will occur is somewhat random, but generally, a quick power cycle will fix it for some time.
However, the other 8 channels (from the continuous scan) are still properly digitized and stay at their expected values (about mid-range).
I've tested reading out the VSENSE with both ADC1 and ADC2, which leads to ADC2 mostly staying at sensible values (however, with some sporadic dips to 0) but ADC1 still seeing the degradation to 0.
We have tried with multiple boards and the problem has occurred on multiple boards, however it doesn't always happen (or can sometimes take some time to manifest).
Are there some caveats when using this 3.3 VDD / 2.048 VDDA/VREF+ combo that the regular project creation in CubeIDE/CubeMX doesn't cover or we missed? I've read something about an internal power distribution booster when operating at low voltages, but I've not found a comprehensive guide about that so far (which might, of course, be a "skill issue" on my part), is that something that could be relevant?
Best regards
cjb89