Table of Contents
24/7 Data Acquisition Wildcard Users Guide
While the AD7714 provides a simple method of continuous sampling of one channel, it's trickier to use for many channels. If set to convert a single channel then left alone, it just happily samples away, at a constant rate, and you can read the most recent result anytime. That's the easiest way to operate it. But, sampling from several channels is more involved, because the convertor has to be restarted when the channel is changed, the proper calibration coefficients have to be loaded in when it is restarted, and there is a three output period ‘lock-out” time after changing channels before a valid output is ready.
The simplest operation of the WildCard occurs when you need to continuously sample a single channel. Once the convertor starts, via either Start_Conversion or Start_Conv_With_Values it converts a precisely controlled rate, controlled by an onboard crystal. Start_Conversion invokes a calibration procedure, as described above, that takes several output periods to complete. During this "lock-out" time an output is not available. If started using Start_Conv_With_Values, and the channel is changed from the prior channel, the A/D also has a three period lockout time during which an output is not available, so that its internal digital filter can fully settle. If AD24_Sample is called during these lock-out times it will wait (calling PAUSE to allow multitasking) until the first output value is ready.
After the calibration is completed or the digital filter settles, the output register is updated at the rate you specify. Calling AD24_Sample always returns the most recently available sample. For just a few microseconds during the update of the output register the register can not be read, so AD24_Sample waits briefly during that time for the new output value. If called any other time AD24_Sample returns immediately with the most recent value, which remains available for the rest of the output period, until the next update.
You have great lattitude in when you call AD24_Sample to read the output. If the convertor is sampling every 100 msec, you can call AD24_Sample anytime during each 100 msec period to read the output value giving you great immunity to timing jitter. If you time your call to AD24_Sample shortly after each output becomes available, then your call to AD24_Sample will be immune to delays (caused by other tasks hogging the machine) as long as 100 msec before it would miss reading an output. The timing of the A/D samples is precise, being controlled by a crystal time base on the WildCard, even if the timing of reading the output is imprecise.
It is often the case that you may want to sequentially sample from several different input channels. In that case you must restart the convertor to change channels using either Start_Conversion or Start_Conv_With_Values. Start_Conversion will do a specified calibration on the new channel, while Start_Conv_With_Values saves a little time by forgoing the calibration. If you do an initial calibration of each channel using Start_Conversion you can then use Start_Conv_With_Values to obtain each subsequent sample from the channels by passing the channel-specific calibration coefficients to Start_Conv_With_Values.
If you use Start_Conv_With_Values the convertor restarts 2.34 milliseconds after Start_Conv_With_Values begins, then converts at the specified rate. So if for each sample you change the channel you will be restarting the timing of the convertor for that channel. In this case the timing of when the sample is taken depends entirely on when you call Start_Conv_With_Values. Consequently, you'll definitely need a software clock to time it.
Unlike an analog filter that settles fully only in infinite time, the AD7714’s internal digital filter settles in finite time. It takes exactly three output periods to fully settle by flushing its queue. So for a full-scale step change in the input that occurs asynchronously with the operation of the part, the next three outputs will not have settled, just as you’d expect of any low pass filter, but the fourth is guaranteed to be fully settled. When changing channels, the part restarts (exactly 2.34 milliseconds after you tell it to using Start_Conv_With_Values) and the chip's input modulator and digital filter also restart so the output settling time is exactly three times the output data period. Because the part "knows" you won’t want corrupted data after switching channels, as the new channel's voltage is likely to be very different from the old channel's, the chip doesn’t update the output data register until the settling time of the filter has fully elapsed. So after requesting a sample on a new channel, the driver routine, AD24_Sample, will wait while reading the data ready line and not return until three data periods have elapsed. It will then return with your first valid data point. So it is throwing away the invalid samples for you. (page 22 of the AD7714 datasheet discusses this, last paragraph under "Filter Characteristics") Because this dead time is an appreciable time for the processor we designed AD24_Sample to operate in a multitasking environment. It pauses, allowing other tasks to run while it's waiting for the A/D to finish its job.
The net result of all this is that the effective throughput of the A/D is considerably slower if you change the channel for each sample because it goes through three output update cycles, throwing away the data, before it returns with the first valid data point. That's the bad news; the good news is that those sample periods the digital filter takes to settle are merely the price we pay for the noise filtering characteristics of the filter. There are deep notches at each harmonic of the output data rate, and you can choose that data rate to provide good immunity to common noise sources such as 50 and 60 Hz.
Changing channels for each sample also puts the onus on you for controlling the timing of the samples. Any jitter in the timing of the call to Start_Conversion or Start_Conv_With_Values will be reflected in an uncertainty in the timing of the A/D sample. It is generally easy to design your software so that this jitter is inconsequential, but it is a consideration you must keep in mind.
Home|Site Map|Products|Manuals|Resources|Order|About Us
Copyright (c) 2006 Mosaic Industries, Inc.
Your source for single board computers, embedded controllers, and operator interfaces for instruments and automation