summaryrefslogtreecommitdiffstats
path: root/xml/test/camera.xml
blob: 81335b7886ad734bcdfac4e2cbb18b0a09cf95e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<?xml version="1.0"?>
<model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <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">
    <register address="1" offset="0" size="16" default="1088" rwmask="0" mode="RW" name="cmosis_number_lines" description="test"/>
    <register address="3" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_start1"/>
    <register address="5" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_start2"/>
    <register address="7" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_start3"/>
    <register address="9" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_start4"/>
    <register address="11" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_start5"/>
    <register address="13" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_start6"/>
    <register address="15" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_start7"/>
    <register address="17" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_start8"/>
    <register address="19" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_number_lines1"/>
    <register address="21" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_number_lines2"/>
    <register address="23" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_number_lines3"/>
    <register address="25" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_number_lines4"/>
    <register address="27" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_number_lines5"/>
    <register address="29" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_number_lines6"/>
    <register address="31" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_number_lines7"/>
    <register address="33" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_number_lines8"/>
    <register address="35" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_sub_s"/>
    <register address="37" offset="0" size="16" default="0" rwmask="0" mode="RW" name="cmosis_sub_a"/>
    <register address="39" offset="0" size="1" default="1" rwmask="0" mode="RW" name="cmosis_color"/>
    <register address="40" offset="0" size="2" default="0" rwmask="0" mode="RW" name="cmosis_image_flipping"/>
    <register address="41" offset="0" size="2" default="0" rwmask="0" mode="RW" name="cmosis_exp_flags"/>
    <register address="42" offset="0" size="24" default="1088" rwmask="0" mode="RW" name="cmosis_exp_time"><view view="formuu3"/><view view="enumm3"/></register>
    <register address="45" offset="0" size="24" default="1088" rwmask="0" mode="RW" name="cmosis_exp_step"/>
    <register address="48" offset="0" size="24" default="1" rwmask="0" mode="RW" name="cmosis_exp_kp1"/>
    <register address="51" offset="0" size="24" default="1" rwmask="0" mode="RW" name="cmosis_exp_kp2"/>
    <register address="54" offset="0" size="2" default="1" rwmask="0" mode="RW" name="cmosis_nr_slopes"/>
    <register address="55" offset="0" size="8" default="1" rwmask="0" mode="RW" name="cmosis_exp_seq"/>
    <register address="56" offset="0" size="24" default="1088" rwmask="0" mode="RW" name="cmosis_exp_time2"/>
    <register address="59" offset="0" size="24" default="1088" rwmask="0" mode="RW" name="cmosis_exp_step2"/>
    <register address="68" offset="0" size="2" default="1" rwmask="0" mode="RW" name="cmosis_nr_slopes2"/>
    <register address="69" offset="0" size="8" default="1" rwmask="0" mode="RW" name="cmosis_exp_seq2"/>
    <register address="70" offset="0" size="16" default="1" rwmask="0" mode="RW" name="cmosis_number_frames"/>
    <register address="72" offset="0" size="2" default="0" rwmask="0" mode="RW" name="cmosis_output_mode"/>
    <register address="78" offset="0" size="12" default="85" rwmask="0" mode="RW" name="cmosis_training_pattern"/>
    <register address="80" offset="0" size="18" default="0x3FFFF" rwmask="0" mode="RW" name="cmosis_channel_en"/>
    <register address="82" offset="0" size="3" default="7" rwmask="0" mode="RW" name="cmosis_special_82"/>
    <register address="89" offset="0" size="8" default="96" rwmask="0" mode="RW" name="cmosis_vlow2"/>
    <register address="90" offset="0" size="8" default="96" rwmask="0" mode="RW" name="cmosis_vlow3"/>
    <register address="100" offset="0" size="14" default="16260" rwmask="0" mode="RW" name="cmosis_offset"/>
    <register address="102" offset="0" size="2" default="0" rwmask="0" mode="RW" name="cmosis_pga"/>
    <register address="103" offset="0" size="8" default="32" rwmask="0" mode="RW" name="cmosis_adc_gain"/>
    <register address="111" offset="0" size="1" default="1" rwmask="0" mode="RW" name="cmosis_bit_mode"/>
    <register address="112" offset="0" size="2" default="0" rwmask="0" mode="RW" name="cmosis_adc_resolution"/>
    <register address="115" offset="0" size="1" default="1" rwmask="0" mode="RW" name="cmosis_special_115"/>
  </bank>
  <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">
    <register address="0x00" offset="0" size="32" default="0" rwmask="0" mode="RW" name="spi_conf_input"/>
    <register address="0x10" offset="0" size="32" default="0" rwmask="0" mode="R" name="spi_conf_output"/>
    <register address="0x20" offset="0" size="32" default="0" rwmask="0" mode="RW" name="spi_clk_speed"/>
    <register address="0x30" offset="0" size="32" default="0" rwmask="0" mode="R" name="firmware_info">
      <field offset="0" size="8" mode="R" name="firmware_version"/>
      <field offset="8" size="1" mode="R" name="firmware_bitmode"/>
      <field offset="12" size="2" mode="R" name="adc_resolution"/>
      <field offset="16" size="2" mode="R" name="output_mode"/>
    </register>
    <register address="0x40" offset="0" size="32" default="0" rwmask="0" mode="RW" name="control">
      <field offset="31" size="1" mode="R" name="freq"/>
    </register>
    <register address="0x50" offset="0" size="32" default="0" rwmask="0" mode="R" name="status"/>
    <register address="0x54" offset="0" size="32" default="0" rwmask="0" mode="R" name="status2"/>
    <register address="0x58" offset="0" size="32" default="0" rwmask="0" mode="R" name="status3"/>
    <register address="0x5c" offset="0" size="32" default="0" rwmask="0" mode="R" name="fr_status"/>
    <register address="0x70" offset="0" size="32" default="0" rwmask="0" mode="R" name="start_address"/>
    <register address="0x74" offset="0" size="32" default="0" rwmask="0" mode="R" name="end_address"/>
    <register address="0x78" offset="0" size="32" default="0" rwmask="0" mode="R" name="rd_address"/>
    <register address="0xa0" offset="0" size="32" default="0" rwmask="0" mode="R" name="fr_param1">
      <field offset="0" size="10" mode="RW" name="fr_skip_lines"/>
      <field offset="10" size="11" mode="RW" name="fr_num_lines"/>
      <field offset="21" size="11" mode="RW" name="fr_start_address"/>
    </register>
    <register address="0xb0" offset="0" size="32" default="0" rwmask="all" mode="RW" name="fr_param2">
      <field offset="0" size="11" mode="RW" name="fr_threshold_start_line"/>
      <field offset="16" size="10" mode="RW" name="fr_area_lines"/>
    </register>
    <register address="0xc0" offset="0" size="32" default="0" rwmask="0" mode="R" name="skiped_lines"/>
    <register address="0xd0" offset="0" size="32" default="0" rwmask="all" mode="RW" name="fr_thresholds"/>
    <register address="0xd0" offset="0" size="10" default="0" rwmask="all" mode="RW" name="fr_pixel_thr"/>
    <register address="0xd0" offset="10" size="11" default="0" rwmask="all" mode="RW" name="fr_num_pixel_thr"/>
    <register address="0xd0" offset="21" size="11" default="0" rwmask="all" mode="RW" name="fr_num_lines_thr"/>
    <register address="0x100" offset="0" size="32" default="0" rwmask="0" mode="RW" name="rawdata_pkt_addr"/>
    <register address="0x110" offset="0" size="32" default="0" rwmask="0" mode="R" name="temperature_info">
      <field offset="0" size="16" mode="RW" name="sensor_temperature" min="5" max="15"><view view="formuu1"/><view view="formuu2"/><view view="enumm2"/></field>
      <field offset="16" size="3" mode="R" name="sensor_temperature_alarms"/>
      <field offset="19" size="10" mode="RW" name="fpga_temperature"><view view="formuu1"/><view view="enumm1"/></field>
      <field offset="29" size="3" mode="R" name="fpga_temperature_alarms"/>
    </register>
    <register address="0x120" offset="0" size="32" default="0" rwmask="0" mode="R" name="num_lines"/>
    <register address="0x130" offset="0" size="32" default="0" rwmask="0" mode="R" name="start_line"/>
    <register address="0x140" offset="0" size="32" default="0" rwmask="0" mode="R" name="exp_time"/>
    <register address="0x150" offset="0" size="32" default="0" rwmask="0" mode="RW" name="motor">
      <field offset="0" size="5" mode="RW" name="motor_phi"/>
      <field offset="5" size="5" mode="RW" name="motor_z"/>
      <field offset="10" size="5" mode="RW" name="motor_y"/>
      <field offset="15" size="5" mode="RW" name="motor_x"/>
      <field offset="20" size="8" mode="R" name="adc_gain"/>
    </register>
    <register address="0x160" offset="0" size="32" default="0" rwmask="0" mode="R" name="write_status"/>
    <register address="0x170" offset="0" size="32" default="0" rwmask="0" mode="RW" name="num_triggers"/>
    <register address="0x180" offset="0" size="32" default="0x280" rwmask="0" mode="RW" name="trigger_period"><view view="enumm2"/></register>
    <register address="0x190" offset="0" size="32" default="0" rwmask="0" mode="R" name="temperature_sample_period"/>
    <register address="0x1a0" offset="0" size="32" default="0x64" rwmask="0" mode="RW" name="ddr_max_frames"/>
    <register address="0x1b0" offset="0" size="32" default="0" rwmask="0" mode="R" name="ddr_num_frames"/>
  </bank>
  <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"/>
  <transform path="/test/prop1" unit="C" read_from_register="(503975./1024000)*${/registers/fpga/sensor_temperature:C} - 27315./100" write_to_register="(${/registers/fpga/sensor_temperature:C} + 27315./100)*(1024000./503975)" description="formula to get real fpga temperature from the fpga_temperature register in decimal"/>
  <transform name="formuu1" unit="C" read_from_register="(503975./1024000)*$value - 27315./100" write_to_register="($value + 27315./100)*(1024000./503975)" description="formula to get real fpga temperature from the fpga_temperature register in decimal"/>
  <transform name="formuu2" unit="C1" 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"/>
  <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"/>
  <enum name="enumm1" description="enum towards temperatures register">
    <name name="high" value="0x100" min="0x2" max="0x300"/>
    <name name="low" value="0x010"/>
  </enum>
  <enum name="enumm2" description="enum towards sensor_temperature register">
    <name name="high" value="0x120"/>
    <name name="low" value="0x010" min="0x00" max="0x020"/>
  </enum>
  <enum name="enumm3" description="enum towards cmosis_exp_register register">
    <name name="short" value="0x000"/>
    <name name="mid" value="0x010"/>
    <name name="long" value="0x100" min="0x0F0"/>
  </enum>
  <unit name="C">
    <transform unit="K" transform="$value+273.15"/>
    <transform unit="F" transform="$value*(9./5)+32"/>
  </unit>
  <unit name="K">
    <transform unit="C" transform="$value-273.15"/>
    <transform unit="F" transform="($value-273.15)*(9./5)+32"/>
  </unit>
  <unit name="F">
    <transform unit="C" transform="($value-32)*5./9"/>
    <transform unit="K" transform="($value+273.15-32)*5./9"/>
  </unit>
  <unit name="s">
    <transform unit="ms" transform="$value*1000"/>
    <transform unit="us" transform="$value*1000000"/>
    <transform unit="ns" transform="$value*1000000000"/>
  </unit>
  <unit name="ms">
    <transform unit="s" transform="$value/1000"/>
    <transform unit="us" transform="$value*1000"/>
    <transform unit="ns" transform="$value*1000000"/>
  </unit>
  <unit name="us">
    <transform unit="s" transform="$value/1000000"/>
    <transform unit="ms" transform="$value/1000"/>
    <transform unit="ns" transform="$value*1000"/>
  </unit>
  <unit name="ns">
    <transform unit="s" transform="$value/1000000000"/>
    <transform unit="ms" transform="$value/1000000"/>
    <transform unit="us" transform="$value/1000"/>
  </unit>
</model>