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.

 

6 REPLIES 6
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...

mƎALLEm
ST Employee

Hello,

I don't think there is something special on PB0 GPIO pin.

What board are you using? Did you check with another board? 

Are you sure there is nothing connected to PB0 externally except that NTC sensor?

Another possibility: an issue in the PCB if it's a custom board.

 

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.
durna
Senior

I should mention that I have more than one STM32H755 board and when I repeat the same process with another STM32H755 board I get the same result


@durna wrote:

I should mention that I have more than one STM32H755 board 


That's the chip and not a board.

What board are you suing a ST board a custom board?

+ Did you check the behavior by connecting a voltage source instead of that resistor bridge and see what happens?

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.
Andrew Neil
Super User

@durna wrote:

I'm using an STM32H755 microcontroller


On what board ?

 


@durna wrote:

I've noticed that ADC1_IN9 (PB0) consistently reports a temperature value that is ~3°C lower than the others.


Have you measured the voltage at that pin?

Preferably using an oscilloscope to check for noise, etc?

A complex system that works is invariably found to have evolved from a simple system that worked.
A complex system designed from scratch never works and cannot be patched up to make it work.
Ozone
Principal II

>- Swapped NTCs between channels — issue remains on PB0.

That would have been my first recommendation.

Have you checked the values of those "fixed resistors" in the divider network, especially for channel IN9 ?
Have you tried an external reference voltage on this and other channels ?