cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F779NI internal ADC accuracy

A3
Associate III

I am using internal ADC of STM32F779NI connected to LMT86 Temperature sensor.

Vref is 3.3v and ADC resolution used is 10-bit.

The problem is there is always a difference with the expected ADC and the actual ADC for a given voltage. This difference is lower at a lower voltage and increases with higher voltage.

E.g At 1505 mv, calculated ADC is 467, but the generated ADC value is 458; difference of 9.

At 3023 mv, calculated ADC is 938 but the generated ADC value is 922; difference of 16.

Find below some more readings:

Input Voltage Generated ADC Value Calculated/Expected ADC value

(mv)

277 86 86

323 99 100

1806 552 561

Is the difference is because of some internal conversion error or is there anything missing in ADC settings? What could be the source of error and suggestion to resolve/workaround?

9 REPLIES 9
berendi
Principal

Verify that Vref+ <= Vdda <= Vdd during the conversion.

Ozone
Lead II

Not sure what LM86 sensor you speak about, the one I found has a I2C interface.

Assuming a proper Vref and Vdda/Vref relation (as berendi noted), an insufficient sensor output impedance could cause such problems as well.

LM86 has a digital I2C/SMBUS interface.

This question is about the LMT86 which has analog output.

What a great idea, TI, to produce parts with different characteristics under such a similar name.

From the DS:

Output drive T A = T J = 25°C –50 50 µA

I'd say, this may be a case of inadequate sampling time.

JW

I'm pretty sure the original post said "LM86T".

Retrospective editing destroys the conversation's logical sequence.

> I'd say, this may be a case of inadequate sampling time.

Supposedly true.

For 50uA max, one would need quite a long sampling time.

A buffer opamp would be a solution.

Then it should say Edited at the top, shouldn't it?

 test: quick edit

Not sure if it does in every instance.

Sometimes this site (ST community forum) changes display font size for no apparent reason.

But I'm sure the first time I read the post was before my morning coffee ...

A3
Associate III

Thanks everyone for your prompt reply and helpful suggestions.

The problem was with Vref+ only. Calculated ADC was with Vref = 3.3v.

But actually the Vref was not 3.3v. It is 3.353v in one board and 3.360v in another board.

Calculating ADC with these Vref value matches with generated ADC value.

Thanks