Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Current Development Machine Name

lcls-pc83236

Preparing git ssh keys 

Add your ssh keys to git (This is unfortunately necessary because the .gitmodules file in lcls2-pcie-apps uses the "git" form of the URL instead of the "http" form):

...

Also note that the firmware requires a new version of git that supports "links to large files" (lfs).  Add /afs/slac/g/reseng/git/git/bin to PATH.

Conda Commands to Create Rogue Environment

This is in addition to the other packages that must be built for the rogue library (see next step).  These conda commands are derived from:

...

Code Block
conda env create -n timetool
source activate timetool
conda install pyyaml
conda install pyzmq
conda install -c conda-forge parse
conda install click
conda install MySQLdb
conda install -c bioconda mysqlclient
conda install -c conda-forge pyro4
conda install numpy
pip install recordclass


Building Rogue

git clone https://github.com/slaclab/rogue.git

...

Some applications are not built by default.  cd to directory and make.

Building Firmware

Follow instructions in the README.md here (make sure to use the modern AFS version of git described here so you can use git-lfs):

...

cd firmware/targets/TimeToolKcu1500

make

Making Vivado communicate with board over USB/JTAG

Larry has some slides on how to program the flash chips (mt25qu512) on the KCU1500 via USB/JTAG.  Startup "vivado" after setting up the firmware 

...

https://www.xilinx.com/support/documentation/sw_manuals/xilinx2013_2/ug908-vivado-programming-debugging.pdf

SLAC Driver

Build/install the datadev.ko driver using the instructions here:

...

This needs to be done on the machine where the KCU1500 lives.  You need sudo on the machine to install the driver.

Programming FPGA over PCI

After the first programming (and power-cycling) described above, use this script to reprogram:

https://github.com/slaclab/lcls2-pcie-apps/blob/master/software/TimeTool/scripts/updateProm.py

TimeTool Software Files

lcls2-pcie-apps/firmware/applications/TimeTool/python/TimeTool.py: a description of the "addValue" register

...

  • self.add adds registers and associated GUI control

Settings Needed To Run Camera

Use channela:

  • send escape right away after powering up
  • datamode: using medium 8bit
  • framemode: our camera only gives a line valid (indication that there is valid data) so we need to set to "line"
  • tapcount: our camera sends 4 bytes where it could send 6
  • dataen: enables the data block (leave false until able to receive data)
  • baudrate: 9600
  • use sendGCP to test serial link is working (output should appear on terminal)
  • swcontrolvalue/swcontrolen: bits for hardware vs software trigger (0/0 internal trigger)
  • running: status bit (am I getting frames from camera)
  • dropcount: 3 channels misaligned (errors)
  • have to set both sender/receiver to "medium".  send these TLC strings to the camera:
  • CLM 1 (cameralink medium mode)
  • SVM 1 (test pattern ramp)
  • SSF 1 (software trigger rate 1Hz, although seems to read back as 6Hz? and 2 reads back as 12Hz?)

...