08-18-2006 05:15 AM
08-18-2006 03:43 PM
08-21-2006 05:44 AM
Hi Sean,
Thank you very much for your help.
To answer your question: we need to synchronise the 5421 along with both 5922s , to guarantee clock locking among all 3 cards.
Still there are some open issues:
a. I assume there is still need to call
Status = niScope_ConfigureClock( pWorker->Session
, NISCOPE_VAL_PXI_CLOCK
, NISCOPE_VAL_NO_SOURCE
, NISCOPE_VAL_NO_SOURCE
, VI_TRUE ); for both 5922s .
Is this correct? And must the last parameter VI_TRUE or VI_FALSE for both 5922 cards?
b. We need a START_TRIGGER for starting the sampling at both 5922s at the same time. How is this accomplished ?
Since the call in the example, niScope_ConfigureTriggerEdge (sessions[i], channel, 0.0,
NISCOPE_VAL_POSITIVE, NISCOPE_VAL_DC,
0.0, 0.0)
is probably not sufficient ?!
The intention is to start sampling after some warmup period of the AWG. But if both 5922s already start sampling due to the above call, then we could also discard the first zillion of fetched samples.
Thanx,
Tis Veugen
08-21-2006 11:40 AM
Hi Tis,
To TClk synchronize both the PXI-5922s and your PXI-5421, you will need to combine elements from the 2 examples I mentioned in my previous post. It would probably be easiest to start with the 5421 example (as it is already written for C) and add the code necessary to synchronize the PXI-5922s (the NI-SCOPE configuration and _initSessions functions).
You will not need to call the Configure Clock or Configure Trigger Edge functions (for a start trigger). This is all taken care of automatically by TClk with the following 3 functions:
handleNITClkErr(niTClk_ConfigureForHomogeneousTriggers(numberOfSessions, sessions));
handleNITClkErr(niTClk_Synchronize(numberOfSessions, sessions, 0.0));
handleNITClkErr(niTClk_Initiate(numberOfSessions, sessions));
If you want to use a reference Trigger, you would need to call the Configure Trigger Edge function. Please use those 2 examples as a reference and let me know if you have any questions.
Regards,
Sean Close
08-27-2007 01:33 PM