Project

General

Profile

Current hardwaresoftware issues » History » Version 1

Thomas Stuttard, 08/25/2016 05:10 PM

1 1 Thomas Stuttard
h1. Current hardware/software issues
2 1 Thomas Stuttard
3 1 Thomas Stuttard
{{>toc}}
4 1 Thomas Stuttard
5 1 Thomas Stuttard
h1. Unsolved
6 1 Thomas Stuttard
7 1 Thomas Stuttard
h2. USB communication to logic board doesn't work after power up
8 1 Thomas Stuttard
9 1 Thomas Stuttard
Sometimes USB comms (configure, slow controls) don't work after power up with messages like:
10 1 Thomas Stuttard
11 1 Thomas Stuttard
<pre>
12 1 Thomas Stuttard
sendMessageViaUSB : Did not receive /‘>/‘ after 15loops
13 1 Thomas Stuttard
</pre>
14 1 Thomas Stuttard
15 1 Thomas Stuttard
A power cycle resolves this. It needs investigating.
16 1 Thomas Stuttard
17 1 Thomas Stuttard
h2. Never get data back from logic boards
18 1 Thomas Stuttard
19 1 Thomas Stuttard
Sometimes mid way through a run/script we suuddenly stop ever getting data back from triggers. This can only be solved by a power cycle. Further investigation shows "clock not locked" errors in SetupFrontEnd.py, so it seems that the logic board loses lock on the GLIB clock. I don't know the source of this error yet (could be GLIB or LB end).
20 1 Thomas Stuttard
21 1 Thomas Stuttard
h2. Logic board spill_num / time reset sometimes every without C5 reset commands
22 1 Thomas Stuttard
23 1 Thomas Stuttard
The LB spill_num and time values (as packed into the data stream) are reset using C5 commands (0xE,0xF). However, when we do SetupFrontEnd.py with these two commands removed, ~ 2/3 of the time these numbers reset anyway, but the other ~1/2 of the time they don't. Don't know why, although there are other reset commands in this script.
24 1 Thomas Stuttard
25 1 Thomas Stuttard
h2. Clock not locked
26 1 Thomas Stuttard
27 1 Thomas Stuttard
Sometimes get problems during setup/configure like:
28 1 Thomas Stuttard
29 1 Thomas Stuttard
<pre>
30 1 Thomas Stuttard
Checking for lock on external clock
31 1 Thomas Stuttard
</pre>
32 1 Thomas Stuttard
Power cycling the logic board fixes this.
33 1 Thomas Stuttard
34 1 Thomas Stuttard
This now seems to be solved, although you will still see it if the fiber to the logic board is connected after power on.
35 1 Thomas Stuttard
36 1 Thomas Stuttard
h2. Strange replies over USB line
37 1 Thomas Stuttard
38 1 Thomas Stuttard
Sometimes get unexpected replies via USB line. One common example:
39 1 Thomas Stuttard
40 1 Thomas Stuttard
<pre>
41 1 Thomas Stuttard
CDR setting : 6 CDR edges : 1 CDR histo : 1
42 1 Thomas Stuttard
lb : writeReg : Received reply "0x088F0000" when none was expected
43 1 Thomas Stuttard
</pre>
44 1 Thomas Stuttard
45 1 Thomas Stuttard
Re-running setup/configure a few times seems to solve it (without power cycle). Needs investigating (probably getting reply to different command, so have timing issue).
46 1 Thomas Stuttard
47 1 Thomas Stuttard
h2. Interference between Arduinos
48 1 Thomas Stuttard
49 1 Thomas Stuttard
We have seen a case where two Arduios seem to interference despite reporting that they are talking to different devices (e.g. ACM0,AMC1 etc). The symptoms are a script talking to the arduin (e.g. LV scripts) hanging, or getting messages back from the wrong arduino.
50 1 Thomas Stuttard
51 1 Thomas Stuttard
We don't know the cause of this issue yet. Although unplugging and replugging the USBs (and for the old LV pulling out the power first and reattaching only after) seems to solve it.
52 1 Thomas Stuttard
53 1 Thomas Stuttard
h1. Solved
54 1 Thomas Stuttard
55 1 Thomas Stuttard
h2. GLIB spillno register resets
56 1 Thomas Stuttard
57 1 Thomas Stuttard
The GLIB spillno register counts the number of data events from logic boards the formatter finds in the 8b10b FIFOs (and then puts in RAM). So it should count once per logic board per trigger. Sometimes it seems to reset randomly during runs/scripts. It turns out that sometimes there seems to be an IPBus write error where it writes to address 0 rather than the desired address, and address 0 was being used for global_reset within the GLIB firmware (which resets spillno).
58 1 Thomas Stuttard
59 1 Thomas Stuttard
Solved now, *never use IPBus nodes with address 0x0*.
60 1 Thomas Stuttard
61 1 Thomas Stuttard
62 1 Thomas Stuttard
h2. LV commands not been executed
63 1 Thomas Stuttard
64 1 Thomas Stuttard
If sending LV commands (e.g. using SendLVCommands.py) does not produce the expected result (e.g. LV on/off)., check the script output for the arduino response. It should be something like:
65 1 Thomas Stuttard
66 1 Thomas Stuttard
<pre>
67 1 Thomas Stuttard
OK 1
68 1 Thomas Stuttard
</pre>
69 1 Thomas Stuttard
70 1 Thomas Stuttard
If instead you see something like:
71 1 Thomas Stuttard
72 1 Thomas Stuttard
<pre>
73 1 Thomas Stuttard
+ve supply voltage 0.79V
74 1 Thomas Stuttard
+ve supply current 0.10A
75 1 Thomas Stuttard
-ve supply voltage 0.13V
76 1 Thomas Stuttard
-ve supply current 0.05A
77 1 Thomas Stuttard
</pre>
78 1 Thomas Stuttard
79 1 Thomas Stuttard
This means that you are instead talking to the LV current monitor arduino, no the LV control arduino. Either unplug the current monitor arduino from USB, or otherwise resolve the USB device information in your scripts.
80 1 Thomas Stuttard
81 1 Thomas Stuttard
h2. Logic board receives trigger but does not return data
82 1 Thomas Stuttard
83 1 Thomas Stuttard
If logic board registers that a trigger has been received (e.g. EB_triggers_received in reg 0x21 increments), but no data is returned and the logic boards registers show the EB sent no event (e.g. EB_trailers_sent in reg 0x22 stays at 0), it probably means you have issues with your enabled TDC mask compared to the TDCs themselves.
84 1 Thomas Stuttard
85 1 Thomas Stuttard
E.g. the bits that are "1" in "TDC_CTRL_enable_mask" don't correspond fully to those TDCs that are enabled in their own register (0x0).