bu_cms_history/Control_Spec

SiteMap (Historical BU CMS wiki main page)

This page describes the RS-232 protocol for controlling the TTS gadget firmware.

Generic interface

Programmable Quantities

  Orbit Length      12 bits    BX per orbit (nom. 3563)          param 0, 1
  Trigger offset    12 bits    delay to first trigger            param 2, 3
  Orbit Count       16 bits    number of orbits with triggers    param 4, 5
  Trigger spacing   12 bits    spacing of L1A within orbit       param 6, 7
  Trigger count     8 bits     number of L1A per orbit           param 8
  Repeat period     16 bits    time between repeats in orbits    param 9, 10 (9, 0xa)
  Read address      4 bits     select byte to read               param 11    (0xb)
                                 0-7   FIFO data (64 bits data)
                                 8, 9  FIFO word count (10 bifts)
                                 10-13 Trigger count (32 bits)
                                 14    Counter Mux (set address at param 12)
  Test address      2 bits     select counter to read         param 12    (0xc)
                                 0-3   Rule violation 1-4
  Random rate LSB   8 bits     random threshold (LSB)            param 13    (0xd)
  Random rate MSB   8 bits     random threshold (MSB)            param 14    (0xe)

  Rule 1            8 bits     no more than 1 trig / N BX        param 16    (0x10)
  Rule 2            8 bits     no more than 2 trig / N BX        param 17    (0x11)
  Rule 3            8 bits     no more than 3 trig / N BX        param 18    (0x12)
  Rule 4            8 bits     no more than 4 trig / N BX        param 19    (0x13)
  Clk select        2 bits     select orbit signal clock phase   param 20    (0x14) 
  TTS delay         8 bits     delay responding to BSY, OFW      param 21    (0x15)
  TTS sample mask   8 bits     sample TTS when (n & BcN) == 0    param 22    (0x16)
  TTC trigger BcN  12 bits     NIM TTS output at this BcN        param 23, 24 (ox17)
  TTC trig prescal 16 bits     NIM TTS prescale (not impl yet)   param 25, 26
  Front porch      12 bits     Trigger blank BX after BC0        param 27, 28
  Back porch       12 bits     Trigger blank BX before BC0       param 29, 30

  Control register  8 bits     bit 0 - enable burst (>1 trigger per orbit)
                               bit 1 - enable repeats
                               bit 2 - enable backpressure
                               bit 3 - enable random triggers
                               bit 4 - disable blanking of L1A in orbit gap

  Action register   8  bits    bit 0 - L1A enable
                               bit 1 - advance TTS FIFO to next word
                               bit 2 - capture trigger count for readout
                               bit 3 - generate new random number
                               bit 7 - reset

  Status register   8 bits     bit 0 - TTS FIFO empty
                               bit 1 - TTS FIFO full

The random trigger mode works by generating a pseudo-random 16-bit value every BX clock, and comparing it against the random threshold programmed. If the random number is less than the threshold, a trigger is generated.

The TTS inputs are sampled when the bunch crossing number (counts from 0..orbit length) bitwise-AND with the TTS sample mask parameter is 0. Typical settings:

  0 - sample every BX
  1 - every other BX
  3 - every 4th BX
  7 - every 8th BX

When the TTS is sampled, it is then delay the number of sample intervals set as TTS delay. So, if TTS sample mask = 3 and TTS delay = 100, the TTS inputs are delayed by 4 * 100 = 400 BX or 10uS.

Serial Protocol

115200 baud, 8 bits no parity.

Sent ">" prompt from board, read command string and echo.

Commands:

  WRvv        Set control register to vv (hex)
  WXvv        Set command register to vv (hex)
  Wddvv       Set parameter register dd to vv (hex)

  RS          Read status register
  RR          Read control register
  RM          Read memory register
  Rdd         Read parameter dd

  H           Print welcome message with version