background image

Classification

Revision

Public

PA6

Document Number

Date

17-1957

2018-06-07

blocks until the thread has closed properly and returns its return value. At this point, the digitizer is

once again in the user’s control.

5.

If the user wishes to restart the acquisition, another iteration of the outer loop is initiated. Otherwise,

the dynamically allocated memory is returned to the host and the application exits.

4.9

Converting from ADC Codes to Volts

The unit of the received data is ADC codes. The full scale input range is 1 V peak-to-peak. This is

mapped to the range

[-2

14-1

, 2

14-1

- 1]

, meaning one LSB is

LSB

Volt

=

1

2

14

V

.

(2)

The ADC codes may then be converted to Volt by using (

3

).

X

Volt

=

1

2

14

·

X

ADC

(3)

4.10

ADC Code Ranges

Vertical settings in the ADQAPI are defined using 16-bit ADC codes, i.e. in the range

[-32768, 32767]

regardless of the digitizer resolution. In the case of ADQ7-FWATD, which delivers 14-bit data aligned

with the LSB at bit index zero. For example, this means that there will be difference of a factor of four

between the configured level trigger threshold value and the corresponding sample value in the user

space record.

Note

Vertical settings in the ADQAPI are defined using 16-bit ADC codes regardless of the digitizer resolution

while ADQ7-FWATD returns data which should be interpreted in the 14-bit range. For example, setting

the level trigger to ADC code 1024 corresponds to a sample value of 256 ADC codes in the user space

record.

4.11

Threading

The ADQAPI is not thread safe. This means that if the user wishes to communicate with the digitizer from

multiple threads in the application, a locking mechanism (implemented by the user) is required in order

to avoid race conditions and undefined behavior. Section

4.5

explained that the WFA is partitioned and

that the final accumulation step is performed in software by the ADQAPI. This accumulator is running in

its own thread and as such, while the data is being collected (i.e. after calling

ATDStartWFA()

), there are

only a few functions that are safe to call, namely

ATDGetWFAStatus()

ATDRegisterWFABuffer()

ATDStopWFA()

ADQ7-FWATD User Guide

www.teledyne-spdevices.com

Page 17 of 26

Summary of Contents for ADQ7-FWATD

Page 1: ...ADQ7 FWATD User Guide Author s Teledyne SP Devices Document no 17 1957 Classification Public Revision PA6 Date 2018 06 07...

Page 2: ...er 7 4 1 3 Internal Trigger 8 4 1 4 External Trigger 8 4 2 Configurable FIR Filter 8 4 3 Sample Skip 8 4 4 Advanced Threshold 9 4 4 1 Threshold Logic 9 4 4 2 Filter 9 4 5 Waveform Accumulator 10 4 5 1...

Page 3: ...07 5 4 Default Behavior 19 5 5 Interpreting the Data 20 5 6 MATLAB 20 6 Troubleshooting 21 6 1 Managing License Files 21 6 1 1 Reading the DNA 21 6 1 2 Updating the Digitizer License 21 A Linux SDK R...

Page 4: ...in firmware option DRAM Dynamic random access memory FIR Finite impulse response FW Firmware digitizer feature set GSPS 109 samples per second RAM Random access memory SDK Software development kit WFA...

Page 5: ...ty 1CH 32 samples Length granularity 2CH 16 samples Length granularity 3 2 n s Waveform dead time 32 ns Accumulation dead time 32 ns Number of accumulations 1 262 1441 Accumulation granularity 1 Advan...

Page 6: ...vely increasing the dynamic range of the system WFA firmware software The waveform accumulator resides partly in firmware and partly in software inside the ADQAPI This structure offers flexibility and...

Page 7: ...llation directory C_examples and the documentation in Path to installation directory Documentation 3 1 2 Installing the SDK Linux The SDK is supported for a number of Linux distributions and versions...

Page 8: ...ith SetTriggerMode Please refer to the ADQAPI reference guide 3 for informa tion on the argument list 4 1 1 Software Trigger The software trigger is issued by calling the API function SWTrig and its m...

Page 9: ...to update the filter coefficients and expects exactly 9 coefficients up to and including the point of symmetry It is possible to specify the coefficients using a floating point representation However...

Page 10: ...ltiplexer which selects between the baseline and the original data on a sample by sample basis The decision logic compares the user defined threshold value to the filter output and depending on the po...

Page 11: ...least 9 elements otherwise a memory access violation will occur 4 5 Waveform Accumulator The WFA on ADQ7 FWATD is partitioned meaning that the work load is split between the digitizer and the host co...

Page 12: ...grid at the next grid point in the current grid Note The grid refers to the accumulation grid which is equivalent to the trigger grid downsampled with a factor equal to the number of accumulations For...

Page 13: ...core concept is to discard data in a well defined manner such that the overall accumulation grid is preserved and corrupted records are prevented from propagating to the user space The digitizer firmw...

Page 14: ...scarded in a well defined manner What well defined means in detail is beyond the scope of this document However the resulting user space behavior is worth commenting on An overflow will manifest itsel...

Page 15: ...red enough buffers 4 8 Collection Modes ADQ7 FWATD features two collection modes single shot and streaming The modes are geared to wards different use cases however the streaming mode is more general...

Page 16: ...the WFA engine by calling ATDSetupWFA specifying the horizontal settings of the acquisition i e the record length and any pre trigger or trigger hold off values Additionally the number of accumulation...

Page 17: ...data Reinsert buffer into queue ATDRegisterWFABuffer Stop collection 1 Pointer value 0 Timeout Shut down WFA engine ATDStopWFA ATDWaitForWFACompletion N Y 2 Streaming thread not running Restart Digit...

Page 18: ...there will be difference of a factor of four between the configured level trigger threshold value and the corresponding sample value in the user space record Note Vertical settings in theADQAPI are d...

Page 19: ...d for ADQ7 FWATD as well This includes functions handling trigger configuration adjustable bias in the analog front end di gital baseline stabilization clocking etc The exceptions are the data managem...

Page 20: ...ult the test pattern generator and level trigger are activated This means that the example can be run out of the box and data will be received even without connecting any input signals or triggers The...

Page 21: ...ntly Volts see Section 4 9 5 6 MATLAB On Windows systems the ADQAPI has support for MATLAB through the use of a MEX file This interme diate layer handles among other things the memory allocation and d...

Page 22: ...ttings as well as the specification for both the trigger and data signals Make sure to include a trace log file from a run where the error appears 6 1 Managing License Files ADQ7 FWATD requires a vali...

Page 23: ...nical Ma nual 2 Teledyne Signal Processing Devices Sweden AB 16 1692 ADQ7 datasheet Technical Specification 3 Teledyne Signal Processing Devices Sweden AB 14 1351 ADQAPI Reference Guide Technical Manu...

Page 24: ...tall packagename make kernel devel gcc The version of kernel devel must match your current kernel Install delivered versions of our packages using rpm U packagename Use the following order dkms spd ad...

Page 25: ...ault udev setting is to add read write access to the user group adq The libadq0 package will create a user group called adq if that group doesn t already exist in the system To be able to access the d...

Page 26: ...sification Revision Public PA6 Document Number Date 17 1957 2018 06 07 EXAMPLE CODE Some example code can be found in the examples directory ADQ7 FWATD User Guide www teledyne spdevices com Page 25 of...

Page 27: ...kringen 6 SE 583 30 Link ping Sweden Phone 46 0 13 645 0600 Fax 46 0 13 991 3044 Email info teledyne spdevices com Copyright 2018 Teledyne Signal Processing Devices Sweden AB All rights reserved inclu...

Reviews: