- From: David MacMahon <davidm_at_astro.berkeley.edu>
- Date: Wed, 19 Jul 2006 21:58:11 -0700
Frank Mori Hess wrote:
> Once you start trying to calibrate boards with separate adc converters for
> each channel, where each channel reads the calibration sources
> independently, you realize selecting a channel and selecting a calibration
> source are orthogonal choices in the more general case. Also, choosing
> between reading an external or internal source has little to do with the
> meanings of the AREF_* flags.
Good points. I suppose the term "channel" is a little overworked. If a
board has 16 selectable external inputs for one ADC it has the same
number of channels as a board that has one external input for each of 16
ADCs and a board with four (unique) selectable inputs for each of four
ADCs. Counting channels gets very confusing if external inputs can be
routed to multiple ADCs. Yikes!
> Probably to do what you want would require generalizing the chanspec,
> something like
>
> struct chanspec
> {
> unsigned channel;
> unsigned range;
> enum Aref aref;
> unsigned flags;
> unsigned alt_source;
> };
Yes, that would be "a good thing". But as you point out...
> Unfortunately, we really don't have the developer resources to be doing
> that kind of unstable API development. Maybe if we had the equivalent of
> a few FTEs, but we don't.
Well, at least the API stays nice and stable! :-)
Getting back to the temperature sensor, I now think I'll add support to
the AREF_OTHER case in ni_mio_common.c to make "calibration" channel 20
(16+4) be handled as "auxiliary" channel 4 (the temperature sensor).
It's not very general, breaks if an NI MIO board is released with more
than 16 calibration channels, and expands deprecated constructs, but it
seems like the path of least resistance for getting access to this very
useful (IMHO) feature of the NI (PCI-only?) E Series boards. Would you
be interested in such a patch?
Thanks for your replies on this topic,
Dave
Received on 2006-07-20Z03:58:11