Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

ADS1115 issue for taking values of 4th digit after decimal point

Status
Not open for further replies.

RenesasT

Full Member level 2
Joined
Mar 11, 2016
Messages
149
Helped
0
Reputation
0
Reaction score
0
Trophy points
16
Activity points
1,330
Hello Everyone,

I am facing an issue with ADS1115 ADC which is 16 bit ADC. I am able to communicate mircocontroller and ADC. I am even able to get the ADC counts. Though counts are fluctuating I have used averaging method to get proper counts.

The PGA is +/- 2.048. I am using channel 0. I am getting below results,

mV ADC count

200 200

300 300

1000 1000

1024 1024

1058 1058

To convert ADC count into voltage I am dividing ADC count by 1000. My question is how to get fourth digit after decimal point.

Suppose mV=1058.5 I need converted value should be 0.10585.

As the ADC is 16 bit, can anyone please explain me how to get fourth digit after the decimal point.
 

Hi,

according your values:
* The ADC count is an integer value.
* each LSB of the ADC count reperesents 1mV.

But the fourth digit after decimal point represents 0.1mV.
--> Thus the fourth digit will always be zero.

The PGA is +/- 2.048
This makes no sense to me. Please explain.


Klaus
 

The reported values make sense if you operate the ADC with +/- 2.048 V full scale range and skip the lower 4 bit of the ADC result.

How to get mV after decimal point is a question about ADC data processing. Take the full 16 bit result!
 

Your average values can have higher precision than the ADC count.
If you add 10 fluctuating ADC conversions and divide the sum by 10 you have a higher precision value with 0.1 mV resolution.
Over how many samples are you averaging now?
Are you using a "sliding window" average?
 

if you are using 16-bit data.
the least voltage you can measure is
Sensitivity (least voltage you can measure) = Voltage range / 2^16;
Sen = 4.096/65535;
Sen = 62.5 uV / bit

means you can read 62.5 uV on change of 1 bit.

- - - Updated - - -

your result should be as
Let your reading of 16-bit ADC is 32090.
Voltage = (32090/65535) * 4.096
Voltage = 2.0056 Volts
 

Also note that you really need a *VERY* clean board design, power supply etc. to measure voltages to that level of accuracy. In my experience,you can reliably get 8, maybe up to 10 bits, from an ADC before the noise takes over.
Don't expect to measure more accurately than the circuit will allow.
Susan
 

Hi,

With averaging you don't get better accuracy.
Accuracy mainly depends on ADC and reference voltage. (Read datasheets)
You just increase resolution.

you can reliably get 8, maybe up to 10 bits, from an ADC before the noise takes over.
Maybe true for a hobbyist's design.
Read the datasheet where the limit is. If the ADC datasheet tells you that you get noise free results up to 15 bits then be sure that one can achieve this on a PCB.

But for sure you need careful design ... and the ADC can't output less noise than there is at the analog input.
My recommendation: less is more. If you add circuitry, especially OPAMPs, you add noise, drift and distortion.
Only add them where they are unavoidable.

Klaus
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top