CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to CCS Technical Support

HELP - 16-bit ADC

 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
ernest



Joined: 11 Feb 2004
Posts: 51

View user's profile Send private message

HELP - 16-bit ADC
PostPosted: Tue May 11, 2004 5:10 am     Reply with quote

Hello,

I am looking for a highly accurate and reliable 16-bit ADC for my project. Initially, I have tried out my program using the 10-bit ADC built-in with PIC16F877A. Basically, the program works fine to display voltage readings accurately.

However, the 10-bit is not sufficient for our application which requires highly accurate reading of up to 4 decimal points ie. from 0.xxxx -- 5.0000V.

I have tried the 16-bit LTC1605 and LTC1603 ADCs but they do not work well. The readings from ADC are not accurate and fluctuate all the time.

This is my first time using a 16-bit ADC, so could anyone out there please advise how I can precise and accurate readings from the ADC.

Thanks...
Ernest
prwatCCS



Joined: 10 Dec 2003
Posts: 70
Location: West Sussex, UK

View user's profile Send private message

PostPosted: Tue May 11, 2004 5:28 am     Reply with quote

PCB layout, grounding and appropriate filtering of your input signals will be your biggest challenge.

Not really a software issue ....
_________________
Peter Willis
Development Director
Howard Eaton Lighting Ltd UK
Haplo



Joined: 06 Sep 2003
Posts: 659
Location: Sydney, Australia

View user's profile Send private message

PostPosted: Tue May 11, 2004 5:29 am     Reply with quote

The problem may not be related to the precision of your A/D chips, but to your circuit in general. I strongly recommend you to watch the Microchip's online seminar video on ADC circuits. You can access it here (under the name "Techniques that Reduce System Noise in ADC Circuits, recorded on the 18th of Feb 2004"):

http://techtrain.microchip.com/webseminars/WebSemCListArch.aspx?mode=arch

It is around 20 minutes, and well worth it.
Ttelmah
Guest







Re: HELP - 16-bit ADC
PostPosted: Tue May 11, 2004 5:33 am     Reply with quote

ernest wrote:
Hello,

I am looking for a highly accurate and reliable 16-bit ADC for my project. Initially, I have tried out my program using the 10-bit ADC built-in with PIC16F877A. Basically, the program works fine to display voltage readings accurately.

However, the 10-bit is not sufficient for our application which requires highly accurate reading of up to 4 decimal points ie. from 0.xxxx -- 5.0000V.

I have tried the 16-bit LTC1605 and LTC1603 ADCs but they do not work well. The readings from ADC are not accurate and fluctuate all the time.

This is my first time using a 16-bit ADC, so could anyone out there please advise how I can precise and accurate readings from the ADC.

Thanks...
Ernest

The first obvious comment, is that you are going to need _very_ careful hardware design. The LTC1603, and 1605, are perfectly capable of giving repeatable readings, is the circuitry around them is good enough. Remember though, that if (if instance), you are using such an ADC, with a 2.5v reference, the 'single bit', change, is only 0.038mV. To get stable 16bit readings, requires that the whole section of the circuit, is built to minimise noise, that the voltage reference is stable to the levels required, and that the input circuitry itself is built/designed to minimise drift. Digital circuitry is you 'enemy' in this regard, as are things like switch mode supplies. Ideally build the input amplifier/buffer, and ADC, on it's own section of board, wth it's own ground plane. Provide a seperate supply to this section, and 'post regulate' this using a linear regulator. Only make a single 'ground' connection between this and the processor area, with the minimum number of logic signals needed to control the ADC.
There is also a significant question regarding the type of ADC involved. The converters used on most DVMs, are 'integrating' designs, and tend to average out high frequency noise. This is a good thing' if you are looking at slowly changing signals, but a 'poor thing' if you want to see rapid signal changes. Depending on your application, you may well find the integrating converter the better bet.
You also need to look carefully at the stability of parts. If you are working as a pure 'voltage' value, component stability will become a major issue. If possible, it is much easier to get good accuracy, if you work 'ratiometrically'. If (for instance), the voltage is derived from a current change in a transducer, if both the ADC, and the transducer circuit use the same voltage reference, drift in this will normally be largely cancelled out. Op-amps themselves, are also not stable to the sort of level needed here (look at 'chopper stabilised' designs).
It is a lot harder to produce a genuine 16bit accuracy, than to produce (say) a 16 bit 'delta' system (this is the approach used in things like CD players, where the absolute accuracy of the data is far lower than the 'relative' accuracy. However it is the latter that is important for musical reproduction. It may be that by thinking carefully, you can reduce the need for such high accuracy levels.
A properly designed 6bit ADC, achieving repeatability to the last bit, is not 'trivial' to get working...

Best Wishes
SteveS



Joined: 27 Oct 2003
Posts: 126

View user's profile Send private message

PostPosted: Tue May 11, 2004 6:38 am     Reply with quote

How fast do you need to sample?

If it's slow - use a delta-sigma converter or integrating converter. As mentioned, the integrating converter filters out the noise effectively. The delta-sigmas do too and are generally constructed to have notches at 50 and/or 60 Hz to kill line noise. I pull out uV signals completely lost in noise with a delta-sigma converter (and a few other tricks).

A successive-approximation ADC depends on you to hold the sample steady during conversion via the sample-and-hold. These are usually built in now, but in any case it samples the signal at an instant and holds that value for the ADC to work on. Any noise will cause variance each time that sample is taken. If it's really noise, you can postfilter in software and achieve benefits similiar to the slower converters. If it's 60 Hz hum or some other not-so-random noise you will need to know that and construct a post filter (or prefilter) to deal with it.

And then there's aliasing.......

In short - if you can stand low sample rates look at delta-sigma and integrating ADC.

- SteveS
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group