Frequently Asked Questions
about the FMC DEL 1ns 4cha board
Hardware
Q: The FMC DEL card runs quite hot when used in a PC on a SPEC carrier. Is that normal?
A: Indeed, due to high precision 1.5GHz LVPECL Programmable Delay chips
used on the board, indeed the FMC DEL board heats up.
The power consumption of the FMC DEL board is 7 Watt (200 mA from 12V,
1.5 A from 3V3). This, combined with the fact that plug-in cards in a PC
are usually not well cooled makes the card run quite hot. Note that the
FMC TDC board does not have these LVPECL components and does not run
hot.
One user (AW) has seen a temperature reading of the sensor on the FMC
DEL board of 1393 = 87.06 degrees C. When the number of fans in the PC
were increased the temperature reading lowered to 1142 = 71 degrees C.
On an industrial PC used at CERN we've seen even typical temperatures of
80-84 degrees. But on other PCs we have seen temperatures between 65 and
70 degrees C, without any specific cooling added.
For comparison, the FMC DEL board on a SVEC carrier in an VME crate runs
typically at 65-68 degrees C as is shown in the Long Term test
report. This was in a crate were no
other cards were nearby and the front was completely left open. We've
seen with another VME crate with a lot of fdelays in it (six SVECs in
contiguous slots 7-12) temperatures between 39 and 68 degrees C.
We believe that temperature readings around 70 degrees are acceptable and will not have an impact to the lifetime of the card. Only when you switch on an off the card every day there may be an impact due to the thermal cycling effects.
Regarding the 70 degrees - it's a safe temperature for this card, measured in the hottest spot (LVPECL delay lines, rated to +85 degrees). More temperature sensitive components such as decoupling capacitors are at least 15 degrees cooler (tested with a thermal vision camera). The TDC and output stages are continuously temperature-calibrated, so it has little effect on jitter and delay stability. (update 18/6/14)
Q: Did you take the high temperature into account when designing this card?
A: The most sensitive component, where lifetime may be affected by the
temperature are the tantalium capacitors. We have designed the board
with high temperature tantalium capacitors (SANYO/Panasonic OSCON
16TQC10M, rated at 105 degrees). They have a lifetime of 63245
hours=2635 days when used at 75 degrees. This was in an early
datasheet. Normal aluminium capacitors would have a lifetime four times
as short. Likely the capacitors anyway have a temperature lower than the
reading of the internal sensor.
The latest datasheet (May. 2014) Conductive Polymer Tantalum Solid
Capacitors Poscap, Product catalog, pdf
page 22
specifies 200,000h at 65 degrees and 20,000h at 85 degrees. Then
again, it reads "Please contact Sanyo for TQC series". To be checked
indeed.
Update 11 February 2014:
Received by mail the following info from Sanyo Panasonic regarding the life time of the 16TQC10M.
Life time of 16TQC10M is as below;
105℃ x 2,000
80℃=11,313 hours (1.3 yr)
75℃=16,000 hours (1.8 yr)
70℃=22,627 hours (2.6 yr)
65℃=32,000 hours (3.7 yr)
These numbers are worse than expected and we may have a look into this (understand better what is the failure type, possibilities of replacing by other types).
See also Issue 931
Update 24 September 2014:
The solutions for temperature issues are discussed here
Q: How can I read the card's temperature?
A: The driver makes the temperature of it available for the user
(fdelay_get_board_temp() API function and "temperature" ZIO
attribute).
Or, you can use a simple script:
morgana% grep temp lib/*h
extern float fdelay_read_temperature(struct fdelay_board *b);
Q: I'd like to change the card's VCXO DAC value to fine-tune output pulse rate/frequency when not using White Rabbit. How can I do it?
A: We are sorry, but accessing the VCXO tune is not supported by the software. We will consider adding this feature in future releases.
Q: I'm using the card in the pulse generator mode and I'm setting the output pulse period to 99 ns. Measuring the output frequency shows no difference than when the output is set to 100 ns (10 MHz) period.
A: If output pulse width or spacing is less than 200 ns, the resolution is limited to 4 ns due to hardware constraints. For more info, look at section 3.4 of the Design Notes.
Q: I'm using lower period than in the previous question and adjusting it by 2 picoseconds. I see no difference in output frequency.
A: The output stage resolution is 10 ps.
Firmware
Q: The FMC DEL card doesn't seem to work and I see "EEPROM has no FRU information"
Q: I am trying to get started with fmc-fine-delay, but have no
success.
I tried following the instructions in "Fine Delay User’s Manual" from
February 2013.
Board is recognized:
$ lscpi
01:00.0 Non-VGA unclassified device: CERN/ECP/EDU Device 018d (rev 03)
on bootup "spec" is loaded, I see this without manually doing any
insmod/modprobe:
$ dmesg
[ 8.088795] spec 0000:01:00.0: probe for device 0001:0000
[ 8.537652] spec 0000:01:00.0: got file "fmc/spec-init.bin", 1484404
(0x16a674) bytes
[ 8.728894] spec 0000:01:00.0: FPGA programming successful
[ 9.074281] spec 0000:01:00.0: mezzanine 0
[ 9.074292] EEPROM has no FRU information
Answer:*
This is the way to solve it:
(put fdelay-eeprom.bin into /lib/firmware/fmc/fdelay-eeprom.bin)
sudo insmod fmc-bus/kernel/fmc-write-eeprom.ko busid=0x0100
file=fmc/fdelay-eeprom.bin
[ 3149.521002] fmc_write_eeprom fmc-0100: write_eeprom: success
sudo rmmod fmc_write_eeprom
sudo rmmod spec
sudo modprobe spec
[ 3201.611115] spec 0000:01:00.0: remove
[ 3204.599946] spec 0000:01:00.0: probe for device 0001:0000
[ 3204.604856] spec 0000:01:00.0: got file "fmc/spec-init.bin",
1484404 (0x16a674) bytes
[ 3204.796095] spec 0000:01:00.0: FPGA programming successful
[ 3205.145341] spec 0000:01:00.0: mezzanine 0
[ 3205.145348] Manufacturer: INCAA Computers BV
[ 3205.145351] Product name: FmcDelay1ns4cha
sudo modprobe fmc-fine-delay
[ 3242.665930] fmc_fine_delay FmcDelay1ns4cha-0100: fd_read_temp:
Temperature 0x539 (12 bits: 83.562)
[ 3243.539197] fmc_fine_delay FmcDelay1ns4cha-0100:
fd_calibrate_outputs: ch1: 8ns 811 (f 807, off 4, t 83.62) [ 3243.647386] fmc_fine_delay FmcDelay1ns4cha-0100: fd_calibrate_outputs: ch2: 8ns
804 (f 807, off -3, t 83.62)
[ 3243.754771] fmc_fine_delay FmcDelay1ns4cha-0100:
fd_calibrate_outputs: ch3: 8ns 787 (f 807, off -20, t 83.62) [ 3243.862381] fmc_fine_delay FmcDelay1ns4cha-0100: fd_calibrate_outputs: ch4: 8ns
778 (f 807, off -29, t 83.62)
[ 3244.001824] fmc_fine_delay FmcDelay1ns4cha-0100:
fmc_fine_delay: Found i2c device at 0x50
[ 3244.010605] spec 0000:01:00.0: Using interrupts for
input
Q: Can you give me an idea of the Xilinx resources used in a typical application?
The SPEC uses the modestly sized XC6SLX45T. Typically resource use is given below.
- 29 % FF (16132)
- 57 % LUTs (15801)
- 77 % BRAMs (90 x RAMB16BWER, most of it used by the LM32 CPU in the WR Core)
Software
Q: What is the maximum impulse pulse rate that I can read out by software?
A: If you want to read out all the timestamps, with the current code
(January 2014), people have been reading out signals with a repitition
rate in the range of 30 kHz to 50 kHz, depending on the computer type.
Possibly with optimisations in software this number could be made
higher.
The hardware will continue to work and delay pulses up to a maximum
input pulse rate of 1 MHz. It's just that the software to read out the
timestamps is not able to follow.
You may find some more information in the mailing list archive.
http://lists.ohwr.org/sympa/arc/white-rabbit-dev/2014-01/msg00011.html
(you may need to click on "I'm not a spammer" and then retry the link).
Note that this is on the mailing list of White Rabbit and not of the
Fine Delay card.
Update 7/2/14: new software has been developed that can pull up to 150 k
samples/second. Please check the fmc-delay-1ns-8cha mail
archive.
Q: How to select between timer and interrupt mode?
A: This is done using the module parameter timer_ms
#interrupt mode
insmod fmc-fine-delay.ko timer_ms=0
# timer mode
insmod fmc-fine-delay.ko timer_ms=<any-value-greater-than-0>
This parameter set up the time to wait between each read of the hardware
buffer. If you set timer_ms=0
you are enabling the interrupt mode
because you are asking to the driver to read from the hardware buffer as
soon as time-stamps are available. For any other value of timer_ms
you
are using the timer mode.
Q: What is the difference between timer and interrupt mode?
A: In interrupt mode the driver read from the hardware buffer as soon
as time-stamps are available. This is what you want if your application
needs to analyze data as soon as possible. On the other side the timer
mode periodically reads the entire hardware buffer. You can configure
the timer period using the kernel parameter timer_ms
. So, the
throughput rapidly converge to the same value for both modes.
Q: Interrupt or timer mode can affect the time-stamp precision?
No. The measurements are done by the hardware and then stored in its buffer. So, the accuracy of the measurements stays as precise, independent of the fact that the interrupts are enabled or not.
Erik van der Bij, Federico Vaga - 14 August 2014