IHEP Beijing reports stable ADS LINAC 1 operation with MTCA.4 based LLRF

IHEP Beijing reports stable operation of the ADS injector 1 at 10.7 mA beam current. The Proton LINAC is the first large scale accelerator in China based on a MTCA.4 LLRF system.

Struck furnished SIS8300-L and L2 digitizer AMCs with SIS8900 RTMs including infrastructure (crates, MCH’s and SBC’s) for the project and would like to congratulate the IHEP team on its success.

IHEP Beijing ADS LINAC 1 operation announcement

Posted in Digitizer, LLRF | 1 Comment

Fix for compilation error for SIS1100 Linux driver under kernel 4.2.x

Used Driver:

sis1100-2.13-9

Error Description:

Building errors:
===============================
CC [M]
/home/daq/Workspace/daq/exaos/eldaq/vme/sis3100/driver/src/sis1100_ddma_map_linux.o
/home/daq/Workspace/daq/exaos/eldaq/vme/sis3100/driver/src/sis1100_ddma_map_linux.c:
In function ‘sis1100_ddma_unmap_block’:
/home/daq/Workspace/daq/exaos/eldaq/vme/sis3100/driver/src/sis1100_ddma_map_linux.c:54:9:
error: implicit declaration of function ‘vfree’
[-Werror=implicit-function-declaration]
vfree(block->desc_pages);
^
/home/daq/Workspace/daq/exaos/eldaq/vme/sis3100/driver/src/sis1100_ddma_map_linux.c:
In function ‘sis1100_ddma_map_block’:
/home/daq/Workspace/daq/exaos/eldaq/vme/sis3100/driver/src/sis1100_ddma_map_linux.c:130:5:
error: implicit declaration of function ‘vmalloc’
[-Werror=implicit-function-declaration]
block->desc_pages=vmalloc(block->dsegs* sizeof(struct sis1100_dmapage));
^
/home/daq/Workspace/daq/exaos/eldaq/vme/sis3100/driver/src/sis1100_ddma_map_linux.c:130:22:
warning: assignment makes pointer from integer without a cast
block->desc_pages=vmalloc(block->dsegs* sizeof(struct sis1100_dmapage));
^

Solution:

Fixing is simple, just add the missing include “#include <linux/vmaclloc.h>” to “compat_linux.h”.
===============================
+++ b/vme/sis3100/driver/src/compat_linux.h
@@ -41,6 +41,7 @@
#include <linux/kthread.h>
#include <linux/delay.h>
#include <linux/time.h>
+#include <linux/vmalloc.h>
#include <asm/poll.h>
#include <asm/uaccess.h>

Thanks and DKMS option:

Thanks to Exaos Lee from China Institute of Atomic Energy for bringing this to our attention.

Eaxos generated a DKMS version of the 2.13-9 also, which can be emailed to interested parties.

Posted in Driver | Tagged , , , | Leave a comment

SIS3316 and SIS3316-DT support for optical Ethernet

Optical decoupling of data acquisition devices from the readout system is mandatory in some applications (like installation on a platform under high voltage).  In case of the SIS3316(-DT) 125MSPS 16-bit and 250 MSPS 14-bit digitizers optical decoupling can be established with readout over an optical Ethernet connection.

Starting with VME FPGA firmware revision V3316-200A Switch SW80-3 is used to activate/deactivate auto-negotiation for the Ethernet link. The switch has to be in on position for an optical connection and in off position for a copper connection  or an optical connection over a media converter (like TP-LINK part number MC220L).

The tests were performed with a DELOCK PCI Express 1x SFP Slot Gigabit LAN card (DELOCK part number 89368), two SFP link media (TP-LINK part number TL-SM311LM or Finisar FTLF8524P2BNV, Struck part number 03145) and a standard LC-LC multimode  duplex50/125 µm fiber.

Posted in Digitizer, Firmware | Tagged , , , , | Leave a comment

SIS3316 new energy pickup index functionality

Ge detector preamplifier output signals tend to produce an overshoot at the beginning of the signal as shown in the scope screenshot below. This overshoot may vary in amplitude even for a fixed energy. A variation of the extracted energy is the result whenever the maximum of the flat top is used, as the overshoot will also reflect in an overshoot in the energy moving window (MW) .

Ge Detector Signal Overshoot

Detector Signal Overshoot (Courtesy Henning Schaffner, GSI)

The drawing below illustrates the difference between the use of the maximum energy value and the pickup energy index. The use of the pickup energy value will result in better energy resolution for cases with varying signal overshoot.

Energy Pickup Index Illustration

Energy Pickup Index Illustration

Note: The use of CFD triggering is recommended in combination with the energy pickup index functionality to minimize trigger jitter with induced jitter of the pickup point in time on the flat top of the energy MW.

 

 

Posted in Digitizer, Firmware | Tagged , , | Leave a comment

DESY DWC8300 – SIS8300-L2 results summary

The combination of the 10 channel DWC8300 (DESY nomenclature DRTM-DWC10) downconverter Rear Transition Module (RTM) and the 10 channel 125 MSPS SIS8300-L2 MTCA.4 digitizer will be used in the European XFEL for Low Level Radio Frequency (LLRF) controls.

A spectral purity of  smaller than -112 dBFS, a cumulative time jitter within the frequency range of [100Hz, 1MHz] below 6.7fs and a cumulative amplitude stability of better than 5.5E-6 is demonstrated. Please refer to the DESY report below for details.

SIS8300-L2/DWC8300 performance report

The DC8300 is build under license of DESY.

 

Posted in Digitizer, LLRF | Leave a comment

SIS3316 featured in NRL NIM A article: Fast-neutron, coded-aperture imager

The R.S. Woolf, et al, Nuclear Instruments & Methods in Physics Research A (2015) article describes an organic scintillator based -12×12 pseudo random- coded-aperture imager, in which two SIS3316-250-14 are used for PSD (pulse shape discrimination) and pulse height analysis.

Link to NIM A article

Posted in Digitizer | Leave a comment

TTL Control I/O option for SIS3316 available

The TTL control I/O option for the SIS3316 is finally available.

It conists of two piggy cards that can be installed on new units or retrofitted on existing boards in the factory or by skilled electronics workshop personnel.

The outputs can drive about 40 mA or loads from 60 Ω on. The inputs have an impedance of 50 Ω or high impedance (given the termination jumper setting like in the NIM case).

SIS3316 TTL control I/O piggies

SIS3316 TTL control I/O piggies

Posted in Digitizer | Leave a comment

SIS3820 Firmware with new LNE/CIP Features

Thanks to Mark Rivers from the University of Chicago for proposing  the incorporation of LNE/CIP delay, stretcher and invert functionality into the SIS3820 Multi Purpose Scaler firmware to facilitate the use of the LNE/CIP output to interface to external hardware. The implementation is available from firmware 0x0111 onwards.  We’d like to thank Mark for the integration into the SIS3820 EPICS GUI and for testing the new functionality. A screenshot of the GUI is shown below.

EPICS GUI

SIS3820 EPICS GUI (Courtesy Mark Rivers, APS)

The firmware can be downloaded from  www.struck.de/sis3820.htm

In operation mode 0 you have the effect on the LNE signal as illustrated below.

SIS3820 LNE Stretcher

SIS3820 LNE Stretcher

In operation mode 2 you have the effect on the CIP signal as illustrated below.

SIS3820 CIP Stretcher

SIS3820 CIP Stretcher

Posted in Digital I/O, Firmware | Tagged , , , , , , , , | Leave a comment

Installation of SIS1100 driver under CENTOS7

Issue: Installation of SIS1100 driver in a new work station with CENTOS7 results in  error message upon compilation: make -C /lib/modules/3.10.0-123.8.1.el7.x86_64/build SUBDIRS=/home/dacq/SIS1100/sis1100-2.13-9/dev/pci modules make: *** /lib/modules/3.10.0-123.8.1.el7.x86_64/build: No such file or directory.  Stop. make: *** [driver] Error 2 Solution: Installation of the kernel-devel package

 

Posted in Driver, Interface | Leave a comment

SIS8300-L MLVDS Input/Output Control register firmware bug

MLVDS Input/Output Control register 0x12 below release 0x1007 has a copy&paste bug in the top level VHDL code, which is affecting triggering of MLVDS input 7.

The bug is fixed in macro and synthesized versions from 0x1007 on.

Thanks to ESS/COSYLAB for bringing the bug to our attention and assistance in tracking it down.

Find the section below in case you would like to fix it in your code, which is based on our macro.

if rising_edge(sys_ad9510_no1_bufg_clk) then  —

external_ored_trigger_signal <=

(ext_trigger_harlink_rising_pulse(1)  and addr_0x13_reg_q(8)  and not addr_0x13_reg_q(12) )

or (ext_trigger_harlink_falling_pulse(1) and addr_0x13_reg_q(8)  and     addr_0x13_reg_q(12) )

or (ext_trigger_harlink_rising_pulse(2)  and addr_0x13_reg_q(9)  and not addr_0x13_reg_q(13) )

or (ext_trigger_harlink_falling_pulse(2) and addr_0x13_reg_q(9)  and     addr_0x13_reg_q(13) )

or (ext_trigger_harlink_rising_pulse(3)  and addr_0x13_reg_q(10) and not addr_0x13_reg_q(14) )

or (ext_trigger_harlink_falling_pulse(3) and addr_0x13_reg_q(10) and     addr_0x13_reg_q(14) )

or (ext_trigger_harlink_rising_pulse(4)  and addr_0x13_reg_q(11) and not addr_0x13_reg_q(15) )

or (ext_trigger_harlink_falling_pulse(4) and addr_0x13_reg_q(11) and     addr_0x13_reg_q(15) )

or (ext_trigger_mlvds_rising_pulse(0)  and addr_0x12_reg_q(8) and not addr_0x12_reg_q(0) )

or (ext_trigger_mlvds_falling_pulse(0) and addr_0x12_reg_q(8) and     addr_0x12_reg_q(0) )

or (ext_trigger_mlvds_rising_pulse(1)  and addr_0x12_reg_q(9) and not addr_0x12_reg_q(1) )

or (ext_trigger_mlvds_falling_pulse(1) and addr_0x12_reg_q(9) and     addr_0x12_reg_q(1) )

or (ext_trigger_mlvds_rising_pulse(2)  and addr_0x12_reg_q(10) and not addr_0x12_reg_q(2) )

or (ext_trigger_mlvds_falling_pulse(2) and addr_0x12_reg_q(10) and     addr_0x12_reg_q(2) )

or (ext_trigger_mlvds_rising_pulse(3)  and addr_0x12_reg_q(11) and not addr_0x12_reg_q(3) )

or (ext_trigger_mlvds_falling_pulse(3) and addr_0x12_reg_q(11) and     addr_0x12_reg_q(3) )

 

or (ext_trigger_mlvds_rising_pulse(4)  and addr_0x12_reg_q(12) and not addr_0x12_reg_q(4) )

or (ext_trigger_mlvds_falling_pulse(4) and addr_0x12_reg_q(12) and     addr_0x12_reg_q(4) )

or (ext_trigger_mlvds_rising_pulse(5)  and addr_0x12_reg_q(13) and not addr_0x12_reg_q(5) )

or (ext_trigger_mlvds_falling_pulse(5) and addr_0x12_reg_q(13) and     addr_0x12_reg_q(5) )

or (ext_trigger_mlvds_rising_pulse(6)  and addr_0x12_reg_q(14) and not addr_0x12_reg_q(6) )

or (ext_trigger_mlvds_falling_pulse(6) and addr_0x12_reg_q(14) and     addr_0x12_reg_q(6) )

—                                                                                           or (ext_trigger_mlvds_rising_pulse(7)  and addr_0x12_reg_q(14) and not addr_0x12_reg_q(7) )

—                                                                                           or (ext_trigger_mlvds_falling_pulse(7) and addr_0x12_reg_q(14) and     addr_0x12_reg_q(7) ) ;

or (ext_trigger_mlvds_rising_pulse(7)  and addr_0x12_reg_q(15) and not addr_0x12_reg_q(7) )   — mod. 22.08.2014

or (ext_trigger_mlvds_falling_pulse(7) and addr_0x12_reg_q(15) and     addr_0x12_reg_q(7) ) ; — mod. 22.08.2014

 

end if;

 

Posted in Digitizer, Firmware | Leave a comment