You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

228 lines
16 KiB

1 year ago
  1. #pragma once
  2. #define REGADD__STM32_COMMON (0x0010)
  3. #define REGADD__STM32_BUSINESS (0x0020)
  4. #define REGADD__FPGA_START (0x0100)
  5. #define REGADDOFF__FPGA_INFO (0x1000)
  6. #define REGADDOFF__INTERNAL_CLK (0x1020)
  7. #define REGADDOFF__INTERNAL_TRIGGER (0x1040)
  8. #define REGADDOFF__TRIGGER_IN1 (0x2000)
  9. #define REGADDOFF__TRIGGER_IN2 (0x2020)
  10. #define REGADDOFF__TRIGGER_IN3 (0x2040)
  11. #define REGADDOFF__TRIGGER_IN4 (0x2060)
  12. #define REGADDOFF__LIGHT_CTROL_MODULE1 (0x3000)
  13. #define REGADDOFF__LIGHT_CTROL_MODULE2 (0x3020)
  14. #define REGADDOFF__LIGHT_CTROL_MODULE3 (0x3040)
  15. #define REGADDOFF__LIGHT_CTROL_MODULE4 (0x3060)
  16. #define REGADDOFF__TTL_OUTPUT_MODULE1 (0x4000)
  17. #define REGADDOFF__TTL_OUTPUT_MODULE2 (0x4020)
  18. #define REGADDOFF__TTL_OUTPUT_MODULE3 (0x4040)
  19. #define REGADDOFF__TTL_OUTPUT_MODULE4 (0x4060)
  20. typedef enum {
  21. /**
  22. * @brief
  23. * REG 0(16)
  24. */
  25. kreg_software_version = 0,
  26. kreg_manufacturer0 = 1,
  27. kreg_manufacturer1 = 2,
  28. kreg_product_type_id = 3,
  29. kreg_sn_id0 = 4,
  30. kreg_sn_id1 = 5,
  31. kreg_sn_id2 = 6,
  32. kreg_mac0 = 7,
  33. kreg_mac1 = 8,
  34. kreg_fpga_version = REGADDOFF__FPGA_INFO + 1,
  35. /**
  36. * @brief
  37. * REG 16(32) STM32配置寄存器0
  38. */
  39. kreg_stm32_obtaining_ip_mode = REGADD__STM32_COMMON + 0,
  40. kreg_stm32_ip = REGADD__STM32_COMMON + 1,
  41. kreg_stm32_gw = REGADD__STM32_COMMON + 2,
  42. kreg_stm32_netmask = REGADD__STM32_COMMON + 3,
  43. kreg_stm32_config0 = REGADD__STM32_COMMON + 4, // bit0: timecode report enable, bit1: camera sync report enable
  44. kreg_stm32_action0 = REGADD__STM32_COMMON + 14, // action reg
  45. kreg_stm32_action_val0 = REGADD__STM32_COMMON + 15, // action val reg
  46. kreg_stm32_temperature = REGADD__STM32_BUSINESS + 0,
  47. kreg_stm32_fan0_error_flag = REGADD__STM32_BUSINESS + 1,
  48. /*******************************************************************************
  49. * *
  50. *******************************************************************************/
  51. kreg_internal_clk_module = REGADDOFF__INTERNAL_CLK,
  52. kreg_internal_clk_ctrl = REGADDOFF__INTERNAL_CLK + 1,
  53. kreg_internal_clk_freq_cnt = REGADDOFF__INTERNAL_CLK + 2,
  54. kreg_internal_clk_pluse_cnt = REGADDOFF__INTERNAL_CLK + 3,
  55. kreg_internal_clk_output_sig_detect = REGADDOFF__INTERNAL_CLK + 15,
  56. kreg_internal_clk_tri_module = REGADDOFF__INTERNAL_TRIGGER,
  57. kreg_internal_clk_tri_src_slect = REGADDOFF__INTERNAL_TRIGGER + 1,
  58. kreg_internal_clk_tri_fileter_coefficient = REGADDOFF__INTERNAL_TRIGGER + 2,
  59. kreg_internal_clk_tri_freq_detect_bias = REGADDOFF__INTERNAL_TRIGGER + 3,
  60. kreg_internal_clk_tri_mode = REGADDOFF__INTERNAL_TRIGGER + 4,
  61. kreg_internal_clk_tri_trigger_mode_trigger_edge = REGADDOFF__INTERNAL_TRIGGER + 5,
  62. kreg_internal_clk_tri_trigger_mode_freq_division = REGADDOFF__INTERNAL_TRIGGER + 6,
  63. kreg_internal_clk_tri_trigger_mode_freq_multiplication = REGADDOFF__INTERNAL_TRIGGER + 7,
  64. kreg_internal_clk_tri_sequential_control_pluse_cnt_max = REGADDOFF__INTERNAL_TRIGGER + 10,
  65. kreg_internal_clk_tri_in_signal_freq = REGADDOFF__INTERNAL_TRIGGER + 14,
  66. kreg_internal_clk_tri_out_signal_freq = REGADDOFF__INTERNAL_TRIGGER + 15,
  67. /*******************************************************************************
  68. * reg_trigger_in *
  69. *******************************************************************************/
  70. kreg_trigger_in1_module = REGADDOFF__TRIGGER_IN1,
  71. kreg_trigger_in1_src_slect = REGADDOFF__TRIGGER_IN1 + 1,
  72. kreg_trigger_in1_fileter_coefficient = REGADDOFF__TRIGGER_IN1 + 2, // 滤波系数,单位是10ns
  73. kreg_trigger_in1_freq_detect_bias = REGADDOFF__TRIGGER_IN1 + 3,
  74. kreg_trigger_in1_mode = REGADDOFF__TRIGGER_IN1 + 4, // mode 0:触发 1:转发模式
  75. kreg_trigger_in1_trigger_mode_trigger_edge = REGADDOFF__TRIGGER_IN1 + 5,
  76. kreg_trigger_in1_trigger_mode_freq_division = REGADDOFF__TRIGGER_IN1 + 6,
  77. kreg_trigger_in1_trigger_mode_freq_multiplication = REGADDOFF__TRIGGER_IN1 + 7,
  78. kreg_trigger_in1_sequential_control_pluse_cnt_max = REGADDOFF__TRIGGER_IN1 + 10, // 顺序控制信号最大计数
  79. kreg_trigger_in1_in_signal_freq = REGADDOFF__TRIGGER_IN1 + 14,
  80. kreg_trigger_in1_out_signal_freq = REGADDOFF__TRIGGER_IN1 + 15,
  81. kreg_trigger_in2_module = REGADDOFF__TRIGGER_IN2,
  82. kreg_trigger_in2_src_slect = REGADDOFF__TRIGGER_IN2 + 1,
  83. kreg_trigger_in2_fileter_coefficient = REGADDOFF__TRIGGER_IN2 + 2,
  84. kreg_trigger_in2_freq_detect_bias = REGADDOFF__TRIGGER_IN2 + 3,
  85. kreg_trigger_in2_mode = REGADDOFF__TRIGGER_IN2 + 4,
  86. kreg_trigger_in2_trigger_mode_trigger_edge = REGADDOFF__TRIGGER_IN2 + 5,
  87. kreg_trigger_in2_trigger_mode_freq_division = REGADDOFF__TRIGGER_IN2 + 6,
  88. kreg_trigger_in2_trigger_mode_freq_multiplication = REGADDOFF__TRIGGER_IN2 + 7,
  89. kreg_trigger_in2_sequential_control_pluse_cnt_max = REGADDOFF__TRIGGER_IN2 + 10,
  90. kreg_trigger_in2_in_signal_freq = REGADDOFF__TRIGGER_IN2 + 14,
  91. kreg_trigger_in2_out_signal_freq = REGADDOFF__TRIGGER_IN2 + 15,
  92. kreg_trigger_in3_module = REGADDOFF__TRIGGER_IN3,
  93. kreg_trigger_in3_src_slect = REGADDOFF__TRIGGER_IN3 + 1,
  94. kreg_trigger_in3_fileter_coefficient = REGADDOFF__TRIGGER_IN3 + 2,
  95. kreg_trigger_in3_freq_detect_bias = REGADDOFF__TRIGGER_IN3 + 3,
  96. kreg_trigger_in3_mode = REGADDOFF__TRIGGER_IN3 + 4,
  97. kreg_trigger_in3_trigger_mode_trigger_edge = REGADDOFF__TRIGGER_IN3 + 5,
  98. kreg_trigger_in3_trigger_mode_freq_division = REGADDOFF__TRIGGER_IN3 + 6,
  99. kreg_trigger_in3_trigger_mode_freq_multiplication = REGADDOFF__TRIGGER_IN3 + 7,
  100. kreg_trigger_in3_sequential_control_pluse_cnt_max = REGADDOFF__TRIGGER_IN3 + 10,
  101. kreg_trigger_in3_in_signal_freq = REGADDOFF__TRIGGER_IN3 + 14,
  102. kreg_trigger_in3_out_signal_freq = REGADDOFF__TRIGGER_IN3 + 15,
  103. kreg_trigger_in4_module = REGADDOFF__TRIGGER_IN4,
  104. kreg_trigger_in4_src_slect = REGADDOFF__TRIGGER_IN4 + 1,
  105. kreg_trigger_in4_fileter_coefficient = REGADDOFF__TRIGGER_IN4 + 2,
  106. kreg_trigger_in4_freq_detect_bias = REGADDOFF__TRIGGER_IN4 + 3,
  107. kreg_trigger_in4_mode = REGADDOFF__TRIGGER_IN4 + 4,
  108. kreg_trigger_in4_trigger_mode_trigger_edge = REGADDOFF__TRIGGER_IN4 + 5,
  109. kreg_trigger_in4_trigger_mode_freq_division = REGADDOFF__TRIGGER_IN4 + 6,
  110. kreg_trigger_in4_trigger_mode_freq_multiplication = REGADDOFF__TRIGGER_IN4 + 7,
  111. kreg_trigger_in4_sequential_control_pluse_cnt_max = REGADDOFF__TRIGGER_IN4 + 10,
  112. kreg_trigger_in4_in_signal_freq = REGADDOFF__TRIGGER_IN4 + 14,
  113. kreg_trigger_in4_out_signal_freq = REGADDOFF__TRIGGER_IN4 + 15,
  114. /*******************************************************************************
  115. * *
  116. *******************************************************************************/
  117. kreg_ttl_output_module1 = REGADDOFF__TTL_OUTPUT_MODULE1,
  118. kreg_ttl_output_module1_output_ctrl_mode = REGADDOFF__TTL_OUTPUT_MODULE1 + 1,
  119. kreg_ttl_output_module1_lt_en_bind = REGADDOFF__TTL_OUTPUT_MODULE1 + 2,
  120. kreg_ttl_output_module1_lt_en_offset = REGADDOFF__TTL_OUTPUT_MODULE1 + 3,
  121. kreg_ttl_output_module1_in_sig_select = REGADDOFF__TTL_OUTPUT_MODULE1 + 4,
  122. kreg_ttl_output_module1_out_polarity_reversal = REGADDOFF__TTL_OUTPUT_MODULE1 + 5,
  123. kreg_ttl_output_module2 = REGADDOFF__TTL_OUTPUT_MODULE2,
  124. kreg_ttl_output_module2_output_ctrl_mode = REGADDOFF__TTL_OUTPUT_MODULE2 + 1,
  125. kreg_ttl_output_module2_lt_en_bind = REGADDOFF__TTL_OUTPUT_MODULE2 + 2,
  126. kreg_ttl_output_module2_lt_en_offset = REGADDOFF__TTL_OUTPUT_MODULE2 + 3,
  127. kreg_ttl_output_module2_in_sig_select = REGADDOFF__TTL_OUTPUT_MODULE2 + 4,
  128. kreg_ttl_output_module2_out_polarity_reversal = REGADDOFF__TTL_OUTPUT_MODULE2 + 5,
  129. kreg_ttl_output_module3 = REGADDOFF__TTL_OUTPUT_MODULE3,
  130. kreg_ttl_output_module3_output_ctrl_mode = REGADDOFF__TTL_OUTPUT_MODULE3 + 1,
  131. kreg_ttl_output_module3_lt_en_bind = REGADDOFF__TTL_OUTPUT_MODULE3 + 2,
  132. kreg_ttl_output_module3_lt_en_offset = REGADDOFF__TTL_OUTPUT_MODULE3 + 3,
  133. kreg_ttl_output_module3_in_sig_select = REGADDOFF__TTL_OUTPUT_MODULE3 + 4,
  134. kreg_ttl_output_module3_out_polarity_reversal = REGADDOFF__TTL_OUTPUT_MODULE3 + 5,
  135. kreg_ttl_output_module4 = REGADDOFF__TTL_OUTPUT_MODULE4,
  136. kreg_ttl_output_module4_output_ctrl_mode = REGADDOFF__TTL_OUTPUT_MODULE4 + 1,
  137. kreg_ttl_output_module4_lt_en_bind = REGADDOFF__TTL_OUTPUT_MODULE4 + 2,
  138. kreg_ttl_output_module4_lt_en_offset = REGADDOFF__TTL_OUTPUT_MODULE4 + 3,
  139. kreg_ttl_output_module4_in_sig_select = REGADDOFF__TTL_OUTPUT_MODULE4 + 4,
  140. kreg_ttl_output_module4_out_polarity_reversal = REGADDOFF__TTL_OUTPUT_MODULE4 + 5,
  141. /*******************************************************************************
  142. * *
  143. *******************************************************************************/
  144. kreg_light_ctrol_module1 = REGADDOFF__LIGHT_CTROL_MODULE1,
  145. kreg_light_ctrol_module1_source_select = REGADDOFF__LIGHT_CTROL_MODULE1 + 1,
  146. kreg_light_ctrol_module1_en_sig_ctrl_mode = REGADDOFF__LIGHT_CTROL_MODULE1 + 2,
  147. kreg_light_ctrol_module1_light_intensity_ctrl_mode = REGADDOFF__LIGHT_CTROL_MODULE1 + 3,
  148. kreg_light_ctrol_module1_trigger_mode_pluse_num = REGADDOFF__LIGHT_CTROL_MODULE1 + 4,
  149. kreg_light_ctrol_module1_trigger_mode_pluse_interval = REGADDOFF__LIGHT_CTROL_MODULE1 + 5,
  150. kreg_light_ctrol_module1_trigger_mode_pluse_width = REGADDOFF__LIGHT_CTROL_MODULE1 + 6,
  151. kreg_light_ctrol_module1_trigger_mode_first_pluse_offset = REGADDOFF__LIGHT_CTROL_MODULE1 + 7,
  152. kreg_light_ctrol_module1_trigger_mode_output_polarity = REGADDOFF__LIGHT_CTROL_MODULE1 + 8, // 无用
  153. kreg_light_ctrol_module1_light_intensity_cnt = REGADDOFF__LIGHT_CTROL_MODULE1 + 9,
  154. kreg_light_ctrol_module1_light_driver_freq_cnt = REGADDOFF__LIGHT_CTROL_MODULE1 + 10,
  155. kreg_light_ctrol_module1_freq_detect_bias = REGADDOFF__LIGHT_CTROL_MODULE1 + 12,
  156. kreg_light_ctrol_module1_light_src_error_state = REGADDOFF__LIGHT_CTROL_MODULE1 + 13,
  157. kreg_light_ctrol_module1_in_sig_freq_detect = REGADDOFF__LIGHT_CTROL_MODULE1 + 14,
  158. kreg_light_ctrol_module1_out_sig_freq_detect = REGADDOFF__LIGHT_CTROL_MODULE1 + 15,
  159. kreg_light_ctrol_module2 = REGADDOFF__LIGHT_CTROL_MODULE2,
  160. kreg_light_ctrol_module2_source_select = REGADDOFF__LIGHT_CTROL_MODULE2 + 1,
  161. kreg_light_ctrol_module2_en_sig_ctrl_mode = REGADDOFF__LIGHT_CTROL_MODULE2 + 2,
  162. kreg_light_ctrol_module2_light_intensity_ctrl_mode = REGADDOFF__LIGHT_CTROL_MODULE2 + 3,
  163. kreg_light_ctrol_module2_trigger_mode_pluse_num = REGADDOFF__LIGHT_CTROL_MODULE2 + 4,
  164. kreg_light_ctrol_module2_trigger_mode_pluse_interval = REGADDOFF__LIGHT_CTROL_MODULE2 + 5,
  165. kreg_light_ctrol_module2_trigger_mode_pluse_width = REGADDOFF__LIGHT_CTROL_MODULE2 + 6,
  166. kreg_light_ctrol_module2_trigger_mode_first_pluse_offset = REGADDOFF__LIGHT_CTROL_MODULE2 + 7,
  167. kreg_light_ctrol_module2_trigger_mode_output_polarity = REGADDOFF__LIGHT_CTROL_MODULE2 + 8,
  168. kreg_light_ctrol_module2_light_intensity_cnt = REGADDOFF__LIGHT_CTROL_MODULE2 + 9,
  169. kreg_light_ctrol_module2_light_driver_freq_cnt = REGADDOFF__LIGHT_CTROL_MODULE2 + 10,
  170. kreg_light_ctrol_module2_freq_detect_bias = REGADDOFF__LIGHT_CTROL_MODULE2 + 12,
  171. kreg_light_ctrol_module2_light_src_error_state = REGADDOFF__LIGHT_CTROL_MODULE2 + 13,
  172. kreg_light_ctrol_module2_in_sig_freq_detect = REGADDOFF__LIGHT_CTROL_MODULE2 + 14,
  173. kreg_light_ctrol_module2_out_sig_freq_detect = REGADDOFF__LIGHT_CTROL_MODULE2 + 15,
  174. kreg_light_ctrol_module3 = REGADDOFF__LIGHT_CTROL_MODULE3,
  175. kreg_light_ctrol_module3_source_select = REGADDOFF__LIGHT_CTROL_MODULE3 + 1,
  176. kreg_light_ctrol_module3_en_sig_ctrl_mode = REGADDOFF__LIGHT_CTROL_MODULE3 + 2,
  177. kreg_light_ctrol_module3_light_intensity_ctrl_mode = REGADDOFF__LIGHT_CTROL_MODULE3 + 3,
  178. kreg_light_ctrol_module3_trigger_mode_pluse_num = REGADDOFF__LIGHT_CTROL_MODULE3 + 4,
  179. kreg_light_ctrol_module3_trigger_mode_pluse_interval = REGADDOFF__LIGHT_CTROL_MODULE3 + 5,
  180. kreg_light_ctrol_module3_trigger_mode_pluse_width = REGADDOFF__LIGHT_CTROL_MODULE3 + 6,
  181. kreg_light_ctrol_module3_trigger_mode_first_pluse_offset = REGADDOFF__LIGHT_CTROL_MODULE3 + 7,
  182. kreg_light_ctrol_module3_trigger_mode_output_polarity = REGADDOFF__LIGHT_CTROL_MODULE3 + 8,
  183. kreg_light_ctrol_module3_light_intensity_cnt = REGADDOFF__LIGHT_CTROL_MODULE3 + 9,
  184. kreg_light_ctrol_module3_light_driver_freq_cnt = REGADDOFF__LIGHT_CTROL_MODULE3 + 10,
  185. kreg_light_ctrol_module3_freq_detect_bias = REGADDOFF__LIGHT_CTROL_MODULE3 + 12,
  186. kreg_light_ctrol_module3_light_src_error_state = REGADDOFF__LIGHT_CTROL_MODULE3 + 13,
  187. kreg_light_ctrol_module3_in_sig_freq_detect = REGADDOFF__LIGHT_CTROL_MODULE3 + 14,
  188. kreg_light_ctrol_module3_out_sig_freq_detect = REGADDOFF__LIGHT_CTROL_MODULE3 + 15,
  189. kreg_light_ctrol_module4 = REGADDOFF__LIGHT_CTROL_MODULE4,
  190. kreg_light_ctrol_module4_source_select = REGADDOFF__LIGHT_CTROL_MODULE4 + 1,
  191. kreg_light_ctrol_module4_en_sig_ctrl_mode = REGADDOFF__LIGHT_CTROL_MODULE4 + 2,
  192. kreg_light_ctrol_module4_light_intensity_ctrl_mode = REGADDOFF__LIGHT_CTROL_MODULE4 + 3,
  193. kreg_light_ctrol_module4_trigger_mode_pluse_num = REGADDOFF__LIGHT_CTROL_MODULE4 + 4,
  194. kreg_light_ctrol_module4_trigger_mode_pluse_interval = REGADDOFF__LIGHT_CTROL_MODULE4 + 5,
  195. kreg_light_ctrol_module4_trigger_mode_pluse_width = REGADDOFF__LIGHT_CTROL_MODULE4 + 6,
  196. kreg_light_ctrol_module4_trigger_mode_first_pluse_offset = REGADDOFF__LIGHT_CTROL_MODULE4 + 7,
  197. kreg_light_ctrol_module4_trigger_mode_output_polarity = REGADDOFF__LIGHT_CTROL_MODULE4 + 8,
  198. kreg_light_ctrol_module4_light_intensity_cnt = REGADDOFF__LIGHT_CTROL_MODULE4 + 9,
  199. kreg_light_ctrol_module4_light_driver_freq_cnt = REGADDOFF__LIGHT_CTROL_MODULE4 + 10,
  200. kreg_light_ctrol_module4_freq_detect_bias = REGADDOFF__LIGHT_CTROL_MODULE4 + 12,
  201. kreg_light_ctrol_module4_light_src_error_state = REGADDOFF__LIGHT_CTROL_MODULE4 + 13,
  202. kreg_light_ctrol_module4_in_sig_freq_detect = REGADDOFF__LIGHT_CTROL_MODULE4 + 14,
  203. kreg_light_ctrol_module4_out_sig_freq_detect = REGADDOFF__LIGHT_CTROL_MODULE4 + 15,
  204. } RegAdd_t;