Introduction
Theoretical limits
- The current firmwares (up to 4.6.2) all run at 10 MHz HadCon2 clock and
have 115200 kBits/s at the UART with 8N1 setting
- Thus a long message of 100 Byte (maximum 140 Byte) would need at least:
- possible improvements:
- 10 MHz ⇒ 16 MHz would allow Bitrates up to 1 MBaud, i.e.
Rate stability - RGWR toggle I/O port
Setup
- HadCon2
- Firmware Version: 4.6.3.APFEL May 27 2015 15:52
- 115200 kBit/s
- 10 MHz Clock
- Raspberry Pi B (1)
- EPICS
- base3.14.12.4
- streamDevice-2-6
- asyn4-23
- application:
Procedures
- toggle:
By sending RGWR 2c 80
, i.e. the PINE register, the 8th pin (PE7
) on PORT E
which is connected partly to HadCon2's connector JAtmelMisc1
, pin no. 8, is toggling its state.
Connected to an oscilloscope the response - an rectangular pulse train - is measured.
Two scenarios are measured:
- normal operation of the IOC
- slowed down by streamDevice debug printouts -
var streamDebug 1
Example:
-
By sending alternatingly
RGWR 2e 80
or RGWR 2e 0
, i.e. the PORTE register, the 8th pin (PE7
) on PORT E
which is connected partly to HadCon2's connector JAtmelMisc1
, pin no. 8, is actively written 0/1 to.
Connected to an oscilloscope the response - an rectangular pulse train - is measured.
Measurements
Data: toggle
EPICS SCAN rate |
Freq [Hz] (1/SCAN) |
ideal width |
w/o streamDebug output |
w/ streamDebug printouts |
Freq [Hz] of 2 Triggers |
W: averaged signal width [ms] |
ΔW [ms] |
ΔW/W |
width ratio averaged/ideal |
Lost Triggers/Triggers |
relative Loss |
Freq [Hz] of 2 Triggers |
W: averaged signal width [ms] |
ΔW [ms] |
ΔW/W |
width ratio averaged/ideal |
Lost Triggers/Triggers |
relative Loss |
2.00 |
0.50 |
2000 |
0.250 |
2000.0 |
80 |
4.0% |
1.00 |
0/50 |
0.0% |
0.25 |
2000 |
85 |
4.3% |
1.0 |
0/25 |
0.0% |
1.00 |
1.00 |
1000 |
0.500 |
1000.0 |
40 |
4.0% |
1.00 |
0/50 |
0.0% |
0.5 |
1000 |
40 |
4.0% |
1.0 |
0/25 |
0.0% |
0.50 |
2.00 |
500 |
1.000 |
500.1 |
35 |
7.0% |
1.00 |
0/50 |
0.0% |
1 |
500 |
21 |
4.2% |
1.0 |
0/11 |
0.0% |
0.20 |
5.00 |
200 |
2.500 |
200.0 |
10 |
5.0% |
1.00 |
0/50 |
0.0% |
2.475 |
202 |
13 |
6.4% |
1.0 |
0/25 |
0.0% |
0.15 |
6.67 |
150 |
3.378 |
148.0 |
5 |
3.4% |
0.99 |
0/67 |
0.0% |
3.333 |
150 |
9 |
6.0% |
1.0 |
0/17 |
0.0% |
0.1 |
10.00 |
100 |
5.000 |
100.0 |
6 |
6.0% |
1.00 |
0/50 |
0.0% |
2.5 |
200 |
4 |
2.0% |
2.0 |
13/25 |
52.0% |
0.05 |
20.00 |
50 |
10.000 |
50.0 |
3 |
6.0% |
1.00 |
0/50 |
0.0% |
3.378 |
148 |
5 |
3.4% |
3.0 |
13/20 |
65.0% |
0.04 |
25.00 |
40 |
12.500 |
40.0 |
4 |
10.0% |
1.00 |
0/63 |
0.0% |
4.348 |
115 |
5 |
4.3% |
2.9 |
17/25 |
68.0% |
0.033 |
30.30 |
33 |
14.900 |
33.6 |
3 |
8.9% |
1.02 |
0/76 |
0.0% |
3.9 |
128 |
12 |
9.4% |
3.9 |
22/30 |
72.6% |
0.025 |
40.00 |
25 |
20.160 |
24.8 |
1 |
4.0% |
0.99 |
0/21 |
0.0% |
4.032 |
124 |
10 |
8.1% |
5.0 |
32/40 |
80.0% |
0.015 |
66.67 |
15 |
32.900 |
15.2 |
1 |
6.6% |
1.01 |
0/67 |
0.0% |
3.8 |
132 |
2 |
1.5% |
8.8 |
58/67 |
87.0% |
0.014 |
71.43 |
14 |
35.720 |
14.0 |
3.5 |
25.0% |
1.00 |
3.5/72 |
4.9% |
4.6 |
109 |
5 |
4.6% |
7.8 |
62/71 |
86.8% |
0.013 |
76.92 |
13 |
25.300 |
19.8 |
8 |
40.5% |
1.52 |
23/100 |
23.0% |
4.2 |
119 |
1 |
0.8% |
9.2 |
68/77 |
88.4% |
0.012 |
83.33 |
12 |
20.830 |
24.0 |
3 |
12.5% |
2.00 |
52/105 |
49.5% |
4.1 |
122 |
2 |
1.6% |
10.2 |
74/83 |
88.8% |
0.011 |
90.91 |
11 |
23.000 |
21.7 |
1 |
4.6% |
1.98 |
44/90 |
48.9% |
0.01 |
100.00 |
10 |
24.500 |
20.4 |
0.5 |
2.5% |
2.04 |
50/100 |
50.0% |
0.0075 |
133.33 |
7.5 |
33.800 |
14.8 |
2 |
13.5% |
1.97 |
33/66 |
50.0% |
0.005 |
200.00 |
5 |
33.330 |
15.0 |
2 |
13.3% |
3.00 |
67/100 |
67.0% |
0.004 |
250.00 |
4 |
31.200 |
16.0 |
2 |
12.5% |
4.01 |
93/125 |
74.4% |
0.003 |
333.33 |
3 |
33.000 |
15.2 |
2 |
13.2% |
5.05 |
133/166 |
80.1% |
0.002 |
500.00 |
2 |
32.900 |
15.2 |
1 |
6.6% |
7.60 |
267/333 |
80.2% |
0.001 |
1000 |
1 |
breakdown of communication via UART, close to theoretical limit of ≈ 1kHz |
Data: set/reset
EPICS SCAN rate |
Freq [Hz] (1/SCAN) |
ideal width |
Freq [Hz] of 2 Triggers |
W: averaged signal width [ms] |
ΔW [ms] |
ΔW/W |
width ratio averaged/ideal |
Lost Triggers/Triggers |
relative Loss |
1,00 |
1,00 |
1000 |
0,500 |
1000,0 |
10 |
1,0% |
1,00 |
0/10 |
0,0% |
0,50 |
2,00 |
500 |
1,000 |
500,0 |
22 |
4,4% |
1,00 |
0/50 |
0,0% |
0,20 |
5,00 |
200 |
2,500 |
200,0 |
10 |
5,0% |
1,00 |
0/50 |
0,0% |
0,15 |
6,67 |
150 |
3,200 |
156,3 |
15 |
9,6% |
1,04 |
0/60 |
0,0% |
0,10 |
10,00 |
100 |
5,000 |
100,0 |
5 |
5,0% |
1,00 |
0/100 |
0,0% |
0,03 |
30,30 |
33 |
15,430 |
32,4 |
0,4 |
1,2% |
0,98 |
0/30 |
0,0% |
0,03 |
40,00 |
25 |
20,000 |
25,0 |
1,5 |
6,0% |
1,00 |
0/100 |
0,0% |
0,02 |
66,67 |
15 |
33,330 |
15,0 |
1,1 |
7,3% |
1,00 |
3/166 |
1,8% |
0,01 |
71,43 |
14 |
35,715 |
14,0 |
1 |
7,1% |
1,00 |
14/71 |
19,7% |
0,01 |
76,92 |
13 |
37,600 |
13,3 |
1 |
7,5% |
1,02 |
30/76 |
39,5% |
0,01 |
83,33 |
12 |
10,000 |
50,0 |
5 |
10,0% |
4,17 |
194/208 |
93,3% |
Results
- For a simple toggling register, the maximum frequency is between:
- 66.67 Hz and 71.43 Hz.
- Thus the recommendation is to stay above a corresponding EPICS SCAN time of:
- If any streamDebug features are active, i.e. print outs to screen, the performance is reduced by:
- at higher SCAN rates up to 80% of the toggle signals are lost, but the system is still performing, since the commands are always the same.
- in those cases the ratios show that the actual scan time is scaled up.
- other cases have not been investigated
- RGWR toggle performance ratios:
- finally at a rate of 1kHz, the system reaches is limit and the communication to the board ceases, but can be recovered.
- For a set/reset register, the maximum frequency is at around:
- 60 Hz.
- Thus the recommendation is to stay above a corresponding EPICS SCAN time of:
--
PeterZumbruch - 28 Oct 2015
Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding GSI Wiki?
Send feedback |
Legal notice |
Privacy Policy (german)