I need to do high-frequency, high-channel-count acquisition.
Each FlexRIO card will store data in circular buffers, and continuously monitor the voltage levels. When any one channel exceeds the user-defined threshold, all 60 channels need to be triggered simultaneously to pass waveform data (200 μs pre-trigger, 300 μs post-trigger) to the host OS for logging.
In other words, every FlexRIO card needs the ability to fire the trigger, which is then received by all 15 FlexRIO cards (the card that fires the trigger also needs to receive the trigger).
Can I achieve this with only a single PFI line? Or do I need some other technique?
I've found some examples, but they only show single-source and single-card triggering, e.g. https://decibel.ni.com/content/docs/DOC-30182 uses one analogue input to trigger the acquisition of 2 channels on the same card.
Any advice would be much appreciated. Thanks!
Solved! Go to Solution.
Assuming you are using LV 2013 or 2014 you should download version 1.3.4 of the FlexRIO Instrument Development Library (FIDL). This will install 5734 Acquisition Engine examples which use the MultiRecord Library to stream data to the DRAM in a circular buffer, allowing you to recover pre-trigger samples. The example also demonstrate how to implement the Syncrhonization Library that synchronizes triggered acquisition to within a single sample period across multiple devices.
Getting the example to work across two chassis' may be difficult, but I believe it is possible. Though to do so you will need a timing and sync module in each chassis to distribute the triggers and reference clock that the sycnrhonization library requires.
Thanks Dave, those look really promising. I've installed FIDL 1.3.4 and the NI-573xR Example Instrument Driver and will study them.
I dug down to <instr.lib>\FlexRIO\Libraries\Integration\Acquisition Engine Session\FPGA Bitfiles\Generic_7962_5734\ and found an FPGA bitfile, but not the corresponding FPGA source code.
Is the source code available somewhere?
FIDL 1.3.4 already installs examples. You can access the one you're looking for from the start menu, National Instruments>>NI FlexRIO Instrument Development Library>>Acq Eng>>5734.
The NI-573xR Example Instrument Driver only needs to be installed if you are using FIDL 1.1. I've updated the community page to clarify this point.
Thanks again, Dave.
I've had a look through different examples, and all of them only have 1 trigger channel at a time. I need to trigger the acquisition when any of the channels involved exceed the threshold.
Do the FIDL building blocks support this use-case, or should I write custom low-level code?
P.S. Discussion about installing examples are at the other thread.
There is a version of the trigger VI that accepts 4 elements at a time, but it is designed to work with a 12 bit Fixed Point data type. You could try to modify that VI to work with the i16 that the 5734 uses.
An alternative that I haven't tested but seems like it could work is just duplicating the trigger for each additional channel you wanted.