1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
2
<model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
8
<protocol>software_registers</protocol>
9
<read_address>0x9000</read_address>
10
<write_address>0x9000</write_address>
11
<word_size>32</word_size>
12
<endianess>little</endianess>
13
<format>0x%lx</format>
15
<description>IPECamera Registers</description>
19
<address>0x00</address>
25
<name>spi_conf_input</name>
28
<address>0x10</address>
34
<name>spi_conf_output</name>
37
<address>0x20</address>
43
<name>spi_clk_speed</name>
46
<address>0x30</address>
52
<name>firmware_info</name>
58
<name>firmware_version</name>
64
<name>firmware_bitmode</name>
70
<name>adc_resolution</name>
76
<name>output_mode</name>
81
<address>0x40</address>
98
<address>0x50</address>
107
<address>0x54</address>
116
<address>0x58</address>
125
<address>0x5c</address>
131
<name>fr_status</name>
134
<address>0x70</address>
140
<name>start_address</name>
143
<address>0x74</address>
149
<name>end_address</name>
152
<address>0x78</address>
158
<name>rd_address</name>
161
<address>0xa0</address>
167
<name>fr_param1</name>
173
<name>fr_skip_lines</name>
179
<name>fr_num_lines</name>
185
<name>fr_start_address</name>
190
<address>0xb0</address>
196
<name>fr_param2</name>
202
<name>fr_threshold_start_line</name>
208
<name>fr_area_lines</name>
213
<address>0xc0</address>
219
<name>skiped_lines</name>
222
<address>0xd0</address>
228
<name>fr_thresholds</name>
231
<address>0xd0</address>
237
<name>fr_pixel_thr</name>
240
<address>0xd0</address>
246
<name>fr_num_pixel_thr</name>
249
<address>0xd0</address>
255
<name>fr_num_lines_thr</name>
258
<address>0x100</address>
264
<name>rawdata_pkt_addr</name>
267
<address>0x110</address>
273
<name>temperature_info</name>
279
<name>sensor_temperature</name>
290
<name>sensor_temperature_alarms</name>
296
<name>fpga_temperature</name>
306
<name>fpga_temperature_alarms</name>
311
<address>0x120</address>
317
<name>num_lines</name>
320
<address>0x130</address>
326
<name>start_line</name>
329
<address>0x140</address>
335
<name>exp_time</name>
338
<address>0x150</address>
350
<name>motor_phi</name>
374
<name>adc_gain</name>
379
<address>0x160</address>
385
<name>write_status</name>
388
<address>0x170</address>
394
<name>num_triggers</name>
397
<address>0x180</address>
400
<default>0x280</default>
403
<name>trigger_period</name>
409
<address>0x190</address>
415
<name>temperature_sample_period</name>
418
<address>0x1a0</address>
421
<default>0x64</default>
424
<name>ddr_max_frames</name>
427
<address>0x1b0</address>
433
<name>ddr_num_frames</name>
441
<protocol>default</protocol>
442
<read_address>0x0</read_address>
443
<write_address>0x0</write_address>
444
<word_size>32</word_size>
445
<endianess>little</endianess>
446
<format>0x%lx</format>
448
<description>DMA Registers</description>
453
<view type="formula">
456
<read_from_register>(503975./1024000)*@reg - 27315./100</read_from_register>
457
<write_to_register>(@value + 27315./100)*(102400./503975)</write_to_register>
458
<description>formula to get real fpga temperature from the fpga_temperature register in decimal</description>
462
<enum value="0x100" min="0x2" max="0x300">high</enum>
463
<enum value="0x010">low</enum>
464
<description>enum towards temperatures register</description>
466
<view type="formula">
469
<read_from_register>((1./4)*(@reg - 1200)) if @freq==0 else ((3./10)*(@reg - 1000))</read_from_register>
470
<write_to_register>4*@value + 1200 if @freq==0 else (10./3)*@value + 1000</write_to_register>
471
<description>formula to get real sensor temperature from the sensor_temperature register in decimal</description>
475
<enum value="0x120">high</enum>
476
<enum value="0x010" min="0x00" max="0x020">low</enum>
477
<description>enum towards sensor_temperature register</description>
479
<view type="formula">
482
<read_from_register>(@reg+(43./100))*129./(40*1000000)if @freq==0 else (@reg+(43./100))*129./(48*1000000)</read_from_register>
483
<write_to_register>@value/129.*(40*1000000) - 43./100 if @freq==0 else @value/129.*(48*1000000) - 43./100</write_to_register>
484
<description>formula to get real exposure time from the cmosis_exp_time register in decimal</description>
488
<enum value="0x000">short</enum>
489
<enum value="0x010">mid</enum>
490
<enum value="0x100" min="0x0F0">long</enum>
491
<description>enum towards cmosis_exp_register register</description>
3
<bank bar="0" size="128" protocol="software_registers" read_address="0x9010" write_address="0x9000" word_size="8" endianess="little" format="%lu" name="cmosis" description="CMOSIS CMV2000 Registers">
4
<register address="1" offset="0" size="16" default="1088" rwmask="0" mode="RW" name="cmosis_number_lines" description="test"/>
5
<register address="3" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_start1"/>
6
<register address="5" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_start2"/>
7
<register address="7" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_start3"/>
8
<register address="9" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_start4"/>
9
<register address="11" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_start5"/>
10
<register address="13" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_start6"/>
11
<register address="15" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_start7"/>
12
<register address="17" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_start8"/>
13
<register address="19" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_number_lines1"/>
14
<register address="21" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_number_lines2"/>
15
<register address="23" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_number_lines3"/>
16
<register address="25" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_number_lines4"/>
17
<register address="27" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_number_lines5"/>
18
<register address="29" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_number_lines6"/>
19
<register address="31" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_number_lines7"/>
20
<register address="33" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_number_lines8"/>
21
<register address="35" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_sub_s"/>
22
<register address="37" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_sub_a"/>
23
<register address="39" offset="0" size="1" default="1" rwmask="0" mode="RW" name="cmosis_color"/>
24
<register address="40" offset="0" size="2" default="0" rwmask="0" mode="RW" name="cmosis_image_flipping"/>
25
<register address="41" offset="0" size="2" default="0" rwmask="0" mode="RW" name="cmosis_exp_flags"/>
26
<register address="42" offset="0" size="24" default="1088" rwmask="0" mode="RW" name="cmosis_exp_time"><view view="formuu3"/><view view="enumm3"/></register>
27
<register address="45" offset="0" size="24" default="1088" rwmask="0" mode="RW" name="cmosis_exp_step"/>
28
<register address="48" offset="0" size="24" default="1" rwmask="0" mode="RW" name="cmosis_exp_kp1"/>
29
<register address="51" offset="0" size="24" default="1" rwmask="0" mode="RW" name="cmosis_exp_kp2"/>
30
<register address="54" offset="0" size="2" default="1" rwmask="0" mode="RW" name="cmosis_nr_slopes"/>
31
<register address="55" offset="0" size="8" default="1" rwmask="0" mode="RW" name="cmosis_exp_seq"/>
32
<register address="56" offset="0" size="24" default="1088" rwmask="0" mode="RW" name="cmosis_exp_time2"/>
33
<register address="59" offset="0" size="24" default="1088" rwmask="0" mode="RW" name="cmosis_exp_step2"/>
34
<register address="68" offset="0" size="2" default="1" rwmask="0" mode="RW" name="cmosis_nr_slopes2"/>
35
<register address="69" offset="0" size="8" default="1" rwmask="0" mode="RW" name="cmosis_exp_seq2"/>
36
<register address="70" offset="0" size="16" default="1" rwmask="0" mode="RW" name="cmosis_number_frames"/>
37
<register address="72" offset="0" size="2" default="0" rwmask="0" mode="RW" name="cmosis_output_mode"/>
38
<register address="78" offset="0" size="12" default="85" rwmask="0" mode="RW" name="cmosis_training_pattern"/>
39
<register address="80" offset="0" size="18" default="0x3FFFF" rwmask="0" mode="RW" name="cmosis_channel_en"/>
40
<register address="82" offset="0" size="3" default="7" rwmask="0" mode="RW" name="cmosis_special_82"/>
41
<register address="89" offset="0" size="8" default="96" rwmask="0" mode="RW" name="cmosis_vlow2"/>
42
<register address="90" offset="0" size="8" default="96" rwmask="0" mode="RW" name="cmosis_vlow3"/>
43
<register address="100" offset="0" size="14" default="16260" rwmask="0" mode="RW" name="cmosis_offset"/>
44
<register address="102" offset="0" size="2" default="0" rwmask="0" mode="RW" name="cmosis_pga"/>
45
<register address="103" offset="0" size="8" default="32" rwmask="0" mode="RW" name="cmosis_adc_gain"/>
46
<register address="111" offset="0" size="1" default="1" rwmask="0" mode="RW" name="cmosis_bit_mode"/>
47
<register address="112" offset="0" size="2" default="0" rwmask="0" mode="RW" name="cmosis_adc_resolution"/>
48
<register address="115" offset="0" size="1" default="1" rwmask="0" mode="RW" name="cmosis_special_115"/>
50
<bank bar="0" size="0x0200" protocol="software_registers" read_address="0x9000" write_address="0x9000" word_size="32" endianess="little" format="0x%lx" name="fpga" description="IPECamera Registers">
51
<register address="0x00" offset="0" size="32" default="0" rwmask="0" mode="RW" name="spi_conf_input"/>
52
<register address="0x10" offset="0" size="32" default="0" rwmask="0" mode="R" name="spi_conf_output"/>
53
<register address="0x20" offset="0" size="32" default="0" rwmask="0" mode="RW" name="spi_clk_speed"/>
54
<register address="0x30" offset="0" size="32" default="0" rwmask="0" mode="R" name="firmware_info">
55
<field offset="0" size="8" mode="R" name="firmware_version"/>
56
<field offset="8" size="1" mode="R" name="firmware_bitmode"/>
57
<field offset="12" size="2" mode="R" name="adc_resolution"/>
58
<field offset="16" size="2" mode="R" name="output_mode"/>
60
<register address="0x40" offset="0" size="32" default="0" rwmask="0" mode="RW" name="control">
61
<field offset="31" size="1" mode="R" name="freq"/>
63
<register address="0x50" offset="0" size="32" default="0" rwmask="0" mode="R" name="status"/>
64
<register address="0x54" offset="0" size="32" default="0" rwmask="0" mode="R" name="status2"/>
65
<register address="0x58" offset="0" size="32" default="0" rwmask="0" mode="R" name="status3"/>
66
<register address="0x5c" offset="0" size="32" default="0" rwmask="0" mode="R" name="fr_status"/>
67
<register address="0x70" offset="0" size="32" default="0" rwmask="0" mode="R" name="start_address"/>
68
<register address="0x74" offset="0" size="32" default="0" rwmask="0" mode="R" name="end_address"/>
69
<register address="0x78" offset="0" size="32" default="0" rwmask="0" mode="R" name="rd_address"/>
70
<register address="0xa0" offset="0" size="32" default="0" rwmask="0" mode="R" name="fr_param1">
71
<field offset="0" size="10" mode="RW" name="fr_skip_lines"/>
72
<field offset="10" size="11" mode="RW" name="fr_num_lines"/>
73
<field offset="21" size="11" mode="RW" name="fr_start_address"/>
75
<register address="0xb0" offset="0" size="32" default="0" rwmask="all" mode="RW" name="fr_param2">
76
<field offset="0" size="11" mode="RW" name="fr_threshold_start_line"/>
77
<field offset="16" size="10" mode="RW" name="fr_area_lines"/>
79
<register address="0xc0" offset="0" size="32" default="0" rwmask="0" mode="R" name="skiped_lines"/>
80
<register address="0xd0" offset="0" size="32" default="0" rwmask="all" mode="RW" name="fr_thresholds"/>
81
<register address="0xd0" offset="0" size="10" default="0" rwmask="all" mode="RW" name="fr_pixel_thr"/>
82
<register address="0xd0" offset="10" size="11" default="0" rwmask="all" mode="RW" name="fr_num_pixel_thr"/>
83
<register address="0xd0" offset="21" size="11" default="0" rwmask="all" mode="RW" name="fr_num_lines_thr"/>
84
<register address="0x100" offset="0" size="32" default="0" rwmask="0" mode="RW" name="rawdata_pkt_addr"/>
85
<register address="0x110" offset="0" size="32" default="0" rwmask="0" mode="R" name="temperature_info">
86
<field offset="0" size="16" mode="R" name="sensor_temperature"><view view="formuu1"/><view view="formuu2"/><view view="enumm2"/></field>
87
<field offset="16" size="3" mode="R" name="sensor_temperature_alarms"/>
88
<field offset="19" size="10" mode="RW" name="fpga_temperature"><view view="formuu1"/><view view="enumm1"/></field>
89
<field offset="29" size="3" mode="R" name="fpga_temperature_alarms"/>
91
<register address="0x120" offset="0" size="32" default="0" rwmask="0" mode="R" name="num_lines"/>
92
<register address="0x130" offset="0" size="32" default="0" rwmask="0" mode="R" name="start_line"/>
93
<register address="0x140" offset="0" size="32" default="0" rwmask="0" mode="R" name="exp_time"/>
94
<register address="0x150" offset="0" size="32" default="0" rwmask="0" mode="RW" name="motor">
95
<field offset="0" size="5" mode="RW" name="motor_phi"/>
96
<field offset="5" size="5" mode="RW" name="motor_z"/>
97
<field offset="10" size="5" mode="RW" name="motor_y"/>
98
<field offset="15" size="5" mode="RW" name="motor_x"/>
99
<field offset="20" size="8" mode="R" name="adc_gain"/>
101
<register address="0x160" offset="0" size="32" default="0" rwmask="0" mode="R" name="write_status"/>
102
<register address="0x170" offset="0" size="32" default="0" rwmask="0" mode="RW" name="num_triggers"/>
103
<register address="0x180" offset="0" size="32" default="0x280" rwmask="0" mode="RW" name="trigger_period"><view view="enumm2"/></register>
104
<register address="0x190" offset="0" size="32" default="0" rwmask="0" mode="R" name="temperature_sample_period"/>
105
<register address="0x1a0" offset="0" size="32" default="0x64" rwmask="0" mode="RW" name="ddr_max_frames"/>
106
<register address="0x1b0" offset="0" size="32" default="0" rwmask="0" mode="R" name="ddr_num_frames"/>
108
<bank bar="0" size="0x0200" protocol="software_registers" read_address="0x0" write_address="0x0" word_size="32" endianess="little" format="0x%lx" name="dma" description="DMA Registers"/>
109
<transform name="formuu1" unit="C" read_from_register="(503975./1024000)*$value - 27315./100" write_to_register="($value + 27315./100)*(102400./503975)" description="formula to get real fpga temperature from the fpga_temperature register in decimal"/>
110
<transform name="formuu2" unit="C" read_from_register="((1./4)*($value - 1200)) if $freq==0 else ((3./10)*($value - 1000))" write_to_register="4*$value + 1200 if $freq==0 else (10./3)*$value + 1000" description="formula to get real sensor temperature from the sensor_temperature register in decimal"/>
111
<transform name="formuu3" unit="us" read_from_register="($value+(43./100))*129./(40*1000000)if $freq==0 else ($value+(43./100))*129./(48*1000000)" write_to_register="$value/129.*(40*1000000) - 43./100 if $freq==0 else $value/129.*(48*1000000) - 43./100" description="formula to get real exposure time from the cmosis_exp_time register in decimal"/>
112
<enum name="enumm1" description="enum towards temperatures register">
113
<name name="high" value="0x100" min="0x2" max="0x300"/>
114
<name name="low" value="0x010"/>
116
<enum name="enumm2" description="enum towards sensor_temperature register">
117
<name name="high" value="0x120"/>
118
<name name="low" value="0x010" min="0x00" max="0x020"/>
120
<enum name="enumm3" description="enum towards cmosis_exp_register register">
121
<name name="short" value="0x000"/>
122
<name name="mid" value="0x010"/>
123
<name name="long" value="0x100" min="0x0F0"/>
126
<transform unit="K" transform="$value+273.15"/>
127
<transform unit="F" transform="$value*(9./5)+32"/>
130
<transform unit="C" transform="$value-273.15"/>
131
<transform unit="F" transform="($value-273.15)*(9./5)+32"/>
134
<transform unit="C" transform="($value-32)*5./9"/>
135
<transform unit="K" transform="($value+273.15-32)*5./9"/>
138
<transform unit="ms" transform="$value*1000"/>
139
<transform unit="us" transform="$value*1000000"/>
140
<transform unit="ns" transform="$value*1000000000"/>
143
<transform unit="s" transform="$value/1000"/>
144
<transform unit="us" transform="$value*1000"/>
145
<transform unit="ns" transform="$value*1000000"/>
148
<transform unit="s" transform="$value/1000000"/>
149
<transform unit="ms" transform="$value/1000"/>
150
<transform unit="ns" transform="$value*1000"/>
153
<transform unit="s" transform="$value/1000000000"/>
154
<transform unit="ms" transform="$value/1000000"/>
155
<transform unit="us" transform="$value/1000"/>