diff --git a/zaf_regs.hpp b/zaf_regs.hpp index eaa0d33..917a20c 100644 --- a/zaf_regs.hpp +++ b/zaf_regs.hpp @@ -3,10 +3,26 @@ #define REGADD__STM32_BUSINESS (0x0020) #define REGADD__FPGA_START (0x0100) +#define REGADDOFF__FPGA_INFO (0x1000) +#define REGADDOFF__INTERNAL_CLK (0x1020) +#define REGADDOFF__INTERNAL_TRIGGER (0x1040) +#define REGADDOFF__TRIGGER_IN1 (0x2000) +#define REGADDOFF__TRIGGER_IN2 (0x2020) +#define REGADDOFF__TRIGGER_IN3 (0x2040) +#define REGADDOFF__TRIGGER_IN4 (0x2060) +#define REGADDOFF__LIGHT_CTROL_MODULE1 (0x3000) +#define REGADDOFF__LIGHT_CTROL_MODULE2 (0x3020) +#define REGADDOFF__LIGHT_CTROL_MODULE3 (0x3040) +#define REGADDOFF__LIGHT_CTROL_MODULE4 (0x3060) +#define REGADDOFF__TTL_OUTPUT_MODULE1 (0x4000) +#define REGADDOFF__TTL_OUTPUT_MODULE2 (0x4020) +#define REGADDOFF__TTL_OUTPUT_MODULE3 (0x4040) +#define REGADDOFF__TTL_OUTPUT_MODULE4 (0x4060) + typedef enum { /** * @brief - * REG 0(16) 设备信息基础寄存器 + * REG 0(16) 璁惧淇℃伅鍩虹瀵勫瓨鍣 */ kreg_software_version = 0, kreg_manufacturer0 = 1, @@ -20,7 +36,7 @@ typedef enum { /** * @brief - * REG 16(32) STM32配置寄存器0 + * REG 16(32) STM32閰嶇疆瀵勫瓨鍣0 */ kreg_stm32_obtaining_ip_mode = REGADD__STM32_COMMON + 0, kreg_stm32_ip = REGADD__STM32_COMMON + 1, @@ -34,4 +50,173 @@ typedef enum { kreg_stm32_temperature = REGADD__STM32_BUSINESS + 0, kreg_stm32_fan0_error_flag = REGADD__STM32_BUSINESS + 1, + /******************************************************************************* + * 鍐呴儴鏃堕挓婧 * + *******************************************************************************/ + + kreg_internal_clk_module = REGADDOFF__INTERNAL_CLK, + kreg_internal_clk_ctrl = REGADDOFF__INTERNAL_CLK + 1, + kreg_internal_clk_freq_cnt = REGADDOFF__INTERNAL_CLK + 2, + kreg_internal_clk_pluse_cnt = REGADDOFF__INTERNAL_CLK + 3, + kreg_internal_clk_output_sig_detect = REGADDOFF__INTERNAL_CLK + 15, + + kreg_internal_clk_tri_module = REGADDOFF__INTERNAL_TRIGGER, + kreg_internal_clk_tri_src_slect = REGADDOFF__INTERNAL_TRIGGER + 1, + kreg_internal_clk_tri_fileter_coefficient = REGADDOFF__INTERNAL_TRIGGER + 2, + kreg_internal_clk_tri_freq_detect_bias = REGADDOFF__INTERNAL_TRIGGER + 3, + kreg_internal_clk_tri_mode = REGADDOFF__INTERNAL_TRIGGER + 4, + kreg_internal_clk_tri_trigger_mode_trigger_edge = REGADDOFF__INTERNAL_TRIGGER + 5, + kreg_internal_clk_tri_trigger_mode_freq_division = REGADDOFF__INTERNAL_TRIGGER + 6, + kreg_internal_clk_tri_trigger_mode_freq_multiplication = REGADDOFF__INTERNAL_TRIGGER + 7, + kreg_internal_clk_tri_sequential_control_pluse_cnt_max = REGADDOFF__INTERNAL_TRIGGER + 10, + kreg_internal_clk_tri_in_signal_freq = REGADDOFF__INTERNAL_TRIGGER + 14, + kreg_internal_clk_tri_out_signal_freq = REGADDOFF__INTERNAL_TRIGGER + 15, + + /******************************************************************************* + * reg_trigger_in * + *******************************************************************************/ + + kreg_trigger_in1_module = REGADDOFF__TRIGGER_IN1, + kreg_trigger_in1_src_slect = REGADDOFF__TRIGGER_IN1 + 1, + kreg_trigger_in1_fileter_coefficient = REGADDOFF__TRIGGER_IN1 + 2, // 婊ゆ尝绯绘暟锛屽崟浣嶆槸10ns + kreg_trigger_in1_freq_detect_bias = REGADDOFF__TRIGGER_IN1 + 3, + kreg_trigger_in1_mode = REGADDOFF__TRIGGER_IN1 + 4, // mode 0:瑙﹀彂 1:杞彂妯″紡 + kreg_trigger_in1_trigger_mode_trigger_edge = REGADDOFF__TRIGGER_IN1 + 5, + kreg_trigger_in1_trigger_mode_freq_division = REGADDOFF__TRIGGER_IN1 + 6, + kreg_trigger_in1_trigger_mode_freq_multiplication = REGADDOFF__TRIGGER_IN1 + 7, + kreg_trigger_in1_sequential_control_pluse_cnt_max = REGADDOFF__TRIGGER_IN1 + 10, // 椤哄簭鎺у埗淇″彿鏈澶ц鏁 + kreg_trigger_in1_in_signal_freq = REGADDOFF__TRIGGER_IN1 + 14, + kreg_trigger_in1_out_signal_freq = REGADDOFF__TRIGGER_IN1 + 15, + + kreg_trigger_in2_module = REGADDOFF__TRIGGER_IN2, + kreg_trigger_in2_src_slect = REGADDOFF__TRIGGER_IN2 + 1, + kreg_trigger_in2_fileter_coefficient = REGADDOFF__TRIGGER_IN2 + 2, + kreg_trigger_in2_freq_detect_bias = REGADDOFF__TRIGGER_IN2 + 3, + kreg_trigger_in2_mode = REGADDOFF__TRIGGER_IN2 + 4, + kreg_trigger_in2_trigger_mode_trigger_edge = REGADDOFF__TRIGGER_IN2 + 5, + kreg_trigger_in2_trigger_mode_freq_division = REGADDOFF__TRIGGER_IN2 + 6, + kreg_trigger_in2_trigger_mode_freq_multiplication = REGADDOFF__TRIGGER_IN2 + 7, + kreg_trigger_in2_sequential_control_pluse_cnt_max = REGADDOFF__TRIGGER_IN2 + 10, + kreg_trigger_in2_in_signal_freq = REGADDOFF__TRIGGER_IN2 + 14, + kreg_trigger_in2_out_signal_freq = REGADDOFF__TRIGGER_IN2 + 15, + + kreg_trigger_in3_module = REGADDOFF__TRIGGER_IN3, + kreg_trigger_in3_src_slect = REGADDOFF__TRIGGER_IN3 + 1, + kreg_trigger_in3_fileter_coefficient = REGADDOFF__TRIGGER_IN3 + 2, + kreg_trigger_in3_freq_detect_bias = REGADDOFF__TRIGGER_IN3 + 3, + kreg_trigger_in3_mode = REGADDOFF__TRIGGER_IN3 + 4, + kreg_trigger_in3_trigger_mode_trigger_edge = REGADDOFF__TRIGGER_IN3 + 5, + kreg_trigger_in3_trigger_mode_freq_division = REGADDOFF__TRIGGER_IN3 + 6, + kreg_trigger_in3_trigger_mode_freq_multiplication = REGADDOFF__TRIGGER_IN3 + 7, + kreg_trigger_in3_sequential_control_pluse_cnt_max = REGADDOFF__TRIGGER_IN3 + 10, + kreg_trigger_in3_in_signal_freq = REGADDOFF__TRIGGER_IN3 + 14, + kreg_trigger_in3_out_signal_freq = REGADDOFF__TRIGGER_IN3 + 15, + + kreg_trigger_in4_module = REGADDOFF__TRIGGER_IN4, + kreg_trigger_in4_src_slect = REGADDOFF__TRIGGER_IN4 + 1, + kreg_trigger_in4_fileter_coefficient = REGADDOFF__TRIGGER_IN4 + 2, + kreg_trigger_in4_freq_detect_bias = REGADDOFF__TRIGGER_IN4 + 3, + kreg_trigger_in4_mode = REGADDOFF__TRIGGER_IN4 + 4, + kreg_trigger_in4_trigger_mode_trigger_edge = REGADDOFF__TRIGGER_IN4 + 5, + kreg_trigger_in4_trigger_mode_freq_division = REGADDOFF__TRIGGER_IN4 + 6, + kreg_trigger_in4_trigger_mode_freq_multiplication = REGADDOFF__TRIGGER_IN4 + 7, + kreg_trigger_in4_sequential_control_pluse_cnt_max = REGADDOFF__TRIGGER_IN4 + 10, + kreg_trigger_in4_in_signal_freq = REGADDOFF__TRIGGER_IN4 + 14, + kreg_trigger_in4_out_signal_freq = REGADDOFF__TRIGGER_IN4 + 15, + + /******************************************************************************* + * 蹇棬鎺у埗杈撳嚭 * + *******************************************************************************/ + + kreg_ttl_output_module1 = REGADDOFF__TTL_OUTPUT_MODULE1, + kreg_ttl_output_module1_output_ctrl_mode = REGADDOFF__TTL_OUTPUT_MODULE1 + 1, + kreg_ttl_output_module1_lt_en_bind = REGADDOFF__TTL_OUTPUT_MODULE1 + 2, + kreg_ttl_output_module1_lt_en_offset = REGADDOFF__TTL_OUTPUT_MODULE1 + 3, + kreg_ttl_output_module1_in_sig_select = REGADDOFF__TTL_OUTPUT_MODULE1 + 4, + + kreg_ttl_output_module2 = REGADDOFF__TTL_OUTPUT_MODULE2, + kreg_ttl_output_module2_output_ctrl_mode = REGADDOFF__TTL_OUTPUT_MODULE2 + 1, + kreg_ttl_output_module2_lt_en_bind = REGADDOFF__TTL_OUTPUT_MODULE2 + 2, + kreg_ttl_output_module2_lt_en_offset = REGADDOFF__TTL_OUTPUT_MODULE2 + 3, + kreg_ttl_output_module2_in_sig_select = REGADDOFF__TTL_OUTPUT_MODULE2 + 4, + + kreg_ttl_output_module3 = REGADDOFF__TTL_OUTPUT_MODULE3, + kreg_ttl_output_module3_output_ctrl_mode = REGADDOFF__TTL_OUTPUT_MODULE3 + 1, + kreg_ttl_output_module3_lt_en_bind = REGADDOFF__TTL_OUTPUT_MODULE3 + 2, + kreg_ttl_output_module3_lt_en_offset = REGADDOFF__TTL_OUTPUT_MODULE3 + 3, + kreg_ttl_output_module3_in_sig_select = REGADDOFF__TTL_OUTPUT_MODULE3 + 4, + + kreg_ttl_output_module4 = REGADDOFF__TTL_OUTPUT_MODULE4, + kreg_ttl_output_module4_output_ctrl_mode = REGADDOFF__TTL_OUTPUT_MODULE4 + 1, + kreg_ttl_output_module4_lt_en_bind = REGADDOFF__TTL_OUTPUT_MODULE4 + 2, + kreg_ttl_output_module4_lt_en_offset = REGADDOFF__TTL_OUTPUT_MODULE4 + 3, + kreg_ttl_output_module4_in_sig_select = REGADDOFF__TTL_OUTPUT_MODULE4 + 4, + + /******************************************************************************* + * 鍏夋簮鎺у埗 * + *******************************************************************************/ + kreg_light_ctrol_module1 = REGADDOFF__LIGHT_CTROL_MODULE1, + kreg_light_ctrol_module1_source_select = REGADDOFF__LIGHT_CTROL_MODULE1 + 1, + kreg_light_ctrol_module1_en_sig_ctrl_mode = REGADDOFF__LIGHT_CTROL_MODULE1 + 2, + kreg_light_ctrol_module1_light_intensity_ctrl_mode = REGADDOFF__LIGHT_CTROL_MODULE1 + 3, + kreg_light_ctrol_module1_trigger_mode_pluse_num = REGADDOFF__LIGHT_CTROL_MODULE1 + 4, + kreg_light_ctrol_module1_trigger_mode_pluse_interval = REGADDOFF__LIGHT_CTROL_MODULE1 + 5, + kreg_light_ctrol_module1_trigger_mode_pluse_width = REGADDOFF__LIGHT_CTROL_MODULE1 + 6, + kreg_light_ctrol_module1_trigger_mode_first_pluse_offset = REGADDOFF__LIGHT_CTROL_MODULE1 + 7, + kreg_light_ctrol_module1_trigger_mode_output_polarity = REGADDOFF__LIGHT_CTROL_MODULE1 + 8, // 鏃犵敤 + kreg_light_ctrol_module1_light_intensity_cnt = REGADDOFF__LIGHT_CTROL_MODULE1 + 9, + kreg_light_ctrol_module1_light_driver_freq_cnt = REGADDOFF__LIGHT_CTROL_MODULE1 + 10, + kreg_light_ctrol_module1_freq_detect_bias = REGADDOFF__LIGHT_CTROL_MODULE1 + 12, + kreg_light_ctrol_module1_light_src_error_state = REGADDOFF__LIGHT_CTROL_MODULE1 + 13, + kreg_light_ctrol_module1_in_sig_freq_detect = REGADDOFF__LIGHT_CTROL_MODULE1 + 14, + kreg_light_ctrol_module1_out_sig_freq_detect = REGADDOFF__LIGHT_CTROL_MODULE1 + 15, + + kreg_light_ctrol_module2 = REGADDOFF__LIGHT_CTROL_MODULE2, + kreg_light_ctrol_module2_source_select = REGADDOFF__LIGHT_CTROL_MODULE2 + 1, + kreg_light_ctrol_module2_en_sig_ctrl_mode = REGADDOFF__LIGHT_CTROL_MODULE2 + 2, + kreg_light_ctrol_module2_light_intensity_ctrl_mode = REGADDOFF__LIGHT_CTROL_MODULE2 + 3, + kreg_light_ctrol_module2_trigger_mode_pluse_num = REGADDOFF__LIGHT_CTROL_MODULE2 + 4, + kreg_light_ctrol_module2_trigger_mode_pluse_interval = REGADDOFF__LIGHT_CTROL_MODULE2 + 5, + kreg_light_ctrol_module2_trigger_mode_pluse_width = REGADDOFF__LIGHT_CTROL_MODULE2 + 6, + kreg_light_ctrol_module2_trigger_mode_first_pluse_offset = REGADDOFF__LIGHT_CTROL_MODULE2 + 7, + kreg_light_ctrol_module2_trigger_mode_output_polarity = REGADDOFF__LIGHT_CTROL_MODULE2 + 8, + kreg_light_ctrol_module2_light_intensity_cnt = REGADDOFF__LIGHT_CTROL_MODULE2 + 9, + kreg_light_ctrol_module2_light_driver_freq_cnt = REGADDOFF__LIGHT_CTROL_MODULE2 + 10, + kreg_light_ctrol_module2_freq_detect_bias = REGADDOFF__LIGHT_CTROL_MODULE2 + 12, + kreg_light_ctrol_module2_light_src_error_state = REGADDOFF__LIGHT_CTROL_MODULE2 + 13, + kreg_light_ctrol_module2_in_sig_freq_detect = REGADDOFF__LIGHT_CTROL_MODULE2 + 14, + kreg_light_ctrol_module2_out_sig_freq_detect = REGADDOFF__LIGHT_CTROL_MODULE2 + 15, + + kreg_light_ctrol_module3 = REGADDOFF__LIGHT_CTROL_MODULE3, + kreg_light_ctrol_module3_source_select = REGADDOFF__LIGHT_CTROL_MODULE3 + 1, + kreg_light_ctrol_module3_en_sig_ctrl_mode = REGADDOFF__LIGHT_CTROL_MODULE3 + 2, + kreg_light_ctrol_module3_light_intensity_ctrl_mode = REGADDOFF__LIGHT_CTROL_MODULE3 + 3, + kreg_light_ctrol_module3_trigger_mode_pluse_num = REGADDOFF__LIGHT_CTROL_MODULE3 + 4, + kreg_light_ctrol_module3_trigger_mode_pluse_interval = REGADDOFF__LIGHT_CTROL_MODULE3 + 5, + kreg_light_ctrol_module3_trigger_mode_pluse_width = REGADDOFF__LIGHT_CTROL_MODULE3 + 6, + kreg_light_ctrol_module3_trigger_mode_first_pluse_offset = REGADDOFF__LIGHT_CTROL_MODULE3 + 7, + kreg_light_ctrol_module3_trigger_mode_output_polarity = REGADDOFF__LIGHT_CTROL_MODULE3 + 8, + kreg_light_ctrol_module3_light_intensity_cnt = REGADDOFF__LIGHT_CTROL_MODULE3 + 9, + kreg_light_ctrol_module3_light_driver_freq_cnt = REGADDOFF__LIGHT_CTROL_MODULE3 + 10, + kreg_light_ctrol_module3_freq_detect_bias = REGADDOFF__LIGHT_CTROL_MODULE3 + 12, + kreg_light_ctrol_module3_light_src_error_state = REGADDOFF__LIGHT_CTROL_MODULE3 + 13, + kreg_light_ctrol_module3_in_sig_freq_detect = REGADDOFF__LIGHT_CTROL_MODULE3 + 14, + kreg_light_ctrol_module3_out_sig_freq_detect = REGADDOFF__LIGHT_CTROL_MODULE3 + 15, + + kreg_light_ctrol_module4 = REGADDOFF__LIGHT_CTROL_MODULE4, + kreg_light_ctrol_module4_source_select = REGADDOFF__LIGHT_CTROL_MODULE4 + 1, + kreg_light_ctrol_module4_en_sig_ctrl_mode = REGADDOFF__LIGHT_CTROL_MODULE4 + 2, + kreg_light_ctrol_module4_light_intensity_ctrl_mode = REGADDOFF__LIGHT_CTROL_MODULE4 + 3, + kreg_light_ctrol_module4_trigger_mode_pluse_num = REGADDOFF__LIGHT_CTROL_MODULE4 + 4, + kreg_light_ctrol_module4_trigger_mode_pluse_interval = REGADDOFF__LIGHT_CTROL_MODULE4 + 5, + kreg_light_ctrol_module4_trigger_mode_pluse_width = REGADDOFF__LIGHT_CTROL_MODULE4 + 6, + kreg_light_ctrol_module4_trigger_mode_first_pluse_offset = REGADDOFF__LIGHT_CTROL_MODULE4 + 7, + kreg_light_ctrol_module4_trigger_mode_output_polarity = REGADDOFF__LIGHT_CTROL_MODULE4 + 8, + kreg_light_ctrol_module4_light_intensity_cnt = REGADDOFF__LIGHT_CTROL_MODULE4 + 9, + kreg_light_ctrol_module4_light_driver_freq_cnt = REGADDOFF__LIGHT_CTROL_MODULE4 + 10, + kreg_light_ctrol_module4_freq_detect_bias = REGADDOFF__LIGHT_CTROL_MODULE4 + 12, + kreg_light_ctrol_module4_light_src_error_state = REGADDOFF__LIGHT_CTROL_MODULE4 + 13, + kreg_light_ctrol_module4_in_sig_freq_detect = REGADDOFF__LIGHT_CTROL_MODULE4 + 14, + kreg_light_ctrol_module4_out_sig_freq_detect = REGADDOFF__LIGHT_CTROL_MODULE4 + 15, + } RegAdd_t;