DI-145 Data Acquisition Starter Kit Developer's Diary
3/4/2011 Note #17 A Minor Change to the DI-145 Protocol
(Now It's Largely Backward Compatible with the DI-194RS)
When we started this series we told you that we would report all the events that transpire during the DI-145 release process -- the good, bad and the ugly. Fortunately, most of our reports covered good progress and we've been able to state without exception that the product operates exactly as claimed and envisioned four months ago before the first hardware prototype even existed. Until now.
A major claim for the DI-145 was backward compatibility with its DI-194RS predecessor, and we've been able to achieve this goal to a great degree. However, events of the past week have proven that we need to bend the rules a bit to provide a quality product that meets general market expectations. Effective immediately we have amended the DI-145 protocol document to reflect a new reality and compensate for it as best we can. The change involves how ADC values are coded, and is fully explained in the amended document. The governing paragraphs of this change are reproduced here for convenience:
A Minor Backward Compatibility Issue
At this point the DI-145 takes a minor departure from complete compatibility with its DI-194 predecessor. The DI-194 did not have the intelligence on-board to perform the scaling and offset operation for each sample that's required to deliver to a fully calibrated reading to the host PC. DI-194 end users were instead shown how they could calibrate any of its four channels using the scaling and offset facilities built into WinDaq software. Of course, anyone interested in using the DI-194 with their own program was burdened with this task and one of the goals of the DI-145's design was to eliminate it, since the new design employs a much more powerful on-board processor that can easily apply the scaling constants transparently. However, this approach causes a minor incompatibility between the legacy DI-194 and resulting DI-145 protocols.
During the calibration process performed at DATAQ Instruments and before the DI-145 is shipped to a customer, known voltage values are applied to each of its channels and a connected PC calculates the required scale and offset factors so the instrument meets or exceeds its accuracy specification. Those factors are written to nonvolatile memory built into the DI-145 for the instrument's processor to apply going forward. An unavoidable problem is that this procedure consumes a small amount of the DI-145's dynamic ADC range. Since the DI-145 is speced as having ten bits of measurement resolution, and if we were to report only those ten bits like we do for the DI-194, resulting values would show missing counts or codes. If you applied a very precise ramp to an analog channel and slowly changed the voltage between positive and negative full scale you'd see a response that for the most part changed by only one ADC count as the applied voltage passed through the ADC's bit resolution thresholds, but occasionally you'd also see the ramp jump, skipping one count and resulting in a discontinuity called a missing code. Moreover, the places where missing codes exist would be different from unit to unit and even from channel to channel within the same unit. Obviously, this situation is unacceptable.
Fortunately, the DI-145's ADC and protocol are designed for 12 bits, allowing us to use this improved resolution to provide an accurate calibration at nearly the 10-bit level without missing codes, but with the incongruity that we report a 12-bit number for an instrument speced for 10 bits of ADC resolution. The DI-145 is actually not a 12-bit device, since there will be between 993 and 1,024 active counts within the 4,096 possible 12-bit combinations. Usually the DI-145 will register a four count change for every 19.53 mV change of applied voltage, but sometimes it will register a 5 count change of 24.41 mV. This value is a composite of a four-count change of the 12-bit converter (or a one count change of the 10-bit converter) equal to 19.53 mV, plus a one count change of the 12-bit converter equal to 4.88 mV. These large changes are approximately evenly distributed, with at least seven 19.53 mV changes between each. The largest weighted average step size is 20.14 mV, yielding an effective average ADC resolution of 9.96 bits. A device with the minimum 993 active counts would have a total of (869) 19.53 mV steps and (124) 24.41 mV steps.
So there it is…our first disappointment of the release process. As we begin the weekend we'll chill a bit and hope it's our last.
DI-145 Product Page: http://www.dataq.com/products/di-145/index.html.