Revised firmware for the CPLDs located on the Overvoltage Protection board (OVP board).
The LMU-PS OVP board protects the PXD sensor and ASICs from overvoltages and conditions that could potentially damage the PXD detector. In total, 24 conditions are checked. In the presence of an OVP event, the voltages are shut down and the detector is no longer in operation. The rate of triggered OVP events has increased since spring 2021 (0.5-1 per day) after beam currents were increased. Since OVP events occur even when regulators are off, the cause are Single Event Upsets (SEUs) in the CPLD logic which sends the OVP trigger signal.
The modified firmware is intended to prevent these occurrences.
ISE Design Suite 14.7 (on Ubuntu) is used to generate the CPLD programming file. The settings for generating the file, the necessary steps for uploading the file as well as the simulation settings are described in the following sections:
For the investigation, the OVP-Test-Board was designed which houses an Arduino Nano. The Arduino is used to communicate with the CPLD (via I2C), read out the status of the individual channels, write masks or reset the control logic.
An SR latch (unclocked) is replaced with a D-flip flop (clocked, falling edge D-flip flop with asynchronous reset (low)). In the case of an SEU, the SR-latch triggered an OVP event.
The clock needed for the flip flop is transmitted from the auxiliary CPLD via the existing ax_res
-line. This means that I2C can no longer be reset via the push button (does not pose any restrictions for operation).
A delay is implemented at the end of the logic to filter short pulses before the flip flop returns to the correct state (if the state is changed within 20.8 nanoseconds (48 MHz) by an SEU).
/documentation
Documentation and schematics
/arduino/I2C_master
Code for the Arduino Nano
/firmware
Firmware for two Xilinx CPLDs (XC95144XL-TQ100)
/xilinx_aux
Auxiliary CPLD - contains the I2C interface/xilinx_main
Main CPLD - contains the control logic
/OVP_breakout
KiCad files for the OVP test board
/firmware_old
Old firmware for two Xilinx CPLDs (XC95144XL-TQ100)