FADC250 Firmware Update
Table of Contents
version 1 : notes
1. Programs Setup
1.1. Install what's needed (starting from scratch)
1.1.1. environment setup
#!/bin/bash export LINUXVME=${HOME}/linuxvme # anywhere you have rw access export LINUXVME_BIN=${LINUXVME}/Linux-$(uname -m)/bin export LINUXVME_LIB=${LINUXVME}/Linux-$(uname -m)/lib export LINUXVME_INC=${LINUXVME}/include export LD_LIBRARY_PATH=${LINUXVME_LIB}:${LD_LIBRARY_PATH} export PATH=${LINUXVME_BIN}:${PATH}
1.1.2. jvme
cd $LINUXVME git clone https://code.jlab.org/fedaq/drivers/jvme.git cd jvme make install
1.1.3. fadc250
cd $LINUXVME git clone https://code.jlab.org/fedaq/drivers/fadc cd fadc make install cd firmware make install
1.1.4. Firmware update programs
${LINUXVME}/fadc/firmware/fadcFirmwareUpdate ${LINUXVME}/fadc/firmware/fadcGFirmwareUpdate
${LINUXVME_BIN}/fadcFirmwareUpdate ${LINUXVME_BIN}/fadcGFirmwareUpdate
1.1.5. MCS files
${LINUXVME}/fadc/firmware/
1.2. Just the environment (starting with Hall D compilation)
1.2.1. bash
#!/bin/bash export LINUXVME=/gluondaqfs/hdops/CDAQ/daq_dev_v0.31/daq/vme/ export LINUXVME_LIB=${LINUXVME}/lib export LINUXVME_INC=${LINUXVME}/src/include export LD_LIBRARY_PATH=${LINUXVME_LIB}:${LD_LIBRARY_PATH}
1.2.2. csh/tcsh
#!/bin/tcsh setenv LINUXVME /gluondaqfs/hdops/CDAQ/daq_dev_v0.31/daq/vme/ setenv LINUXVME_LIB ${LINUXVME}/lib setenv LINUXVME_INC ${LINUXVME}/src/include setenv LD_LIBRARY_PATH ${LINUXVME_LIB}:${LD_LIBRARY_PATH}
1.2.3. Firmware update programs + MCS files
/gluondaqfs/hdops/CDAQ/daq_dev_v0.31/daq/vme/src/fadc/v2.0/firmware $LINUXVME/src/fadc/firmware
2. VME Configuration
2.1. VME Address
Address = slot << 19
slot | address | slot | address | |
---|---|---|---|---|
3 | 0x180000 | 13 | 0x680000 | |
4 | 0x200000 | 14 | 0x700000 | |
5 | 0x280000 | 15 | 0x780000 | |
6 | 0x300000 | 16 | 0x800000 | |
7 | 0x380000 | 17 | 0x880000 | |
8 | 0x400000 | 18 | 0x900000 | |
9 | 0x480000 | 19 | 0x980000 | |
10 | 0x500000 | 20 | 0xA00000 |
2.1.1. Address DIP switches
2.1.2. DIP switch settings
2.2. U90 DIP Switches
- controls EEPROM update source
- ON for Update over VME
3. MCS Files
3.1. Processing FPGA - update FIRST
- processes of ADC samples
- encodes pulse parameters into data words
typical filename format
FADC250_V2_TOP_ver0C14.mcs
3.2. Control FPGA - update LAST
- everything else
- VME access to control and status registers
- VME readout of data words
- Firmware update over VME
typical filename format
CTRL_FPGA_V2_TOP_ver52.mcs
4. Running program for one module
fadcFirmwareUpdate <firmware MCS file> <FADC VME ADDRESS>
5. Running program for all modules
fadcGFirmwareUpdate <firmware MCS file>
6. Notes
6.1. GitLab access with personal access tokens
6.1.1. GitLab Documentation : Personal access tokens
6.1.2. User Settings : Personal access tokens
6.1.3. example usage
- use personal access token when prompted for password
git clone https://<USERNAME>@code.jlab.org/fedaq/drivers/jvme.git