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

address_dip_switches.png

2.1.2. DIP switch settings

VME_Slot_Address.png

2.2. U90 DIP Switches

  • controls EEPROM update source
  • ON for Update over VME

u90_dip_switches.png

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

Author: Bryan Moffit <moffit@jlab.org>

Created: 2025-05-20 Tue 10:27

Validate