User Manual

Add to my manuals
56 Pages

advertisement

User Manual | Manualzz

Revision 1.2.3 as of 2015-06-10

Firmware 1 (build 4831), Driver v1.0.0

cronologic GmbH & Co. KG

cronologic

Ndigo250M-14

Ndigo125M-14

User Guide

1

Contents

1 Introduction

1

1.1

Features

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

2 Hardware

3

2.1

Installing the Board

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

2.2

External Inputs and Connectors

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

2.2.1

Connectors

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

2.2.2

Analog Inputs

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

2.2.3

Digital Inputs

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

2.3

Extension Card

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

2.4

Ndigo250M-14 Functionality

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

2.4.1

Zero Suppression

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

2.4.2

Trigger Blocks

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

2.4.3

Gating Blocks

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

2.4.4

Auto Triggering Function Generator

. . . . . . . . . . . . . . . . . . . . .

16

2.4.5

Timestamp Channel

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

2.4.6

Data Lookup Table

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

2.5

Multiple Ndigo boards synchronization

. . . . . . . . . . . . . . . . . . . . . . . .

18

2.5.1

Calibration Procedure

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

2.5.2

Synchronizing with an HPTDC8-PCI

. . . . . . . . . . . . . . . . . . . .

21

2.6

Performing a firmware update

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

2.7

Calibrating the TDC

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

3 Driver Programming API

25

3.1

Constants

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

3.2

Initialization

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

3.2.1

Structure ndigo init parameters

. . . . . . . . . . . . . . . . . . . . . . . .

26

3.3

Status Information

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28

3.3.1

Functions for Information Retrieval

. . . . . . . . . . . . . . . . . . . . . .

28

3.3.2

Structure ndigo static info

. . . . . . . . . . . . . . . . . . . . . . . . . . .

28

3.3.3

Structure ndigo param info

. . . . . . . . . . . . . . . . . . . . . . . . . .

30

3.3.4

Structure ndigo fast info

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

30

3.3.5

Structure ndigo slow info

. . . . . . . . . . . . . . . . . . . . . . . . . . .

31

3.4

Configuration

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32

3.4.1

Structure ndigo250m configuration

. . . . . . . . . . . . . . . . . . . . . .

32

3.4.2

Structure ndigo trigger

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

34 i

Contents

3.4.3

Structure ndigo trigger block

. . . . . . . . . . . . . . . . . . . . . . . . .

35

3.4.4

Structure ndigo gating block

. . . . . . . . . . . . . . . . . . . . . . . . .

36

3.4.5

Structure ndigo extension block

. . . . . . . . . . . . . . . . . . . . . . . .

38

3.4.6

Run Time Control

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

38

3.5

Readout

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39

3.5.1

Input Structure ndigo250m read in

. . . . . . . . . . . . . . . . . . . . . .

39

3.5.2

Input Structure ndigo250m read out

. . . . . . . . . . . . . . . . . . . . .

39

3.6

Other Functions

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

41

3.6.1

LED control

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

41

4 Packet Format

43

4.0.2

Output Structure ndigo packet

. . . . . . . . . . . . . . . . . . . . . . . .

43

5 C Example

45

6 Technical Data

49

6.1

Operating Conditions

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

49

6.1.1

Environmental Conditions for Operation

. . . . . . . . . . . . . . . . . .

49

6.1.2

Environmental Conditions for Storage

. . . . . . . . . . . . . . . . . . . .

49

6.2

Digitizer Characteristics

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

49

6.3

TDC Characteristics

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50

6.4

Electrical Characteristics

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50

6.4.1

Oscillator

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50

6.4.2

Power Supply

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50

6.4.3

Analog Inputs

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50

6.4.4

Digital Inputs

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51

6.5

Information Required by DIN EN 61010-1

. . . . . . . . . . . . . . . . . . . . . .

52

6.5.1

Manufacturer

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

52

6.5.2

Intended Use and System Integration

. . . . . . . . . . . . . . . . . . . .

52

6.5.3

Cooling

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

52

6.5.4

Environmental Conditions

. . . . . . . . . . . . . . . . . . . . . . . . . . .

53

6.5.5

Inputs

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

6.5.6

Recycling

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53 ii

1 Introduction

The Ndigo250M and Ndigo125M are digitizer and transient recorders designed to sample relatively shorts pulses in rapid repetition. They produce a stream of output packets, each containing data from a single trigger event together with a timestamp.

1.1 Features

ˆ 14 bit dynamic range

ˆ up to 250 Msps sample rate

ˆ 4 channels

ˆ digital input with TDC that can also be used for gating and triggering

ˆ 2 nd digital input for gating or triggering

ˆ PCIe x8 Gen 1 with 1400 MB/s throughput

ˆ multiple boards can be synchronized

The Ndigo125M and Ndigo250M are almost identical. The only difference is the use of a slower ADC in the Ndigo125M. If not otherwise noted this user guide refers to both boards when using the term ‘Ndigo250M’ or ‘Ndigo250M-14’. These boards are conceptionally very similar to the Ndigo5G-10 and use an almost identical API. All three types of boards can be mixed and synchronized by using the cronotools software library. The Ndigo5G-10 merges all data channels into a single ring buffer whereas the Ndigo250M has a separate buffer for each channel.

1

2 Hardware

2.1 Installing the Board

The Ndigo250M-14 board can be installed in any PCIe slot with eight or more lanes. If the slot electrically supports less than 8 lanes, the board will operate at lower data throughput rates.

Using a single Ndigo250M, no further connections need to be made. For applications that require more than four ADC channels, several Ndigo boards can be operated in sync. Any board of the Ndigo product line can be synced to other Ndigo boards, allowing, for instance, for a combination of high speed ADCs (Ndigo5G) and slower high resolution ADCs (Ndigo250M-14) or the upcoming Ndigo TDC.

The signals used for board synchronization and inter-board triggering are transferred on a bus between the boards. Join all C2 connectors (see Figure

2.3

on page

5 ) on the boards using

a ribbon cable. Both ends of the bus need to be terminated properly. If using a Ndigo Crate, connectors providing the termination are located on the crate mainboard next to the PCIe slots to the extreme left and right. For more details, please refer to the Ndigo Crate user guide. In applications that use only a few Ndigo boards installed directly inside a PC, termination PCBs available from cronologic can be used.

Ndigo250M’s standard device driver can be used to read out any number of boards and acquire data. For more complex scenarios, using the cronoSync-library, which is part of cronoTools, is recommended. The cronoSync library is provided with the Ndigo device driver. Please refer to the cronoTools user guide for more information.

3

Figure 2.1: If several Ndigo boards are connected to work in sync , the boards must be connected using a ribbon cable as bus for synchronization and trigger signals. Proper termination is required at both ends of the cable.

cronologic GmbH & Co. KG 4 Ndigo250M-14 User Guide

2.2 External Inputs and Connectors

2.2.1 Connectors

The inputs of the Ndigo250M-14 are located on the PCI bracket. Figure

2.3

on page

5

shows the location of the 4 analog inputs A to D and the two digital inputs G (GATE) and T (TRIGGER).

Furthermore, a board interconnection connector (C2) can be found at the top edge of the

Ndigo250M-14, as displayed in Figure

2.3

on page

5 . Connector C2 is used as a bus interface

between multiple Ndigo boards. It is used for distributing clock, trigger and sync signals. Proper termination must be placed at both ends of the bus interconnection ribbon cable, as shown in figure

2.1

.

Trigger

T D C B A

Gate

G

Figure 2.2: Input connectors of an Ndigo250M-14 located on the PCI bracket.

C2

T

D

C

B

A

G

Figure 2.3: Schematics of an Ndigo250M-14 board showing inter-board connector C2.

cronologic GmbH & Co. KG 5 Ndigo250M-14 User Guide

offset

+

-

450MHz

Figure 2.4: Input circuit for each of the four analog channels.

2.2.2 Analog Inputs

The analog inputs of the ADC are single ended LEMO00 coax connectors. The inputs have a

50Ω impedance and are DC coupled. The inputs are converted to a differential signal using an operational amplifier. The input voltage range is 1V voltage. See section

6.4.3

for details.

p-p centered around a programmable offset

Analog Offsets

+0.5 V

0.2V

+0.5V

-0.5 V analog_offset[i] = 0V

-0.5 V analog_offset[i] = 0.2V

Figure 2.5: Users can subtract an analog offset from the input before sampling at the ADC

Users can set the approximate center of the input voltage range individually for each channel by using the analog offset parameter. The valid voltage range for the offset is 0 . . . 2.5V . All cronologic GmbH & Co. KG 6 Ndigo250M-14 User Guide

input parameters are specified in section

6.4.3

.

This feature is especially useful for highly

+0.5V

+0.5V

analog_offset[i] = 0.43V

0.43V

-0.5 V analog_offset[i] = 0V

-0.5 V

Figure 2.6: Asymmetric signal shifted to increase dynamic range asymmetric signals, such as pulses from TOF spectrometers or LIDAR systems. By shifting the DC baseline to one end of the ADC range, the input range can be used fully, providing the maximum dynamic range.

2.2.3 Digital Inputs

There are two digital inputs on the front slot cover called TRIGGER and GATE.

Both inputs provide a digital input signal routed to the trigger matrix. These signals can be used to trigger any of the trigger state machines and gating blocks. The inputs are AC coupled. The DC offset is configurable via the parameters analog offset[4] for TRIGGER and analog offset[5] for GATE in the configuration structure. See section

3.4.1

for a definition of the configuration structure.

TRIGGER

TDC analog_offset[4]

Figure 2.7: TRIGGER and GATE are AC coupled inputs with programmable threshold. (Only

TRIGGER shown)

For the digital signals the offset directly sets the discrimination threshold at which edges are detected. To support both negative and positive pulses the valid range is -1.25V to +1.25V.

To prevent inter symbol interference caused by the AC coupling, the distance between adjacent pulses should be much longer than the width of each of the pulses.

The FPGA input logic is shown in Figure

2.13

on page

12 .

cronologic GmbH & Co. KG 7 Ndigo250M-14 User Guide

1,0V

analog_offset[4]

-1,0V

Figure 2.8: For TRIGGER and GATE negative thresholds can be set to support negative signals such as 16mA NIM.

TDC on Input TRIGGER

There is a TDC connected to the input TRIGGER. When used with the TDC, input TRIGGER supports negative pulses only and analog offset[4] must be negative. The TDC creates packets of type 8. These packets first contain a coarse timestamp and a payload that can be used to calculate the trigger position with higher precision. The function ndigo process tdc packet() can be used to replace the coarse timestamp with the precise timestamp. This function is described in section

3.5

on page

39 . TDC pulses must have a minimum duration of 3.3ns. The dead-time

of the TDC is 32ns. The TDC is only enabled if the divisor is set to 2. For the Ndigo 125M board the divisor has to be at least 4. Thus the TDC is disabled for this board. For lower sampling frequencies the decimation option can be used.

2.3 Extension Card

This Option is only available for the Ndigo5G-10.

cronologic GmbH & Co. KG 8 Ndigo250M-14 User Guide

2.4 Ndigo250M-14 Functionality

The analog input signal is quantized to 14 bits. However, the board always scales and offsets the data to 16 bit signed data centered around 0.

Interleaving of multiple channels is not supported

2.4.1 Zero Suppression

One of Ndigo250M’s key features is on-board zero suppression to reduce PCIe bus load. Only data that passes specifications predefined by the user is transmitted. This guide refers to the data structure in which wave form data is transmitted as “packets”. A packet contains the wave form data and a timestamp giving the absolute time (i.e. the time since start of data acquisition) of the packet’s last sample.

Figure

2.9

shows a simple example: Data is written to the PC only if values exceed a specified threshold. Expanding on that, Ndigo250M’s zero suppression can be used to realize much more complex scenarios.

Retrigger Precursor Postcursor

Figure 2.9: Simple zero suppression: Only data with values above a threshold are written to the

PC.

cronologic GmbH & Co. KG 9 Ndigo250M-14 User Guide

2.4.2 Trigger Blocks

The Ndigo250M-14 records analog wave forms using zero suppression. Whenever a relevant waveform is detected, data is written to an internal FIFO memory. Each ADC channel has one trigger block determining whether data is written to the FIFO. The parameters are set in

Structure ndigo trigger block(See chapter

3.4.3

on page

35 ).

Each trigger block consists of two independent units that check the incoming raw data stream for trigger conditions (Fig.

2.9

on page

9 ). Users can specify a threshold and can choose whether

triggering happens whenever incoming data is below or above the threshold (level triggering) or only in the moment data crosses the threshold (edge triggering).

A gate length can be set to extend the trigger window. Furthermore, if users choose precursor values > 0, the trigger unit will start writing data to the FIFO precursor samples before the trigger event.

When using edge triggering, all packets have the same length (Figure

2.10

on page

11 ):

precursor + length + 1 cycles. For level triggering, the packet length is data dependent (Figure

2.11

on page

11 ).

For the Ndigo250M-14 the triggering is sample accurate.

If retriggering is active, the current trigger window is extended if a trigger event is detected inside the window. The extension lasts length cycles after the last sample trigger event.

A trigger block can use several input sources:

ˆ the 8 trigger decision units of all four ADC channels (Figure

2.12

on page

12 )

ˆ the GATE input (Figure

2.13

on page

12 )

ˆ the TRIGGER input (Figure

2.13

on page

12 )

ˆ a function trigger providing random or periodic triggering (Section

2.4.4

on page

16 )

ˆ triggers originating from other cards connected with the sync cable or from the Ndigo

Extension card (BUS0, BUS1, BUS2, BUS3)

ˆ A second set of trigger units for the digital inputs TRIGGER, GATE, BUS0, BUS1, BUS2, and BUS3 that is set in hardware to positive edge triggering. This set of triggers is not available as inputs for the gate blocks.

Trigger inputs from the above sources can be combined using logical “OR” (Figure

2.14

on page

13 ) by setting the appropriate bits in the trigger blocks source mask.

Triggers can be fed into the gating blocks described on page

14

(Figure

2.15

). Gating blocks

can be used to block writing data to the FIFO. That way, only zero suppressed data occurring when the selected gate is active is transmitted. This procedure reduces PCIe bus load even further (Figure

2.15

).

cronologic GmbH & Co. KG 10 Ndigo250M-14 User Guide

precursor = 6 total length = 19 length = 12

Figure 2.10: Parameters for edge triggering

precursor = 6 total length = 21 length = 6

Figure 2.11: Parameters for level triggering cronologic GmbH & Co. KG 11 Ndigo250M-14 User Guide

trigger 1

Z -1 sample data threshold rising edge trigger 2

Z -1 threshold rising edge

Figure 2.12: From the ADC inputs, a trigger unit creates an input flag for the trigger matrix.

Each digitizer channel (A, B, C, D) has two trigger units.

Z

-1 input rising edge

Figure 2.13: The digital inputs TRIGGER, GATE, BUS0, BUS1, BUS2 and BUS3 have trigger units without a programmable threshold.

cronologic GmbH & Co. KG 12 Ndigo250M-14 User Guide

trig 1

Gates trigger_ block[0] trigger_ block[1] trigger_ block[2] trigger_ block[3] time stamp channel bus[0] bus[1] bus[2] bus[3]

Figure 2.14: Trigger Matrix: The trigger signals of each ADC channel, the TRIGGER input, the GATE input or the sync cable can be combined to create a trigger input for each trigger block. The four gate signals can be used to suppress triggers during certain time frames.

cronologic GmbH & Co. KG 13 Ndigo250M-14 User Guide

2.4.3 Gating Blocks

Figure 2.15: Gating Blocks: Each gating block can use an arbitrary combination of inputs to trigger its state machine. The outputs can be individually inverted and routed to the AND-gate feeding the trigger blocks.

To decrease the amount of data transmitted to the PC, the Ndigo250M-14 includes 4 independent gate and delay units. A gate and delay unit creates a gate window starting at a specified time after a trigger, closing the window at gate stop.

Trigger blocks can use the gate signal to suppress data acquisition: Only data that fulfills zero sup-pression specifications occurring in an active gate window is written to the PC.

All triggers from the 4 trigger blocks, the GATE and TRIGGER inputs, triggers from a connected board and the function generator can be used as inputs.

The retrigger feature will create a new gate if a trigger occurs during an active gate window.

The gate signal can be inverted, causing an active gate to close for a time defined by the user.

The parameters of a gating block are set in structure ndigo gating block described on page

36 .

cronologic GmbH & Co. KG 14 Ndigo250M-14 User Guide

Figure

2.16

shows the functionality of the gate timing and delay unit. Active gate time is marked in green.

Trigger

Gate

Gate Start

Gate Stop

Figure 2.16: Gate and delay functionality: When a trigger occurs, the gate opens after a set period of time (“gate start”) and closes when it reaches “gate stop”.

Gating Example 1: Suppression of Noise After Starting an Acquisition

In mass spectrometer and other experiments, noise while starting data acquisition can result in undesired trigger events for that time period. To prevent noise in the output data, a gating block could be used to suppress all triggers during start-up.

The following example illustrates the use of a gating block to prevent noise: The GATE input transmits a pulse on each acquisition start. The trigger structure of the GATE input is used to select pulse polarity. Then, the GATE trigger is selected as gating block input and the gating block’s start parameter is set to 0. The stop parameter is set to the desired length measured in

3.2ns clock cycle and negate is set to true. The gating block will now output a low pulse of the desired length whenever there is a pulse on the GATE input.

Enabling this gating block as an AND input to the trigger block, for which noise shall be suppressed.

Gating Example 2: Delayed Trigger

To sample a short window at a specified time after a trigger event on a channel, the gating block can be used to create a delayed trigger. To do this, one of the triggers of the channel of interested is configured to the desired parameters by selecting the threshold, setting the edge polarity and enabling edge triggering.

Instead of directly using this trigger as input to the trigger block’s input matrix, the trigger is selected as an input to a gating block. The block is configured to start = delay and stop = start + 1, negate = f alse. This causes the gating block to produce a one clock cycle pulse on cronologic GmbH & Co. KG 15 Ndigo250M-14 User Guide

its output after the specified delay.

To send this pulse to the trigger block, the gating block must be enabled in the trigger block’s

AND matrix and the ONE trigger source must be selected.

2.4.4 Auto Triggering Function Generator

Some applications require periodic or random triggering. Ndigo250M’s function generator provides this functionality.

The delay between two trigger pulses of this trigger generator is the sum of two components:

A fixed value M and a pseudo random value given by the exponent N.

The period is

T = 1 + M + [1...2

N

] (2.1) samples.

This allows to monitor input signals at times the current trigger configuration does not trigger, e. g. to get base line information in mass spectrometry applications. It can also be used to determine a suitable threshold level for the trigger by first getting random statistics on the input signal.

Auto Triggering Example 2: Continuous Data Retrieval

With the Ndigo250M it is possible to sample and process data continuously. For that, one defines the length of the packet and configures the auto trigger accordingly.

Choosing the length of a packet is always a tradeoff between having to process headers for short packets (see further down and

4.0.2

) and increasing the latency for long packets. The

latter is due to the fact, that the driver only returns complete packets.

The length of the data is set in words (maximum 4093) which contain 4 samples of length

4ns each. The packet thus includes a header (see

4.0.2

), the timestamp of the last word in the

packet and the data. Using pointer arithmetics one can directly access the data in the packet, ignoring header and timestamp.

Setting the auto trigger analogously to equation

2.1

to M = S − 1 and N = 0, with S the number of samples in each packet, one obtains a closed cycle of triggering and data recording.

To enable the auto trigger one has to configure the trigger block of the current channel with length = S and sources = NDIGO TRIGGER SOURCE AUTO and enable it.

cronologic GmbH & Co. KG 16 Ndigo250M-14 User Guide

2.4.5 Timestamp Channel

The timestamp channel produces a stream of small packets that denote the time of the trigger event. An arbitrary set of trigger sources can be selected in the trigger matrix to cause the creation of a packet.

The packets have a fixed length of 16 bytes. The format is described on page

43 . The length

field of the packet contains a 32 bit pattern that contains the levels of all trigger sources at the time of the trigger event except for the period monitor. Only one packet is created, no matter how many trigger sources caused the timestamp channel to trigger. The timestamp channel can be gated.

2.4.6 Data Lookup Table

This feature ist not available for the Ndigo250M-14.

cronologic GmbH & Co. KG 17 Ndigo250M-14 User Guide

2.5 Multiple Ndigo boards synchronization

Using several Ndigo devices in applications that use more channels than a single board can provide requires synchronized operation. To ensure exact synchronization, a delay parameter needs to be set for each board. This parameter might change in case boards are swapped, added or removed and in some cases might change after a firmware update.

The calibration tool “MultiboardCalibration.exe” is available after installing the Ndigo device driver. It is used to find appropriate delay values for each board in a given board setup. After starting, the application lists all Ndigo boards found (Figure

2.17

).

Figure 2.17: Main window of the multiple boards sync calibration tool.

A board’s appropriate delay depends on whether it operates in master or slave mode. The respective values can be set in the column “Delay M” (for master boards) and “Delay S” (for slave boards). The designated master board can be selected in the column “Master”. The calibration procedure creates a histogram for each board, displaying the current delay between the boards. The histogram can be viewed by clicking on “Show!”. When the appropriate delay values are found, they can be stored in the on-board flash prom by clicking “Do it!” separately for each board. Clicking “Flash All!” will write the values to all boards at once. Please note:

Flashing the values might take up to 10 seconds during which the program might not respond.

Important note:If the application reports a “PLL not locked” error check the cable. If the recording of histograms does not make progress check the cable. Make sure the cable is properly terminated at both ends and firmly attached to each card.

cronologic GmbH & Co. KG 18 Ndigo250M-14 User Guide

2.5.1 Calibration Procedure

1. Make sure the “Automode” is selected.

2. Record the calibration histograms by pressing “Record histograms”. The program will perform up to 200 measurements of the sync delay. After accumulating some data, the delay values found are reported in the column “AutoMmt”. The values can be verified by examining histogram that was recorded. A board’s histogram should look like the one shown in Figure

2.18

. During normal operation the delay will be adjusted such, that the

data points accumulated roughly coincide with the vertical markers in the upper panel.

As the delay pattern is periodic, valid delay values are between 0 and 31. Thus, the delay value found by the auto measurement should correspond to the distance between the vertical markers and accumulated data points. Hint: when moving the mouse pointer across the histogram the delay value of the current location is displayed.

3. After stopping the data acquisition (by pressing “Record Histograms” again) the delay values of the auto measurement need to be copied to the columns “Delay M” or “Delay

S” depending on the corresponding board being a master or a slave. The correct field to copy the value to is highlighted in green.

4. you may record recorded a new dataset as a crosscheck that the delay is now set to an appropriate value. By disabling “Automode” the new delay values are used. Press “Record

Histograms” in order to start the data acquisition. After some time the histogram should look similar to the one in Figure

2.19

.

5. The delay values for all boards in a set needs to be found. For the case a board acts as a master, the value “Delay M” needs to be adjusted, in case it is a slave, the “Delay S” parameter needs to be changed. In order to find the master-case delay values for all boards, the calibration procedure needs to be performed with every board acting as a master once.

After changing the master board, the slave values of the other boards don’t need to be readjusted. Only Ndigo5G boards may be set as masters. Therefore, a Ndigo250M board only needs to be calibrated as a slave.

6. After finding all delay values, write the values to the on-board flash PROMs by pressing

“Flash All!”.

cronologic GmbH & Co. KG 19 Ndigo250M-14 User Guide

Figure 2.18: Histogram for the case the delay value for the board is not set correctly. Please note: the lower panel might differ from board to board, with the “step” being at a different position.

Figure 2.19: Histogram for the case the delay value for the board is set correctly. Please note: the lower panel might differ from board to board, with the “step” being at a different position.

cronologic GmbH & Co. KG 20 Ndigo250M-14 User Guide

2.5.2 Synchronizing with an HPTDC8-PCI

The Ndigo250M-14 does not support synchronization with an HPTDC8-PCI.

cronologic GmbH & Co. KG 21 Ndigo250M-14 User Guide

2.6 Performing a firmware update

After installing the Ndigo device driver, a firmware update tool is available.

By choosing

“NdigoFirmwareGUI.exe” a firmware update can be performed. After invoking the application a window as shown in Figure

2.20

will appear. The tool can be used for updating the firmware and to create a backup of the on-board calibration data of the Ndigo unit. If several boards are present, the one which is going to be used can be selected in the upper left corner of the window.

“Backup” When pressing the “Backup” buttons a backup of the firmware or the calibration data will be created, respectively.

“Browse” In order to perform a firmware update, chose the “.ndigorom”-file to be used by pressing “Browse”.

The file contains the firmware proms for all boards of the Ndigo product line.

“Flash” By pressing “Flash” the firmware is written to the board.

“Verify” “Verify” can be used to compare the data stored inside the prom to the one inside a file.

Figure 2.20: The firmware update and calibration data backup tool as provided with the Ndigo device driver.

Important note: The new firmware will only be used after a power cycle, i.e. after switching the PC (or Ndigo crate) off and back on. A simple reboot is not sufficient. Therefore the cronologic GmbH & Co. KG 22 Ndigo250M-14 User Guide

information shown in the upper half of the application window does not change right after flashing a new firmware.

2.7 Calibrating the TDC

After each update of the Ndigo250M-14 firmware the TDC has to be calibrated. The calibration is done with the tool “TDC Calibration.exe” which is available after installing the Ndigo device driver. After invoking the application a window as shown in Figure

2.21

will appear.

Figure 2.21: The TDC calibration tool as provided with the Ndigo device driver.

The calibration procedure is as follows:

1. Connect an external pulse signal to the Trigger input. The signal should be low active with a frequency in the kHz range. It must not be synchronized to the clock source of the

Ndigo250M-14. The input frequency must not exceed 10 MHz. The pulse low and high width has to be at least 10ns each.

2. Set Serial Number according to the sticker on the card if the shown value is not correct.

3. Start capturing pulse events by pressing the Start button.

4. Adjust the Input Offset so that First Bin is in the range of 4 to 16. First Bin is less than

4, increment Input Offset by one. If First Bin is greater than 16 decrement Input Offset by one. Repeat increment/decrement until First Bin is in the range of 4 to 16. Depending on the firmware revision the Input Offset value for a successful calibration may be in the range of 6 to 10 or 28 to 32.

cronologic GmbH & Co. KG 23 Ndigo250M-14 User Guide

5. When the Write Calibration Data button becomes enabled press it to update the calibration data on the card.

6. Calibration done!

The card can only be successfully calibrated if:

ˆ First Bin is in the range of 4 to 16

ˆ Empty Bins is less than (First Bin + 4)

ˆ at least 10,000 events have been captured

ˆ a valid serial number is set.

Important note: If the application reports an error check if the input pulse is within specification.

cronologic GmbH & Co. KG 24 Ndigo250M-14 User Guide

3 Driver Programming API

The API is a DLL with C linkage. There also exists a .Net wrapper.

The functions provided by the DLL are declared in Ndigo250M interface.h and Ndigo common interface.h.

3.1 Constants

#define NDIGO250M CHANNEL COUNT 4

The number of analog input channels.

#define NDIGO250M GATE COUNT 4

The number of gating blocks.

#define NDIGO250M TDC COUNT 1

The number of TDC channels.

#define NDIGO250M DMA COUNT 6

The number of DMA channels. Unlike the Ndigo5G-10, this device has an individual DMA buffer for each data source.

#define NDIGO250M FIFO DEPTH 4094

Number of samples that can be buffered before readout. Longer packets are possible under certain circumstances.

25

3.2 Initialization

int ndigo250m count devices( int *error code, char **error message)

Return the number of boards that are supported by this driver in the system.

int ndigo250m get default init parameters( ndigo init parameters *init)

Get a set of default parameters to feed into ndigo init(). This must always be used to initialize the ndigo init parameter structure.

ndigo device *ndigo250m init( ndigo init parameters *params, int *error code, char **error message)

Open and initialize the Ndigo250M-14 board with the given index. With error code and error message the user must provide pointers where to buffers where error information should be written by the driver. The buffer for the error message must by at least 80 chars long.

Params is a structure of type ndigo init parameters that must be completely initialized.

int ndigo close( ndigo device *device)

Finalize the driver for this device.

3.2.1 Structure ndigo init parameters int version

Must be set to NDIGO API VERSION int card index

The index in the list of Ndigo250M-14 boards that should be initialized. There might be multiple boards in the system that are handled by this driver as reported by ndigo count devices. This index selects one of them. Boards are enumerated depending on the PCIe slot. The lower the bus number and the lower the slot number the lower the card index.

int board id

This 8 bit number is filled into each packet created by the board and is useful if data streams of multiple boards will be merged. If only Ndigo250M-14 cards are used this number can be set to the card index. If boards of different types that use a compatible data format are used in a system each board should get a unique id. Can be changed with int ndigo set board id(ndigo device

*device, int board id).

ndigo bool t use external clock

Use 10MHz clock supplied by IPC flat band cable. Must be set for all slaves when synchronizing multiple boards.

ndigo bool t drive external clock

Drive internal 10MHz clock of this board to IPC flat band cable. Must be set for master when synchronizing multiple boards.

cronologic GmbH & Co. KG 26 Ndigo250M-14 User Guide

ndigo bool t is slave

Data acquisition of this board is controlled by the master board.

int sync period

Period of the multicard sync pulse. Ignored for single board setups. Should be set to 4 if only

Ndigo5G and Ndigo250M boards are present in the system. If other boards are synchronized the correct value is the lowest common denominator of the value of all boards.

int sync delay

Fine tap delay for incoming sync signals. Ignored for single board setups.

int sync delay master

Fine tap delay for sync signals. Ignored for single board setups.

ndigo bool t force window calibration

If true/1, a valid data window is automatically detected at initialization. Default value is false/0: values from flash memory are used in order to set the data window to correct position.

ndigo bool t hptdc sync enabled

Must be set to false.

int64 buffer size[8]

The minimum size for each of the DMA buffers. The driver will allocate a multiple of the system page size (usually 4096 bytes). The minimum buffer size is four pages. If set to 0 the default size of 16MByte is used. Ndigo250M-14 uses buffer size[0] to buffer size[NDIGO250M DMA COUNT-

1].

int buffer type

Must be set to NDIGO BUFFER ALLOCATE.

int64 buffer address

Ignored. Might be used for future buffer types.

int variant

Set to 0. Can be used to activate future device variants such as different base frequencies.

int device type

Initialized by ndigo get default init parameters(). Must be left unchanged.

#define CRONO DEVICE HPTDC 0

#define CRONO DEVICE NDIGO5G 1

#define CRONO DEVICE NDIGO250M 2 int dma read delay

Initialized by ndigo get default init parameters(). The write pointer updated is delay by this number of 4n clock periods to hide race conditions between software and DMA.

cronologic GmbH & Co. KG 27 Ndigo250M-14 User Guide

3.3 Status Information

3.3.1 Functions for Information Retrieval

The driver provides functions to retrieve detailed information on the type of board, its configuration, settings and state. The information is split according to its scope and the computational requirements to query the information from the board.

int ndigo get static info( ndigo device *device, ndigo static info *info)

This structure contains information about the board that does not change during run time.

int ndigo get param info( ndigo device *device, ndigo param info *info)

The structure returned by this call contains information that changes indirectly due to configuration changes.

int ndigo get fast info( ndigo device *device, ndigo fast info *info)

This call returns a structure that contains dynamic information that can be obtained within a few microseconds.

int ndigo get slow info( ndigo device *device, ndigo slow info *info)

The data reported in this structure requires milliseconds to be obtained. The application should only call it in situation where the program flow can cope with an interruption of that magnitude.

const char* ndigo get last error message( ndigo device *device)

3.3.2 Structure ndigo static info

This structure contains information about the board that does not change during run time. It is provided by the function ndigo get static info.

int size

The number of bytes occupied by the structure int version

A version number that is increased when the definition of the structure is changed. The increment can be larger than one to match driver version numbers or similar.

int board id

Index of the board as passed to the constructor or set via int ndigo set board id(ndigo device

*device, int board id).

int driver revision

The lower three bytes contain a triple level hierarchy of version numbers, e.g. 0x010103 encodes version 1.1.3.

cronologic GmbH & Co. KG 28 Ndigo250M-14 User Guide

A change in the first digit generally requires a recompilation of user applications. Change in the second digit denote significant improvements or changes that don’t break compatibility and the third digit changes with minor bugfixes and similar updates.

int firmware revision

Firmware revision of the FPGA configuration. This increments only when there is a functional change.

int board revision int board configuration

Describes the schematic configuration of the board.

int adc resolution

Number of bits of the ADC, set to 0 if unknown. Should be 14.

double nominal sample rate

Maximum sample rate. 2.5e8 = 250Msps for the Ndigo250M and 1.25e8 = 125Msps for the

Ndigo125M.

double analog bandwidth

1.25e8 for 125MHz.

int chip id

16 bit factory ID of the ADC chip int board serial

Serial number with the year minus 2000 in the highest 8 bits of the integer and a running number in the lower 24 bits. This number is identical with the one on the label on the board.

int flash serial low int flash serial high

64 bit manufacturer serial number of the flash chip.

int flash valid

If not 0 the driver found valid calibration data in the flash on the board and is using it.

ndigo bool t dc coupled

Returns true for the Ndigo250M.

int subversion revision

A number to track builds of the firmware in more detail than the firmware revision. It changes with every change in the firmware, even if there is no visible effect for the user.

char calibration date[20]

DIN EN ISO 8601 string YYYY-MM-DD HH:DD describing the time when the card was calibrated.

cronologic GmbH & Co. KG 29 Ndigo250M-14 User Guide

3.3.3 Structure ndigo param info int size

The number of bytes occupied by the structure.

int version

A version number that is increased when the definition of the structure is changed. The increment can be larger than one to match driver version numbers or similar.

double bandwidth

Analog Bandwidth setting of the ADC. Should be 450MHz.

double sample rate

Sample rate currenly used. sample rate = 2.5e8/divisor.

double sample period

The period one sample in the data represents in picoseconds.

int board id

The number the board uses to identify the data source in the output data stream.

int channels

Number of channels. Should be 4.

int channel mask

Mask with a set bit for each enabled input channel.

int64 total buffer

The total amount of the DMA buffer in bytes.

3.3.4 Structure ndigo fast info

This structure contains information that can be retrieved within microseconds.

int size

The number of bytes occupied by the structure int version

A version number that is increased when the definition of the structure is changed. The increment can be larger than one to match driver version numbers or similar.

int adc rpm

Always reports 0.

int fpga rpm

Speed of the FPGA fan. Reports 0 if no fan is present.

int alerts cronologic GmbH & Co. KG 30 Ndigo250M-14 User Guide

Alert flags from the system monitor and temperature sensor. Bits 0 to 3 are measured by the system monitor of the FPGA. Bits 4 and 5 are provided by an external temperature sensor.

Bit 0 : FPGA temperature alert (> 85

C)

Bit 1 : Internal FPGA voltage out of range (< 1.01V or > 1.08V )

Bit 2 : FPGA auxiliary voltage out of range. (< 2.375V or > 2.625V )

Bit 3 : FPGA temperature critical (> 125

C)

Bit 4 : FPGA temperature alert (> 90

C)

Bit 5 : FPGA temperature critical (> 100

C) double voltage aux

Auxiliary FPGA voltage, nominal 2.5V

double voltage int

Internal FPGA voltage, nominal 1.03V

double fpga temperature

In

C measured on die by internal system monitor.

double pcie pwr mgmt

Set to 0 if link power management is turned off.

int pcie link width

Number of PCIe lanes that the card uses. Should be 8. Lower values possible if the mainboard does not support 8 lanes in the slot chosen.

int pcie max payload

Maximum size in bytes for one PCIe transaction, depends on system configuration.

3.3.5 Structure ndigo slow info

This structure contains data that requires many milliseconds to retrieve.

int size

The number of bytes occupied by the structure.

int version

A version number that is increased when the definition of the structure is changed. The increment can be larger than one to match driver version numbers or similar. Set to 0 for all versions up to first release.

double FPGA temperature

ADC temperature in

C measured on die by external temperature sensor.

double board temperature

In

C. Measured by external temperature sensor.

cronologic GmbH & Co. KG 31 Ndigo250M-14 User Guide

3.4 Configuration

The device is configured with a configuration structure. The user should first obtain a structure that contains the default settings of the device read from an on board ROM , than modify the structure as needed for the user application and use the result to configure the device.

int ndigo250m get default configuration( ndigo device *device, ndigo250m configuration *config) int ndigo250m get current configuration( ndigo device *device, ndigo250m configuration *config) int ndigo250m configure( ndigo device *device, ndigo250 configuration *config) int ndigo set board id( ndigo device *device, int board id)

The board id can be changed after initialization of the card. If cronotools are used the board id changes have to be done before cronotools initialization.

3.4.1 Structure ndigo250m configuration

This is the structure containing the configuration information. It is used in conjunction with ndigo get default configuration, ndigo get current configuration and ndigo configure.

It uses internally the structures ndigo trigger block and ndigo trigger.

int size

The number of bytes occupied by the structure.

int version

A version number that is increased when the definition of the structure is changed. The increment can be larger than one to match driver version numbers or similar. Set to 0 for all versions up to first release.

int reserved1

Reserved for internal usage. Do not change.

ndigo bool t tdc enabled

Enable capturing of TDC measurements on external digital input channel. Only possible for divisor = 2 for the Ndigo 250M-14 and not possible at all for the Ndigo 125M. For lower sampling rates the decimation option can be used.

ndigo bool t tdc fb enabled

Enable enhanced TDC resolution. Currently not implemented.

double analog offset[6]

Sets the input DC offset-values to +- this value in volts. Valid range for analog offset[0] to analog offset[3] is 0 to 2.5V (see section

2.2.2

). analog offset[4] and analog offset[5] are the

cronologic GmbH & Co. KG 32 Ndigo250M-14 User Guide

TRIGGER and GATE input thresholds.

ndigo trigger trigger[NDIGO TRIGGER COUNT]

Configuration of the external trigger sources. Threshold is ignored for entries 8 and above.

The trigger indexes refer to the entry in the trigger array and are defined like this:

#define NDIGO TRIGGER A0

#define NDIGO TRIGGER A1

#define NDIGO TRIGGER B0

#define NDIGO TRIGGER B1

#define NDIGO TRIGGER C0

#define NDIGO TRIGGER C1

#define NDIGO TRIGGER D0

#define NDIGO TRIGGER D1

#define NDIGO TRIGGER TDC

#define NDIGO TRIGGER GATE

#define NDIGO TRIGGER BUS0

#define NDIGO TRIGGER BUS1

#define NDIGO TRIGGER BUS2

#define NDIGO TRIGGER BUS3

#define NDIGO TRIGGER AUTO

#define NDIGO TRIGGER ONE 15

#define NDIGO TRIGGER TDC PE 16

#define NDIGO TRIGGER GATE PE 17

12

13

14

#define NDIGO TRIGGER BUS0 PE 18

#define NDIGO TRIGGER BUS1 PE 19

#define NDIGO TRIGGER BUS2 PE 20

#define NDIGO TRIGGER BUS3 PE 21

9

10

11

6

7

8

3

4

5

0

1

2

Sources 16 to 21 always are positive edge triggered.

ndigo trigger block trigger block[NDIGO CHANNEL COUNT + 1]

A structure describing the trigger settings of the four channels plus the timestamp channel.

ndigo gating block gating block[NDIGO250M GATE COUNT]

A structure describing the gating blocks that can be used by the trigger blocks to filter triggers.

int drive bus[4]

Enable output drive for each of the four external sync lines. Each integer represents a bitmask selecting the trigger sources for that line. The bit mapping is described in section “Structure ndigo trigger block” on page

35 .

int auto trigger period int auto trigger random exponent

Create a trigger either periodically or randomly. There are two parameters M = trigger period cronologic GmbH & Co. KG 33 Ndigo250M-14 User Guide

and N = random exponent that result in a distance between triggers of

T = 1 + M + [1...2

N

] clock cycles.

(3.1)

0 ≤ M < 2

32

0 ≤ N < 32

(3.2)

(3.3)

There is no enable or reset as the usage of this trigger can be configured in the trigger block channel source field.

int divisor

The 500MHz base clock is divided by this divisor to create the rsampling frequency. Valid values are 2 to 32 for the Ndigo250M and 4 to 32 for the Ndigo125M.

int decimation

Reduces sample rate by given factor.

Range: 1 - 255

Note: Decimation factors 2 and 3 only skip samples, factors 4 - 255 use a CIC decimation filter.

int high gain[2]

If set to 1 the input gain is boosted by 3.5dB. Gain[0] modifies channels 0 and 1, gain[1] modifies channels 2 and 3. This feature is not yet implemented.

int fine gain[2]

Gain setting in steps of 0.5dB from 0 (0dB) to 12 (6.0dB). Gain[0] modifies channels 0 and 1, gain[1] modifies channels 2 and 3. This feature is not yet implemented.

int gain correction[2]

Gain setting in steps of 0.05dB from 0 (0dB) to 10 (0.5dB). Gain[0] modifies channels 0 and 1, gain[1] modifies channels 2 and 3. This feature is not yet implemented.

3.4.2 Structure ndigo trigger short threshold

Sets the threshold for the trigger block within the range of the ADC data of -32768 and +32768.

For trigger indices NDIGO TRIGGER TDC to NDIGO TRIGGER BUS3 PE the threshold is ignored.

ndigo bool t edge

If set this trigger implements edge trigger functionality else this is a level trigger.

cronologic GmbH & Co. KG 34 Ndigo250M-14 User Guide

For trigger indices NDIGO TRIGGER AUTO and NDIGO TRIGGER ONE this is ignored.

For trigger indices NDIGO TRIGGER TDC PE to NDIGO TRIGGER BUS3 PE this must be set.

ndigo bool t rising

If set trigger on rising edges or when above threshold.

For trigger indices NDIGO TRIGGER AUTO and NDIGO TRIGGER ONE this is ignored.

For trigger indices NDIGO TRIGGER TDC PE to NDIGO TRIGGER BUS3 PE this must be set.

3.4.3 Structure ndigo trigger block ndigo bool t enabled

Activate triggers on this channel.

ndigo bool t retrigger

If a new trigger condition occurs while the postcursor is acquired the packet is extended by starting a new postcursor. Otherwise the new trigger is ignored and the packet ends after the precursor of the first trigger.

The retrigger setting is ignored for the timestamp channel.

ndigo bool t reserved1

Defaults to false. Do not change.

ndigo bool t reserved2

Defaults to false. Do not change.

int precursor

The amount of data preceding a trigger that is captured.

The precursor setting is ignored for the timestamp channel.

int length

The total amount of samples that are recorded in addition to the trigger window. Precursor determines how many of these are ahead of the trigger and how many are appended after the trigger. In edge trigger mode the trigger window always is one sample, in level trigger mode it is as long as the trigger condition is fulfilled.

The length setting is ignored for the timestamp channel.

int sources

A bit mask with a bit set for all trigger sources that can trigger this channel.

#define NDIGO TRIGGER SOURCE A0

#define NDIGO TRIGGER SOURCE A1

#define NDIGO TRIGGER SOURCE B0

0x00000001

0x00000002

0x00000004 cronologic GmbH & Co. KG 35 Ndigo250M-14 User Guide

#define NDIGO TRIGGER SOURCE B1

#define NDIGO TRIGGER SOURCE C0

#define NDIGO TRIGGER SOURCE C1

#define NDIGO TRIGGER SOURCE D0

#define NDIGO TRIGGER SOURCE D1

#define NDIGO TRIGGER SOURCE TDC

#define NDIGO TRIGGER SOURCE GATE

#define NDIGO TRIGGER SOURCE BUS0

#define NDIGO TRIGGER SOURCE BUS1

#define NDIGO TRIGGER SOURCE BUS2

#define NDIGO TRIGGER SOURCE BUS3

#define NDIGO TRIGGER SOURCE AUTO

0x00000008

0x00000010

0x00000020

0x00000040

0x00000080

0x00000100

0x00000200

0x00000400

0x00000800

0x00001000

0x00002000

0x00004000

#define NDIGO TRIGGER SOURCE ONE 0x00008000

#define NDIGO TRIGGER SOURCE TDC PE 0x01000000

#define NDIGO TRIGGER SOURCE GATE PE 0x02000000

#define NDIGO TRIGGER SOURCE BUS0 PE 0x04000000

#define NDIGO TRIGGER SOURCE BUS1 PE 0x08000000

#define NDIGO TRIGGER SOURCE BUS2 PE 0x10000000

#define NDIGO TRIGGER SOURCE BUS3 PE 0x20000000 int gates

#define NDIGO TRIGGER GATE NONE 0x0000

#define NDIGO TRIGGER GATE 0

#define NDIGO TRIGGER GATE 1

#define NDIGO TRIGGER GATE 2

#define NDIGO TRIGGER GATE 3

0x0001

0x0002

0x0004

0x0008 double minimum free packets;

This parameter sets how many packets are supposed to fit into the on-board FIFO before a new packet is started after the FIFO was full, i.e. a certain amount of free space in the FIFO is demanded before a new packet is written after the FIFO was full. As a measure for the packet length the gatelength set by the user is used. The on-board algorithm checks the free FIFO space only in case the FIFO is full. Therefore, if this number is 1.0 or more at least every second packet in the DMA buffer is guaranteed to have the full length set by the gatelength parameters.

In many cases smaller values will also result in full length packets. But below a certain value multiple packets that are cut off at the end will show up.

3.4.4 Structure ndigo gating block ndigo bool t negate

Invert output polarity. Defaults to false.

cronologic GmbH & Co. KG 36 Ndigo250M-14 User Guide

ndigo bool t retrigger

Defaults to false. If retriggering is enabled the timer is reset to the value of the start parameter whenever the input signal is set while waiting to reach the stop time.

ndigo bool t extend

Defaults to true. If set, a gate is created with the set timing from the first occurrence of the input trigger even for short gates. If not set, the input signal must persist for the gate to be created. This feature is NOT YET IMPLEMENTED.

ndigo bool t reserved1

Defaults to false. Do not change.

int start

The number of samples from the first input signal seen in the idle state until the gating output is set.

int stop

The number of samples from leaving the idle state until the gating output is reset. If retriggering is enabled the timer is reset to the value of the start parameter whenever the input signal is set while waiting to reach the stop time.

int sources

A bit mask with a bit set for all trigger sources that can trigger this channel. The gates cannot use the additional digital trigger sources NDIGO TRIGGER SOURCE TDC PE to

NDIGO TRIGGER SOURCE BUS3 PE.

#define NDIGO TRIGGER SOURCE A0

#define NDIGO TRIGGER SOURCE A1

#define NDIGO TRIGGER SOURCE B0

#define NDIGO TRIGGER SOURCE B1

0x00000001

0x00000002

0x00000004

0x00000008

#define NDIGO TRIGGER SOURCE C0

#define NDIGO TRIGGER SOURCE C1

#define NDIGO TRIGGER SOURCE D0

#define NDIGO TRIGGER SOURCE D1

0x00000010

0x00000020

0x00000040

0x00000080

#define NDIGO TRIGGER SOURCE TDC 0x00000100

#define NDIGO TRIGGER SOURCE GATE 0x00000200

#define NDIGO TRIGGER SOURCE BUS0 0x00000400

#define NDIGO TRIGGER SOURCE BUS1 0x00000800

#define NDIGO TRIGGER SOURCE BUS2 0x00001000

#define NDIGO TRIGGER SOURCE BUS3 0x00002000

#define NDIGO TRIGGER SOURCE AUTO 0x00004000

#define NDIGO TRIGGER SOURCE ONE 0x00008000 cronologic GmbH & Co. KG 37 Ndigo250M-14 User Guide

3.4.5 Structure ndigo extension block

The extension block is not used in the Ndigo250M.

3.4.6 Run Time Control int ndigo start capture( ndigo device *device) int ndigo pause capture( ndigo device *device) int ndigo continue capture( ndigo device *device)

Call this to resume data acquisition after a call to ndigo pause capture.

int ndigo stop capture( ndigo device *device, int channel mask) int ndigo single shot( ndigo device *device, int channel mask)

Enable the selected channels. A channel is disabled again immediately after the first trigger on that channel.

int ndigo manual trigger( ndigo device *device, int channel mask)

Cause the selected channels to trigger immediately. They must be enabled.

#define NDIGO250M CHANNEL A MASK 0x01

#define NDIGO250M CHANNEL B MASK 0x02

#define NDIGO250M CHANNEL C MASK 0x04

#define NDIGO250M CHANNEL D MASK 0x08

#define NDIGO250M CHANNEL T MASK 0x10 cronologic GmbH & Co. KG 38 Ndigo250M-14 User Guide

3.5 Readout

int ndigo250m read( ndigo device *device, ndigo250m read in *in, ndigo250m read out *out)

For each DMA channel returns a pointer to an array of captured data in read out. The result can contain any number of packets of type ndigo packet. read in provides parameters to the driver. A call to this method automatically allows the driver to reuse the memory returned in the previous call.

Returns an error code as defined in the structure ndigo read out.

int ndigo250m acknowledge( ndigo device *device, ndigo packet *packet)

Acknowledge all data up to the packet provided as parameter. This is mandatory if acknowledge last read in the ndigo read in structure is set to false for calls to ndigo read.

This feature allows to either free up partial DMA space early if there will be no call to ndigo read anytime soon. It also allows to keep data over multiple calls to ndigo read to avoid unnecessary copying of data.

int ndigo process tdc packet( ndigo device *device, ndigo packet *packet)

Call on a TDC packet to update the timestamp of the packet with a more accurate value. If called more than once on a packet the timestamp will be invalid.

3.5.1 Input Structure ndigo250m read in ndigo bool t acknowledge last read

If set ndigo read automatically acknowledges packets from the last read.

mask

This is a bitmask that defines which channels are to be read. All other channels will be left untouched. A value of 0 reads all channels.

3.5.2 Input Structure ndigo250m read out ndigo packet *first packet[NDIGO25M DMA COUNT]

For each DMA channel a pointer to the first packet that was captured by the call of ndigo read.

ndigo packet *last packet[NDIGO25M DMA COUNT]

For each DMA channels the address of the header of the last packet in the buffer.

int error code[NDIGO25M DMA COUNT]

#define NDIGO READ OK 0

#define NDIGO READ NO DATA 1

#define NDIGO READ INTERNAL ERROR 2 const char *error message[NDIGO25M DMA COUNT] Error messages created by readout cronologic GmbH & Co. KG 39 Ndigo250M-14 User Guide

separately for each channel.

cronologic GmbH & Co. KG 40 Ndigo250M-14 User Guide

3.6 Other Functions

3.6.1 LED control

There are six LEDs on the front panel. The intensity of the red and green part can be set from

0 to 255. There is no blue component in the current version. Per default all LEDs are set to auto mode. This means that used channels are lit green, activity is shown as yellow on overflow is shown as red.

int ndigo set led color( ndigo device *device, int led, unsigned short r, unsigned short g, unsigned short b)

Set the LED to the selected color. No automatic updates are performed.

int ndigo set led automode( ndigo device *device, int led)

Let the selected LED be controlled by hardware.

3.7 Packet Format

3.7.1 Output Structure ndigo packet unsigned char channel

0 to 3 for the ADC input channels, 4 for the TDC, 5 for the timestamp channel.

unsigned char card

Identifies the source card in case there are multiple boards present. Defaults to 0 if no value is assigned to the parameter board id in Structure ndigo init parameters or set via int ndigo set board id(ndigo device *device, int board id).

unsigned char type

For the ADC channels this is set to 1 to signify 16 bit signed data.

For the TDC channel it is set to 8 to signify 64 bit unsigned data.

If the type field is 128 or greater then there is no data present, even if length is not 0. In this cases the length field may contain other data.

Type Length Field Description

1

8

Number of payload words

Number of payload words

16 bit signed samples from one of the ADCs

64 Bit unsigned TDC Data, only for internal processing

128 Bit pattern of trigger sources Whenever at least one of the sources that is enabled for the timestamp channel triggers, one of these packets is generated.

The length field contains the triggers that are active when this packet was created.

unsigned char flags cronologic GmbH & Co. KG 41 Ndigo250M-14 User Guide

If the bit with weight 1 is set, the packet was truncated because the internal FIFO was full.

If the bit with weight 2 is set, there are lost triggers immediately preceding this packet due to insufficient DMA buffers.

If the bit with weight 4 is set, the packet contains ADC sample overflows.

If the bit with weight 8 is set, there are lost triggers immediately preceding this packet due to insufficient buffers.

unsigned int length

Number of 64-bit elements (each containing 4 samples) in the data array if type < 128.

If type = 128 this is the pattern of trigger sources that where active in the clock cycle given by the timestamp. Bits are set according to the trigger sources, i.e. bit 0 is set if trigger A0 was active, bit 29 is set if trigger BUS3 PE was active. Use the NDIGO TRIGGER SOURCE * # defines to check for the bits set.

unsigned int64 timestamp

ADC channels A to D: Timestamp of the last word in the packet in ps.

TDC: Timestamp of the trigger event (falling edge) on the TDC channel in ps.

When ndigo process tdc packet() is called once on the packet the timestamp is replaced with the precise timestamp for the edge.

Timestamp channel: Timestamp of the trigger event in ps.

unsigned int64 data[]

Sample data. For the Ndigo5G each 64 bit word contains four 16 bit signed words from the

ADC. The user can cast the array to short* to directly operate on the sample data.

cronologic GmbH & Co. KG 42 Ndigo250M-14 User Guide

4 C Example

35

36

37

38

29

30

31

32

33

34

25

26

27

28

21

22

23

24

10

11

12

13

8

9

6

7

3

4

5

1

2

14

15

16

17

18

19

20

#i n c l u d e ” N d i g o i n t e r f a c e . h ”

#i n c l u d e ” N d i g o 2 5 0 M i n t e r f a c e . h ”

#i n c l u d e <s t d i o . h>

#i n c l u d e < s t d l i b . h>

#d e f i n e BUFFER SIZE ( 1 << 2 1 ) i n t

{ main ( i n t i n t e r r o r c o d e ; c o n s t c h a r

* e r r o r m e s s a g e ; n d i g o d e v i c e

* ndgo = n d i g o 2 5 0 m i n i t (&params , &e r r o r c o d e , &e r r o r m e s s a g e ←-

) ; i f ( e r r o r c o d e != NDIGO OK ) { p r i n t f ( ” \ n E r r o r %d : %s \ n ” , e r r o r c o d e , e r r o r m e s s a g e ) ;

} e x i t ( −1) ; a r g c , c h a r

* argv [ ] ) n d i g o i n i t p a r a m e t e r s params ; n d i g o 2 5 0 m g e t d e f a u l t i n i t p a r a m e t e r s (& params ) ; params . c a r d i n d e x = 0 ; f o r ( i n t i = 0 ;

// 2 MB i < NDIGO250M DMA COUNT ; params . b u f f e r s i z e [ i ] = BUFFER SIZE ; i ++) n d i g o 2 5 0 m c o n f i g u r a t i o n c o n f i g ; n d i g o 2 5 0 m g e t d e f a u l t c o n f i g u r a t i o n ( ndgo , &c o n f i g ) ;

// d i s a b l e unused t r i g g e r

// c o n f i g u r e b l o c k s c o n f i g . t r i g g e r b l o c k [ 1 ] . e n a b l e d = c o n f i g . t r i g g e r b l o c k [ 4 ] . e n a b l e d = t r i g g e r b l o c k 0 c o n f i g . t r i g g e r b l o c k [ 0 ] . e n a b l e d = f a l s e c o n f i g . t r i g g e r b l o c k [ 2 ] . e n a b l e d = f a l s e ; c o n f i g . t r i g g e r b l o c k [ 3 ] . e n a b l e d = f a l s e ; f a l s e t r u e ;

;

; c o n f i g . t r i g g e r b l o c k [ 0 ] . m i n i m u m f r e e p a c k e t s = 1 . 0 ;

43

77

78

79

80

81

82

83

84

85

72

73

74

75

76

66

67

68

69

70

71

62

63

64

65

58

59

60

61

51

52

53

54

55

56

57

47

48

49

50

43

44

45

46

39

40

41

42 c o n f i g . t r i g g e r b l o c k [ 0 ] . p r e c u r s o r = 1 ; c o n f i g . t r i g g e r b l o c k [ 0 ] . r e t r i g g e r = 0 ; c o n f i g . t r i g g e r b l o c k [ 0 ] . s o u r c e s = NDIGO TRIGGER SOURCE A0 ; c o n f i g . t r i g g e r b l o c k [ 0 ] . l e n g t h = 1 6 ; c o n f i g . t r i g g e r b l o c k [ 0 ] . g a t e s = NDIGO TRIGGER GATE NONE ; c o n f i g . a n a l o g o f f s e t [ 0 ] = 0 . 1 ; c o n f i g . t r i g g e r [ NDIGO TRIGGER A0 ] . e d g e = t r u e ; c o n f i g . t r i g g e r [ NDIGO TRIGGER A0 ] . r i s i n g = f a l s e ; c o n f i g . t r i g g e r [ NDIGO TRIGGER A0 ] . t h r e s h o l d = 0 ; i f ( n d i g o 2 5 0 m c o n f i g u r e ( ndgo , &c o n f i g ) != NDIGO OK ) { p r i n t f ( ” \ n F a t a l c o n f i g u r a t i o n e r r o r .

A b o r t i n g . . . \ n ” ) ; e x i t ( −1) ;

} n d i g o s t a r t c a p t u r e ( ndgo ) ;

// c o u n t s t h e number o f p a c k e t s r e c e i v e d i n t c o u n t = 0 ; w h i l e ( c o u n t < 10 ) { n d i g o r e a d i n i n ;

// Do n o t w a i t f o r d a t a

// ( i f s e t t o 1 t h e n d i g o a c k n o w l e d g e f u n c t i o n has t o be removed ) i n . a c k n o w l e d g e l a s t r e a d = 0 ; n d i g o r e a d o u t o u t ; i n t r e s u l t = n d i g o r e a d ( ndgo , &i n , &o u t ) ; i f ( ! r e s u l t ) {

// b u f f e r r e c e i v e d w i t h one o r more p a c k e t s n d i g o p a c k e t

* packet = out . f i r s t p a c k e t ; w h i l e ( p a c k e t <= o u t . l a s t p a c k e t ) { i n t l e n g t h = 0 ; i f ( ! ( p a c k e t −>t y p e & NDIGO PACKET TYPE TIMESTAMP ONLY ) ) l e n g t h = p a c k e t −>l e n g t h ; p r i n t f ( ” Card %d , C h a n n e l %d , F l a g s %d , L e n g t h %d , Timestamp %l l u \←n ” , p a c k e t −>c a r d , p a c k e t −>c h a n n e l , p a c k e t −>f l a g s , l e n g t h , p a c k e t −>←t i m e s t a m p ) ; i f ( ! ( p a c k e t −>t y p e & NDIGO PACKET TYPE TIMESTAMP ONLY ) )

{ s h o r t

* data = ( s h o r t

*) packet−>data ; f o r ( u n s i g n e d i n t i = 0 ; i < p a c k e t −>l e n g t h

* 4 ; i++ ) p r i n t f ( ”%6d , ” ,

*( data++)) ; p r i n t f ( ” \ n \ n ” ) ;

} cronologic GmbH & Co. KG 44 Ndigo250M-14 User Guide

86

91

92

93

94

87

88

89

90

95

96

}

// c u r r e n t p a c k e t p o i n t e r i s i n v a l i d a f t e r c a l l t o ←n d i g o a c k n o w l e d g e ( ) n d i g o p a c k e t

* n e x t p a c k e t = n d i g o n e x t p a c k e t ( packet ) ; n d i g o a c k n o w l e d g e ( ndgo , p a c k e t ) ; p a c k e t = n e x t p a c k e t ; c o u n t ++;

}

}

} n d i g o c l o s e ( ndgo ) ; r e t u r n 0 ; cronologic GmbH & Co. KG 45 Ndigo250M-14 User Guide

cronologic GmbH & Co. KG 46 Ndigo250M-14 User Guide

5 Technical Data

5.1 Operating Conditions

5.1.1 Environmental Conditions for Operation

The board is designed to be operated under the following conditions:

Symbol Parameter ambient temperature relative humidity at 31

Min Typ Max Units

5

C 20

40

75

C

%

5.1.2 Environmental Conditions for Storage

The board shall be stored between operation under the following conditions:

Symbol Parameter ambient temperature relative humidity at 31

Min Typ Max Units

-30

C non condensing 10

60

70

C

%

5.2 Digitizer Characteristics

Each board ist tested against the values listed in the ‘Min’ column. ‘Typ’ is the mean value of the first 10 boards produced.

PCIe throughput is 1400MB/s typical. (x8 Gen1)

Symbol Parameter

THD

SNR

Total Harmonic Distortion

Signal to Noise Ration

72

62

SFDR incl

SFDR excl

Spurious Free Dynamic Range (including Harmonics)

Spurious Free Dynamic Range (excluding Harmonics)

70

90

SINAD Signal-to-Interference Ratio including Noise and Distortion 61

ENOB Effective Number of Bits 10

Min Typ Max Units dB dB dB dB dB

47

5.3 TDC Characteristics

Symbol

BIN

TDC

INL

TDC

Parameter

TDC bin size

TDC integral nonlinearity

Min Typ Max Units ps

Input Pulse Width 3.3

Input Pulse Spacing (Deadtime) 32 ns ns

5.4 Electrical Characteristics

5.4.1 Oscillator

The Ndigo250M-14 uses an OCXO oscillator with 25ppb stability. After power up the oscillator needs to run for 10 minutes to reach this stability

5.4.2 Power Supply

Symbol

I

VCC

I

VCC

I

VCC

Parameter

PCIe 3,3V rail power consumption

PCIe 3,3V rail power supply

PCIe 12V rail power consumption

PCIe 12V rail power supply

PCIe 3,3VAux rail power consumption

PCIe 3,3VAux rail power supply

Min Type Max Units

0,4

3,003 3,3 3,579

11,04 12

2,1

12,96

0

3,3

A

V

A

V

A

V

5.4.3 Analog Inputs

DC coupled single ended analog inputs. (AC coupled available as an option.)

Symbol

V off

V in

V p-p

Z

A f

−3dB f

−6dB

Parameter input center offset

Input Voltage

Input Voltage Peak to Peak input impedance

-3dB frequency

-6dB frequency

Min

0

V off

-0.5

90

100

Typ

1

50

92

105

Max

2.5

V off

+0.5

100

110

Units

V

V

V

MHz

MHz

The corresponding frequency response is shown in fig.

6.1

.

cronologic GmbH & Co. KG 48 Ndigo250M-14 User Guide

Figure 5.1: Frequency response of the tested channel.

5.4.4 Digital Inputs

AC coupled single ended digital inputs TRIGGER and GATE.

Symbol

V

Dth

V dn

V dn

Z

D

Parameter Min discrimination threshold -1.25

recommended amplitude for negative pulses -0.1 - V

Dth recommended amplitude for negative pulses 0.1 + V

Dth input impedance

Typ

2V

Dth

2V

Dth

50

Max

1.25

1.25 - V

Dth

1.25 + V

Dth

Units

V

V

V

Ω cronologic GmbH & Co. KG 49 Ndigo250M-14 User Guide

5.5 Information Required by DIN EN 61010-1

5.5.1 Manufacturer

The Ndigo250M-14 is a product of: cronologic GmbH & Co. KG

Jahnstraße 49

60318 Frankfurt

HRA 42869 beim Amtsgericht Frankfurt/M

VAT-ID: DE235184378

5.5.2 Intended Use and System Integration

The devices are not ready to use as delivered by cronologic. It requires the development of specialized software to fulfill the application of the end user. The device is provided to system integrators to be built into measurement systems that are distributed to end users. These systems usually consist of a the Ndigo250M, a main board, a case, application software and possible additional electronics to attach the system to some type of detector. They might also be integrated with the detector.

The Ndigo250M-14 is designed to comply with DIN EN 61326-1 when operated on a PCI compliant CEM main board housed in a properly shielded enclosure. When operated in a closed standard compliant PC enclosure the device does not pose any hazards as defined by EN 61010-1.

Radiated emissions, noise immunity and safety highly depend on the quality of the enclosure.

It is the responsibility of the system integrator to ensure that the assembled system is compliant to applicable standards of the country that the system is operated in, especially with regards to user safety and electromagnetic interference. Compliance was only tested for attached cables shorter than 3m.

All power supplied to the system must be turned off before installing the board.

When handling the board, adequate measures have to be taken to protect the circuits against electrostatic discharge (ESD).

5.5.3 Cooling

The Ndigo250M-14 in its base configuration has passive cooling.

cronologic GmbH & Co. KG 50 Ndigo250M-14 User Guide

5.5.4 Environmental Conditions

Refer to the sections on Environmenal Conditions on page

49

5.5.5 Inputs

The analog inputs are DC coupled. The inputs have very high input bandwidth requirements and therefore there are no circuits that provide over voltage protection for these signals. Any voltage on the inputs above 5V or below -3V relative to the voltage of the slot cover can result in permanent damage to the board.

5.5.6 Recycling electronic systems with Registration ID DE 77895909.

schließlich gewerbliche Nutzung”. The last owner of a Ndigo250M-14 must recycle it or treat the board in compliance with

§11 and §12 of the German ElektroG or return it to cronologic at the address listed on page

52 .

cronologic GmbH & Co. KG 51 Ndigo250M-14 User Guide

advertisement

Was this manual useful for you? Yes No
Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Related manuals

Download PDF

advertisement

Table of contents