SPEC Fine-Delay
The SPEC FineDelay card is mounted on a FMC card in the bach of sbnd-daq27.fnal.gov
See the FMC FineDelay User's Manual for details on gettin/compiling TDC
software and testing
( ~sbnddaq/Documents/fine-delay-sw-v2014-04.pdf )
a) get the FineDelay sotware from the CERN ohwr.org repository
git clone
git://ohwr.org/fmc-projects/fmc-delay-1ns-8cha/fine-delay-sw.git
cd fine-delay-sw
git submodule update --init (to gel all dependencies, ZIO and fmc-bus )
a1) download the gateware binary files from the latest release
NOTE: unfortunately the gateware downloaded from the Web DID NOT WORK
so we contacted the CERN experts and they sent us the latest gateware
file
svec-fine-delay-v2.0-20140331.bin
AND THIS IS THE ONE THAT NEEDS TO BE LOADED INTO THE KERNEL
2) this .bin file needs to be copied to /lib/firmware/fmc
bash-4.2$ ls -l /lib/firmware/fmc\
-bash-4.2$ ls -l /lib/firmware/fmc\
total 18972\
-rw-r--r- 1 torretta sbnd 1485788 Mar 20 11:09 spec_fdel_wrpc4.bin
lrwxrwxrwx 1 root root 19 Mar 20 11:11 spec-fine-delay.bin >
spec_fdel_wrpc4.bin\
-rwxr-xr-x 1 root root 1486064 Feb 17 15:08
spec-fine-delay-v2.0-20140331.bin\
-rw-r--r- 1 root root 1486616 Jan 27 10:05
spec-fine-delay-v2.1-20141209.bin
rw-r--r- 1 root sbnd 1484404 Feb 20 15:27 spec-init.bin
lrwxrwxrwx 1 root root 33 Feb 17 15:08 svec-fine-delay.bin >
svec-fine-delay-v2.0-20140331.bin\
-rwxr-xr-x 1 root root 3860422 Feb 17 15:08
svec-fine-delay-v2.0-20140331.bin\
-rw-r--r- 1 root root 3900068 Jan 27 10:05
svec-fine-delay-v2.1-20141209.bin
rw-r--r- 1 root root 1486064 Jan 24 11:55
wr_spec_tdc_17012017_rc2.bin
rw-r--r- 1 root root 4223804 Jan 24 11:51
wr_svec_tdc_17012017_rc2.bin
-bash-4.2$
b) compile/make code
cd ~fine-delay-sw
ksu
make prereq_install
make install
c) load kernels
ksu
[rooot\@sbnd-daq27 ~]# modprobe spec
[root\@sbnd-daq27 ~]# modprobe fmc-fine-delay
gateware=fmc/spec-fine-delay-v2.0-20140331.bin
d) dmesg (to check that there are no errors):
[ 528.305274] zio-core had been unloaded
[ 541.715355] zio-core had been loaded
[ 556.577544] spec 0000:0c:00.0: probe for device 000c:0000
[ 556.649881] spec 0000:0c:00.0: got file "fmc/spec-init.bin",
1484404 (0x16a674) bytes
[ 556.841522] spec 0000:0c:00.0: FPGA programming successful
[ 557.189916] spec 0000:0c:00.0: mezzanine 0
[ 557.189997] Manufacturer: INCAA Computers BV
[ 557.190085] Product name: FmcDelay1ns4cha
[ 557.190201] spec 0000:0c:00.0: Gateware ()
[ 557.190272] spec 0000:0c:00.0: reprogramming with
fmc/spec-fine-delay-v2.0-20140331.bin
[ 557.444262] spec 0000:0c:00.0: FPGA programming successful
[ 557.449900] spec 0000:0c:00.0: Gateware successfully loaded
[ 560.241756] fd fd-0c00: device loaded
[ 560.247063] spec 0000:0c:00.0: Found VIC @ 0x90000
[root\@sbnd-daq27 tools]#
NOW WE CAN TRY RUNNING SOME SIMPLE CODE provided in the ~fine-delay-sw/tools directory
e) cd ~fine-delay-sw/tools
[root\@sbnd-daq27 tools]#
[root\@sbnd-daq27 tools]# ./fmc-fdelay-board-time get
WR Status: disabled.
Time: 149580.249577728
[root\@sbnd-daq27 tools]#
[root\@sbnd-daq27 tools]#
[root\@sbnd-daq27 tools]# ./fmc-fdelay-board-time wr
Locking the card to WR: .. locked!
[root\@sbnd-daq27 tools]#
[root\@sbnd-daq27 tools]#
[
TO INITIALIZE THE CONNECTION TO THE WR YOu need to run the ~fine-delay-sw/spec-sw/spec-vusrt.sh code
d) run the spec-vuart.sh code
need to find out the WR-Periph-UART and its offset :
[root\@sbnd-daq27 tools]# cat
/sys/kernel/debug/FmcDelay1ns4cha-0c00/dump_sdb
FMC: 0000:0c:00.0 (SPEC), slot 0, device FmcDelay1ns4cha-0c00
00000651:e6a542c9 WB4-Crossbar-GSI
0000ce42:f19ede1a Fine-Delay-Core (00080000-000807ff)
00000651:eef0b198 WB4-Bridge-GSI (bridge: 000c0000)
00000651:e6a542c9 WB4-Crossbar-GSI
0000ce42:66cfeb52 WB4-BlockRAM (000c0000-000d5fff)
00000651:eef0b198 WB4-Bridge-GSI (bridge: 000e0000)
00000651:e6a542c9 WB4-Crossbar-GSI
0000ce42:ab28633a WR-Mini-NIC (000e0000-000e00ff)
0000ce42:650c2d4f WR-Endpoint (000e0100-000e01ff)
0000ce42:65158dc0 WR-Soft-PLL (000e0200-000e02ff)
0000ce42:de0d8ced WR-PPS-Generator (000e0300-000e03ff)
0000ce42:ff07fc47 WR-Periph-Syscon (000e0400-000e04ff)
0000ce42:e2d13d04 WR-Periph-UART (000e0500-000e05ff)
0000ce42:779c5443 WR-Periph-1Wire (000e0600-000e06ff)
0000ce42:779c5445 WR-Periph-AuxWB (000e0700-000e07ff)
0000ce42:00000013 WB-VIC-Int.Control (00090000-000900ff)
Bitstream 'spec-fine-delay' synthesized 20140326 by twlostow (ISE
version 145), commit a8a78408c341
Synthesis repository:
git://ohwr.org/fmc-projects/fmc-delay-1ns-8cha.git
[root\@sbnd-daq27 tools]#
[root\@sbnd-daq27 tools]#
LOOK at the line:
0000ce42:e2d13d04 WR-Periph-UART (000e0500-000e05ff)
the UART offset for the card is e0500
f) cd ~fine-delay-sw/spec-sw/tools
ot\@sbnd-daq27 tools]# ./spec-vuart -u 0xe0500
[press C-a to exit]
WR Core: starting up...
get_persistent_mac: Using W1 serial number
ID: cafebabe
PPSi for WRPC. Commit ppsi-v2013.11.1-1-g76d6d83, built on Mar 12 2014
t24p read from EEPROM: 2147483647 ps
Loops per jiffy: 20818
Locking PLL
Slave Only, clock class set to 255
executing: ptp stop
executing: sfp detech
executing: sfp match
Run sfp detect first
executing: ptp start
Slave Only, clock class set to 255
wrc#
wrc#
wrc#
wrc#
wrc#
wrc# gui
[root\@sbnd-daq27 tools]# ./fmc-fdelay-status
Channel 1: disabled
Channel 2: disabled
Channel 3: disabled
Channel 4: disabled
[root\@sbnd-daq27 tools]# ./fmc-fdelay-pulse h\
./fmc-fdelay-pulse: Use "./fmc-fdelay-pulse [-V] [-i <index>]
[-d <dev>] [<opts>]\
options:\
-o <output> ouput channel: 1..4 (default 1)\
-c <count> default is 0 and means forever\
-m <mode> "pulse" (default), "delay", "disable"\
-r <reltime> relative time, e.g. "10m+20u" - use m,u,n,p and
add/sub
D <date> absolute time, <secs>:<nano>\
-T <period> period, e.g. "50m-20n" - use m,u,n,p and add/sub
-w <width> like period; defaults to 50% period
-t wait for trigger before exiting
-p pulse per seconds (sets -D -T -w)
-1 10MHz (sets -D -T -w)
-v verbose (report action)
By default, the tool generates a continuous train of pulses (10 Hz
frequency) on a given output.
[root\@sbnd-daq27 tools]#
[r
[root\@sbnd-daq27 tools]# ./fmc-fdelay-pulse o 1 -p -c 0\
Channel 1: pulse generator mode\
start at: 1491397445:000,000,000,000 ps\
pulse width: 0:010,000,000,000 ps\
repeat: infinite\
period: 1:000,000,000,000 ps\
[root\@sbnd-daq27 tools]#\
[root\@sbnd-daq27 tools]#\
[root\@sbnd-daq27 tools]# ./fmc-fdelay-pulse -o 1 -p -c 0\
Channel 1: pulse generator mode\
start at: 1491397445:000,000,000,000 ps\
pulse width: 0:010,000,000,000 ps\
repeat: infinite\
period: 1:000,000,000,000 ps\
[root\@sbnd-daq27 tools]#\
[root\@sbnd-daq27 tools]#\
[root\@sbnd-daq27 tools]#\
[root\@sbnd-daq27 tools]# ./fmc-fdelay-pulse -o 2 -p -c 0\
Channel 2: pulse generator mode\
start at: 1491397459:000,000,000,000 ps\
pulse width: 0:010,000,000,000 ps\
repeat: infinite\
period: 1:000,000,000,000 ps\
[root\@sbnd-daq27 tools]#\
[root\@sbnd-daq27 tools]#\
[root\@sbnd-daq27 tools]#\
[root\@sbnd-daq27 tools]# ./fmc-fdelay-status\
Channel 1: pulse generator mode (triggered)\
start at: 1491397445:000,000,000,000 ps\
pulse width: 0:010,000,000,000 ps\
repeat: infinite\
period: 1:000,000,000,000 ps\
Channel 2: pulse generator mode (triggered)\
start at: 1491397459:000,000,000,000 ps\
pulse width: 0:010,000,000,000 ps\
repeat: infinite\
period: 1:000,000,000,000 ps\
Channel 3: disabled\
Channel 4: disabled\
[root\@sbnd-daq27 tools]#\
[root\@sbnd-daq27 tools]#\
[root\@sbnd-daq27 tools]# ./fmc-fdelay-status\
Channel 1: disabled\
Channel 2: disabled\
Channel 3: disabled\
Channel 4: disabled\
[root\@sbnd-daq27 tools]# ./fmc-fdelay-pulse -h\
./fmc-fdelay-pulse: Use "./fmc-fdelay-pulse [-V] [-i <index>]
[-d <dev>] [<opts>]\
options:\
-o <output> ouput channel: 1..4 (default 1)\
-c <count> default is 0 and means forever\
-m <mode> "pulse" (default), "delay", "disable"\
-r <reltime> relative time, e.g. "10m+20u" - use m,u,n,p and
add/sub
D <date> absolute time, <secs>:<nano>\
-T <period> period, e.g. "50m-20n" - use m,u,n,p and add/sub
-w <width> like period; defaults to 50% period
-t wait for trigger before exiting
-p pulse per seconds (sets -D -T -w)
-1 10MHz (sets -D -T -w)
-v verbose (report action)
By default, the tool generates a continuous train of pulses (10 Hz
frequency) on a given output.
[root\@sbnd-daq27 tools]#
[r
[root\@sbnd-daq27 tools]# ./fmc-fdelay-pulse -o 1 -p -c 0
Channel 1: pulse generator mode
start at: 1491397445:000,000,000,000 ps
pulse width: 0:010,000,000,000 ps
repeat: infinite
period: 1:000,000,000,000 ps
[root\@sbnd-daq27 tools]#
[root\@sbnd-daq27 tools]#
[root\@sbnd-daq27 tools]# ./fmc-fdelay-pulse -o 2 -p -c 0
Channel 2: pulse generator mode
start at: 1491397459:000,000,000,000 ps
pulse width: 0:010,000,000,000 ps
repeat: infinite
period: 1:000,000,000,000 ps
[root\@sbnd-daq27 tools]#
[root\@sbnd-daq27 tools]#
[root\@sbnd-daq27 tools]#
[root\@sbnd-daq27 tools]# ./fmc-fdelay-status
Channel 1: pulse generator mode (triggered)
start at: 1491397445:000,000,000,000 ps
pulse width: 0:010,000,000,000 ps
repeat: infinite
period: 1:000,000,000,000 ps
Channel 2: pulse generator mode (triggered)
start at: 1491397459:000,000,000,000 ps
pulse width: 0:010,000,000,000 ps
repeat: infinite
period: 1:000,000,000,000 ps
Channel 3: disabled
Channel 4: disabled
[root\@sbnd-daq27 tools]#
[root\@sbnd-daq27 tools]#
:::
Files (0)
::: {style=”display: none;”} ::: ::: {.box} [ [ ]{.attachments_fields} [ (Maximum size: 400 MB) ]{.add_attachment style=””} ]{.attachments_form} ::: ::: :::
Also available in: PDF{.pdf} HTML{.html} TXT{.txt}
::: {style=”clear:both;”} ::: ::: ::: :::
::: Loading... :::
::: :::
::: ::: {.bgl} ::: {.bgr} Powered by Redmine © 2006-2019 Jean-Philippe Lang ::: ::: ::: ::: :::