cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H755 ADC1_IN9 (PB0) reads ~3°C lower than all other identical NTC circuits

durna
Senior

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.

 

1 REPLY 1
Uwe Bonnes
Principal III

I normally use a capacitor on every ADC input, a big one for slow signals and a small one for fasy signals. Probably you only have one board to test, so you can not be sure if maybe PA0 is somehow damagd on your chip or the PCB is leaky or what else. Check with even longer sampling, does it have influence on the difference? Is maybe the ground pin of the resistor connected to a ground line carrying much current so there is voltage drop? Are the neighbour pin perhaps switching synchronous to you ADC sampling? Did you change the sequence in which the ADC channels are sampled? Did you measure static voltage at the NTC pins with a good meter?

Many thinsg to check...