Re: NI MIO "auxiliary" channel (i.e. on-board temperarure sensor)

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