v1.0. Frank Geurts, 19 May 2005
This note documents how to update the ALCT firmware via the VME interface. At FAST sites and beam tests updates were typically performed by directly hooking up a PC to the ALCT board. At the Slice Test this is not an option since access to the boards is very limited. Therefore, software is used that performs the upload via the TMB allowing to upload via the VME interface.
As mentioned in the introduction, the firmware upload is performed via the TMB which is accessed through its VME access. From the TMB the JTAG data is then sent to the ALCT using the skew-clear signal cables that run between the two.
The path looks like this: [Linux Box] --ethernet--> [Dynatem]
--VME(backplane)--> [TMB] --JTAG(skewclear)--> [ALCT]
The software that is currently used to perform the firmware upload is entirely based on the PeripheralCrate Control Library. This is the same library that is used for configuration and slow-control access. It is XDAQ-compliant and can be found in the TriDAS/emu repository. Consult the EMu Slice Test web pages for more information
The relevant class/member for this operation is
ALCTController::SVFload(int* jtagChainNumber, char* fileName, int*
debugLevel)
. The jtagChainNumber
should be 3 for ALCT
firmware upload. The fileName has to be a SVF file. Other file formats
are not supported.
In the repository a stand-alone executable called loadALCT.cpp
initialized a single TMB and ALCT board and uploads the firmware using the
::SVFload()
member.
Firmware
For the Slice Test we keep a simple repository for all the firmware that is
involved. Links to it can be found on the EMu Slice Test web pages. To avoid any
file format and/or conversion issues all firmware files have to be in the SVF
format.
At the moment (Spring Slice Test) only two types of chambers are in use: the
ME{2,3}/1 and ME{2,3}/2 chambers. Both types have different ALCTs and thus
different firmware files associated with it. To accomodate the cosmic trigger we
also have "mirrored" ALCT firmware which we apply on the ME3 station chambers.
This firmware was first tested at the UF Cosmic Stand before being uploaded to
the chambers at CERN.
Upload Procedure
Unfortunately, the initialization procedure of the standalone executable is
still not working sufficiently. Therefore, a seperate program is used which
explcitily callsTestBeamController::configure()
. The two options
for that are CrateScan.cpp and testbeamcontroller.cpp. The latter should be
interrupted right after the configuration phase. The former, CrateScan.exe does
not need to be interrupt and exits leaving the crate configured.
After this TMB and ALCT are in a configured state, the loadALCT.exe can be
run. At the moment the software can not be configured from the commandline and
any changes, therefore, need to be hardcoded. Not nice, but this is only
temporarily. Be careful to adjust not only the TMB slot but also change the type
of ALCT and the filename that points to the approriate firmware type.
Note
The procedure described in this document is only for temporary usage. The
stand-alone executable should be able to execute the proper configuration and
identify what firmware should go in. Make sure to check the EMu Slice Test web pages for newer
versions of this document.
Last
modified: Thu May 19 13:23:03 WEDT 2005