06-04-2008 02:39 PM
Hi Aaron.
Have you tried with this instead ?
aiSampleStart(board,
convertDelayDivisor+convertPeriodDivisor*numInputs,
3,
tMSeries::tAI_START_STOP_Select::kAI_START_SelectSI_TC,
tMSeries::tAI_START_STOP_Select::kAI_START_PolarityRising_Edge);
where convertDelayDivisor is the convert period delay divisor passed to aiConvert() ?
When I look at the available timing diagrams for the M Series, it looks like without this adjustment, aiSampleClock could be generated before the current sample is finished. For example with a convertPeriodDivisor of 80, convertDelayDivisor of 3, for 2 inputs, aiSampleClock would occur every 8µS but a complete scan of the two inputs would take 8.15µS [ (convertDelayDivisor + convertPeriodDivisor*numInputs) * 1/20000000)]. This is assuming your using the internal timebase of 20MHz. But I'd like to hear from NI about this as I am probably missing something.
There is something kind of strange about your results. I can't figure out why it is actually working when you slow down the acquisition rate since it should actually take longer to generate the 48 samples (48 samples @ 250kHz:192µS vs 48 samples @ 245kHz:195.9µS). Maybe this is some timing issues related to aiSampleClock being masked when convertDelayDivisor is not taken into account?
Too bad I don't have acces to a M Series board at the moment as I would have done some testing myself.
Danny
06-04-2008 06:29 PM
06-05-2008 08:09 AM
Hi Aaron.
There is a section called "Analog Input Timing Signals" in "Chapter 4 Analog Input" of the M Series User Manual.
http://digital.ni.com/manuals.nsf/websearch/B53FA1760200AF86862573A3006F9E56
The E-Series RLP manual and DAQ-STC Reference Manual can also be helpful since most of the "concept" on the E-Series applies also to the M-Series.
http://digital.ni.com/manuals.nsf/websearch/5978CE4A83119E50862566FA0075F424
http://digital.ni.com/manuals.nsf/websearch/E929838D7D0EE50986256728007FEADF
Danny
06-24-2008 05:25 PM
07-03-2008 11:58 PM