General information

From HELIOS Digital DAQ
Jump to navigation Jump to search

DPulser - The Digitizer Tester

A Digitizer Tester is a module designed to generate detector-like signals, acting as an arbitrary waveform generator with differential outputs. It is normally used in the test stand but can be use in the experiment as a "fake source". There is no page for the Digitizer Tester in the experiment GUI for DGS or DFMA as development of such a GUI page is a lot of work. At present you have to use the GammaWareR2 program on the engineering PC in the data room.

As of 20150727, a Digitizer Tester board is installed in crate 2 of the HELIOS system. There are two Digitizer Tester boards in existence. They are physically easy to distinguish, as one has two massive toroidal coils on a daughter card and the other doesn't.

  • The board without coils is nicely behaved and works as expected.
  • The board with the coils has somewhat better noise performance due to the extra filtering, but has a known wiring problem in the PC board.
    • The board with the coils completely loses its mind (FPGA goes blank) if the power is cycled. If the power has been cycled you must connect an external computer using a JTAG interface to re-load the main FPGA with the operating image while the board is powered. Contact John Anderson or Mike Oberling for the password and sequence of steps. The FPGA image file dig_tester.bit is on the DGS SVN repository.
    • You can visually determine if the Digitizer Tester that has "Alzheimer's disease" is currently running a valid program by looking at the front panel LEDs. If the Tester has a valid program the yellow LEDs at bottom right will be illuminated; if it's "lost its mind" they will be dark.
  • The normal boot script of most IOCs does not allocate VME access to the Digitizer Tester. In order to make the module accessible to the engineering PC, you must enter the command


at the IOC terminal command prompt. This command tells the IOC that a card of type 4 (digitizer tester) is in physical slot 7 (rightmost) of the IOC's VME bus. After this command has been issued the PC will then be able to use the Tester. As of 20150725, we were working on putting that line into the IOC2 boot script but it is uncertain whether that was completed.

GammaWareR2 use

A cable has been run from the DigiOS system (into NAT BOX??) to the GammaWareR2 PC. Executable is epics_GammaWare_dbg.exe under svn checkout?? YES.

The asynRecords.txt file needs to be modified for the specific system. JTA created a HELIOS version of this file to test out.


The PC in the data room is used for diagnostics for DGS, DFMA and HELIOS. In order to function correctly, the PC must be physically plugged in to the correct network (DGS is the white cable, DFMA is a gray cable, HELIOS is a purple cable....) AND the asynRecords.txt file has to be the right file for the right system. GammaWare doesn't ask which file to use, it literally opens that specific file name. In the SVN Checkout/GammaWareR2 folder there's a DGS_asynRecords.txt, a DFMA_asynRecords.txt and a HELIOS_asynRecords.txt file. When changing cables, delete the existing asynRecords.txt file, then make a copy of the one you need, then rename the copy to asynRecords.txt.

GammaWareR2 is a LabWindows program. You can directly execute the GammaWareR2_dbg.exe if you like, but you may also simply start the LabWindows program and then fire up GammaWareR2 by hitting the little green arrow/triangle icon in the ribbon along the top (green for go....)

GammaWareR2 starts by invoking a Java program that translates the register read/write commands of GammaWare to EPICS 'caput' and 'caget' commands. GammaWare DOES NOT USE the process variables (PVs) that any HELIOS GUI uses; instead, it uses special "back door" PVs that manipulate the registers of the board directly. This means that GammaWare can "see" whatever the EPICS GUI does to the board, BUT conversely anything GammaWare does to the board is INVISIBLE to the EPICS GUI. Just because you change bits in a register does NOT mean that process variables in the end-user GUI will update. Thus, absolutely ANY WRITE to the board from GammaWare means that the GUI's notion of what the control registers are set to is now invalid.

GammaWare can take single events from digitizers using its interface and the "Get Events" button. NEVER DO THIS WHILE YOU ARE TAKING DATA. Capturing data into GammaWare is only safe if the experiment data acquisition system is idle. Monitoring activity (counters, status bits, etc.) is always safe in GammaWare, even while running (and an potent diagnostic), but collecting any data will corrupt the experiment data acquisition, cause sender & receiver errors, and generally lead to crashes, malformed data, and other evil things.