General information

From HELIOS Digital DAQ
Revision as of 00:30, July 28, 2015 by Jta (talk | contribs)
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, you have to use the GammaWareR2 program on the engineering PC in the data room.

As of 20130210, a Digitizer Tester board is installed in crate 10 of the DFMA system. The board has two special characteristics you must be aware of:

  • The board completely loses its mind (FPGA goes blank) if the power is cycled. This is a known issue with this particular PC board. If the power has been cycled you must use the old beater laptop 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 desktop of that laptop.
  • You can visually determine if the Digitizer Tester has a valid program by looking at the 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 IOC 10 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

asynDebugCard(4,7)

at the IOC terminal command prompt. After this command has been issued the PC will then be able to use the Tester.


---JTA, 20130210

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.

Important

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.