STM32H755 ADC1_IN9 (PB0) reads ~3°C lower than all other identical NTC circuits
Hi everyone,
I'm using an STM32H755 microcontroller to read 20 temperature sensors (NTC thermistors) via 20 ADC channels for a testing setup. Each thermistor is wired in a simple voltage divider circuit like this:
[VCC] -- [NTC] --+-- [Fixed Resistor] -- [GND]
|
[ADCx]
All 20 ADC inputs are configured identically (same sampling time, resolution, continuous mode disabled, calibration enabled). However, I've noticed that ADC1_IN9 (PB0) consistently reports a temperature value that is ~3°C lower than the others. The remaining 19 channels produce nearly identical readings under the same conditions. Same NTC , same RES.
Here’s what I’ve already checked:
- ADC sampling time is long enough (e.g. 64,5+ cycles).
- GPIO analog mode is properly set.
- No visible layout issues or external interference.
- Measurements are stable and repeatable — the deviation is not noise.
- Swapped NTCs between channels — issue remains on PB0.
This is quite puzzling.
- PB0 has an internal analog path that's affecting readings?
- There is an internal pull-up/down resistor interfering?
-PCB layout (corner pin?) or analog mux residue might be a factor?
Has anyone experienced similar behavior with STM32 ADC inputs — especially PB0 or ADC1_IN9?
Any insights would be highly appreciated!
Thanks in advance.
