Scope
Example config for a one-area resonance scanner FPGA/DAQmx system using one NI-6259 card and a NI-7962R FPGA with NI FlexRIO 5751 adapter module (high-speed digitizer)

For theory of operation and details on the hardware and software implementation have a look at the documentation/resonance folder.

Copy ScopeDefinesExamples.h (which is in the repository) to ScopeDefines.h by using Windows Explorer (not Visual Studio!). Git ignores ScopeDefines.h so that you can adapt this to your needs without messing up for other people. Now choose the following defines in ScopeDefines.h

  • #define SCOPE_NAREAS 1
  • #define SCOPE_USE_RESONANCESCANNER true
  • #define SCOPE_USE_SIMPLEDAQMX_RESONANCE_OUTPUTS
  • #define SCOPE_USE_FPGARESONANCESCANNER_INPUTS and xyz hardware as you want it e.g. #define SCOPE_USE_NOXYFPUSTAGE and #define SCOPE_USE_GALIL_XYZSTAGE. Then compile your scope.exe.

Now to the xml file (remember: you can find all the parameters here in scope::parameters with detailed descriptions!). The additional (!) configurations here are:

<daq>
<ResonanceFrequency_Hz>7910</ResonanceFrequency_Hz>

Resonance frequency of the resonance scanner used for calculations in the software

<inputs>
<AcquisitionClockRate_Hz>40000000</AcquisitionClockRate_Hz>
</inputs>

This is the sampling rate of the FPGA adapter module, for the 5751 this is 40 MHz.

<outputs>
<ZoomChannelsString>PXI-6259_0/port0/line1:2</ZoomChannelsString>

Two digital signals used for the discrete zoom (1, 2, 3, 4) of the resonance scanner

<ExternalClockSource>/PXI-6259_0/PFI1</ExternalClockSource>

Input for the resonance scanner synchronization signal (from the 5751)

<SwitchResonanceLine>PXI-6259_0/port0/line3</SwitchResonanceLine>

Output for switching the resonance scanner on and off (not needed)

<frameresonance>
<XTurning_Fraction>0.1</XTurning_Fraction>
<SquarePixels>false</SquarePixels>
<YAspectRatio></YAspectRatio>

Settings for image dimensions and pixel dimensions, respectively

<WaitAfterEnqueueStorage_Millisecond></WaitAfterEnqueueStorage_Millisecond>
<WaitAfterEnqueueDisplay_Millisecond></<WaitAfterEnqueueDisplay_Millisecond>
</frameresonance>

Time to wait, quick fix for a problem. See resonance scanner documentation folder for details.