Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

DAQmxCfgSampClkTiming signal routing

Solved!
Go to solution

Is there any way I can find what type of routing does DAQmxCfgSampClkTiming establishes between two boards?

 

I'm using the ANSI C interface, and two PCI-6733 analog output boards (AO series) connected with a RTSI cable.  I tried following suggestions on the manual on making the slave device have the same 20MHzTimebase clock and I kept getting errors on "there are no more resources for this route" type of messages.

 

It wasn't until I avoided any type of explicit signal routing and just used "/Dev1/ao/SampleClock" as the sample clock source on the slave device (Dev2) that the multi-device analog output started working (after resetting the devices, BTW).  I'm just curious to see what kind of signal routing DAQmxCfgSampClkTiming has established under the hood. 

 

The test program seems to be working well and the signals synchronized, but I want to make sure I'm configuring correctly.

 

The DAQmxGetExported...Term functions don't show anything since I imagine it's all task-related as opposed to immediate routing. The DAQmxGetAO... functions don't seem to have anything to find out routes.

 

Thanks

 

0 Kudos
Message 1 of 9
(5,260 Views)

Hi Ramirez,

 

I'm assuming you were looking at the Analog Output Series User Manual for the suggestions you mentioned. The manual isn't very specific on the actual steps you need to take, but there are examples that come with the driver that do synchronization. In them, you'll see that they don't specify a specific RTSI pin that the timebase should be shared on. Instead, DAQmx routes the timebase through the appropriate pin (RTSI 7, according to the manual).

 

I hope that helps!

Mark E.
Precision DC Product Support Engineer
National Instruments

0 Kudos
Message 2 of 9
(5,249 Views)

Mark:

 

Thanks for your response.  I did look at the examples that came with DAQmx along with another I downloaded for multi-device synchronized AO, but it's not clear what type of board the PCI-6733 is.  The examples take different approach to synchronization depending on whether it's an E or S series, an M series, or a DSA series, but after reviewing specs, manuals, and NI's product web page, I couldn't determine where the PCI-6733 belongs.  Is it an M series type of board? 

 

I tried the approach for E/S series (routing the MasterTimebaseSrc and MasterTimebaseRate from the master board to the slave), but it didn't work.  When priming the write on the slave channel the error message said something like "unable to write with autostart off... the task is configured for 'on demand' mode".  I'm not sure now... I may have been missing something in the code.  It looked to me like the call to DAQmxCfgSampClkTiming on the slave board was needed to configure the continuous-writing mode, but it was doing its own routing that conflicted with any other specific routing I tried to make.

 

Thanks for your help.

0 Kudos
Message 3 of 9
(5,247 Views)

Hi Ramirez,

 

From the error you just supplied, it seems that you may be configuring the Write function before timing is configured, which makes the timing default to "on demand". You'll need to set up timing, then call the write function. It may be helpful for you to post your code and indicate where you found the example you started with.

 

To address your question about the signal routing for DAQmxCfgSampClkTiming: unfortunately that is information that we aren't able to provide to customers. It sounds like the overall issue is getting your code to do what you expect, and we should be able to do that without the extra details anyway. Once I get your code, I'll see what I can do to help you out.

Mark E.
Precision DC Product Support Engineer
National Instruments

0 Kudos
Message 4 of 9
(5,215 Views)
Solution
Accepted by topic author ramirez
One more thing: the PCI-6733 uses the STC chip, which is what the E series devices use.
Mark E.
Precision DC Product Support Engineer
National Instruments

Message 5 of 9
(5,213 Views)

Mark:

 

Sorry for not responding earlier.  Thanks for your help.  I tried again the method as suggested in the examples and realized I had left out the call to DAQmxCfgDigEdgeStartTrig.  After adding it, it worked as the examples suggested, so that's the approach I'm using now.

 

Thanks again for your help

 

Sergio

 

0 Kudos
Message 6 of 9
(5,104 Views)

remirez,

 I wanna generate specified waveform via PCI-6229, and the program platform is VC++. It seems that you have done this before, could you please send me a copy of that piece of code for reference? As I can't generate that by following NI-DAQ manual, and all what I get is the last value of the data array.

Thanks a lot, and look forward to hearing from you.

 

/*curtisy@163.com, yuanzhui@hotmail.com*/

0 Kudos
Message 7 of 9
(5,009 Views)

Curtis:

 

Unfortunately I can't share the code because it's DoD work.  But the examples provided by NI-DAQmx should give you a head start. It's really not difficult. 

0 Kudos
Message 8 of 9
(4,979 Views)

thanks all the same.

 

I have already finished that based on NI chart flow.

0 Kudos
Message 9 of 9
(4,957 Views)