autd3_firmware_emulator/fpga/
params.rs

1pub const VERSION_NUM_MAJOR: u8 = 0xA5;
2pub const VERSION_NUM_MINOR: u8 = 0x00;
3
4pub const BRAM_SELECT_CONTROLLER: u8 = 0x0;
5pub const BRAM_SELECT_MOD: u8 = 0x1;
6pub const BRAM_SELECT_PWE_TABLE: u8 = 0x2;
7pub const BRAM_SELECT_STM: u8 = 0x3;
8
9pub const BRAM_CNT_SEL_MAIN: usize = 0x00;
10pub const BRAM_CNT_SEL_PHASE_CORR: usize = 0x01;
11pub const BRAM_CNT_SEL_OUTPUT_MASK: usize = 0x02;
12
13pub const TRANSITION_MODE_SYNC_IDX: u8 = 0x00;
14pub const TRANSITION_MODE_SYS_TIME: u8 = 0x01;
15pub const TRANSITION_MODE_GPIO: u8 = 0x02;
16pub const TRANSITION_MODE_EXT: u8 = 0xF0;
17pub const TRANSITION_MODE_IMMEDIATE: u8 = 0xFF;
18
19// pub const STM_MODE_FOCUS: u16 = 0x0;
20pub const STM_MODE_GAIN: u16 = 0x1;
21
22pub const SILENCER_FLAG_BIT_FIXED_UPDATE_RATE_MODE: u16 = 0;
23pub const SILENCER_FLAG_FIXED_UPDATE_RATE_MODE: u16 = 1 << SILENCER_FLAG_BIT_FIXED_UPDATE_RATE_MODE;
24
25pub const ADDR_CTL_FLAG: usize = 0x00;
26pub const ADDR_FPGA_STATE: usize = 0x01;
27pub const ADDR_VERSION_NUM_MAJOR: usize = 0x02;
28pub const ADDR_VERSION_NUM_MINOR: usize = 0x03;
29pub const ADDR_ECAT_SYNC_TIME_0: usize = 0x10;
30pub const ADDR_ECAT_SYNC_TIME_1: usize = 0x11;
31pub const ADDR_ECAT_SYNC_TIME_2: usize = 0x12;
32pub const ADDR_ECAT_SYNC_TIME_3: usize = 0x13;
33pub const ADDR_MOD_MEM_WR_SEGMENT: usize = 0x20;
34pub const ADDR_MOD_MEM_WR_PAGE: usize = 0x21;
35pub const ADDR_MOD_REQ_RD_SEGMENT: usize = 0x22;
36pub const ADDR_MOD_CYCLE0: usize = 0x23;
37pub const ADDR_MOD_CYCLE1: usize = 0x24;
38pub const ADDR_MOD_FREQ_DIV0: usize = 0x25;
39pub const ADDR_MOD_FREQ_DIV1: usize = 0x26;
40pub const ADDR_MOD_REP0: usize = 0x27;
41pub const ADDR_MOD_REP1: usize = 0x28;
42pub const ADDR_MOD_TRANSITION_MODE: usize = 0x29;
43pub const ADDR_MOD_TRANSITION_VALUE_0: usize = 0x2A;
44pub const ADDR_MOD_TRANSITION_VALUE_1: usize = 0x2B;
45pub const ADDR_MOD_TRANSITION_VALUE_2: usize = 0x2C;
46pub const ADDR_MOD_TRANSITION_VALUE_3: usize = 0x2D;
47pub const ADDR_SILENCER_FLAG: usize = 0x40;
48pub const ADDR_SILENCER_UPDATE_RATE_INTENSITY: usize = 0x41;
49pub const ADDR_SILENCER_UPDATE_RATE_PHASE: usize = 0x42;
50pub const ADDR_SILENCER_COMPLETION_STEPS_INTENSITY: usize = 0x43;
51pub const ADDR_SILENCER_COMPLETION_STEPS_PHASE: usize = 0x44;
52pub const ADDR_STM_MEM_WR_SEGMENT: usize = 0x50;
53pub const ADDR_STM_MEM_WR_PAGE: usize = 0x51;
54pub const ADDR_STM_REQ_RD_SEGMENT: usize = 0x52;
55pub const ADDR_STM_CYCLE0: usize = 0x53;
56pub const ADDR_STM_CYCLE1: usize = 0x54;
57pub const ADDR_STM_FREQ_DIV0: usize = 0x55;
58pub const ADDR_STM_FREQ_DIV1: usize = 0x56;
59pub const ADDR_STM_REP0: usize = 0x57;
60pub const ADDR_STM_REP1: usize = 0x58;
61pub const ADDR_STM_MODE0: usize = 0x59;
62pub const ADDR_STM_MODE1: usize = 0x5A;
63pub const ADDR_STM_SOUND_SPEED0: usize = 0x5B;
64pub const ADDR_STM_SOUND_SPEED1: usize = 0x5C;
65pub const ADDR_STM_NUM_FOCI0: usize = 0x5D;
66pub const ADDR_STM_NUM_FOCI1: usize = 0x5E;
67pub const ADDR_STM_TRANSITION_MODE: usize = 0x5F;
68pub const ADDR_STM_TRANSITION_VALUE_0: usize = 0x60;
69pub const ADDR_STM_TRANSITION_VALUE_1: usize = 0x61;
70pub const ADDR_STM_TRANSITION_VALUE_2: usize = 0x62;
71pub const ADDR_STM_TRANSITION_VALUE_3: usize = 0x63;
72pub const ADDR_DEBUG_VALUE0_0: usize = 0xF0;
73pub const ADDR_DEBUG_VALUE0_1: usize = 0xF1;
74pub const ADDR_DEBUG_VALUE0_2: usize = 0xF2;
75pub const ADDR_DEBUG_VALUE0_3: usize = 0xF3;
76pub const ADDR_DEBUG_VALUE1_0: usize = 0xF4;
77pub const ADDR_DEBUG_VALUE1_1: usize = 0xF5;
78pub const ADDR_DEBUG_VALUE1_2: usize = 0xF6;
79pub const ADDR_DEBUG_VALUE1_3: usize = 0xF7;
80pub const ADDR_DEBUG_VALUE2_0: usize = 0xF8;
81pub const ADDR_DEBUG_VALUE2_1: usize = 0xF9;
82pub const ADDR_DEBUG_VALUE2_2: usize = 0xFA;
83pub const ADDR_DEBUG_VALUE2_3: usize = 0xFB;
84pub const ADDR_DEBUG_VALUE3_0: usize = 0xFC;
85pub const ADDR_DEBUG_VALUE3_1: usize = 0xFD;
86pub const ADDR_DEBUG_VALUE3_2: usize = 0xFE;
87pub const ADDR_DEBUG_VALUE3_3: usize = 0xFF;
88
89pub const CTL_FLAG_MOD_SET_BIT: u16 = 0;
90pub const CTL_FLAG_STM_SET_BIT: u16 = 1;
91// pub const CTL_FLAG_SILENCER_SET_BIT: u8 = 2;
92// pub const CTL_FLAG_PULSE_WIDTH_ENCODER_SET_BIT: u8 = 3;
93// pub const CTL_FLAG_DEBUG_SET_BIT: u8 = 4;
94// pub const CTL_FLAG_SYNC_SET_BIT: u8 = 5;
95
96pub const CTL_FLAG_BIT_GPIO_IN_0: u8 = 8;
97pub const CTL_FLAG_BIT_GPIO_IN_1: u8 = 9;
98pub const CTL_FLAG_BIT_GPIO_IN_2: u8 = 10;
99pub const CTL_FLAG_BIT_GPIO_IN_3: u8 = 11;
100pub const CTL_FLAG_FORCE_FAN_BIT: u8 = 13;
101
102pub const ENABLED_EMULATOR_BIT: u8 = 0x80;
103pub const ENABLED_FEATURES_BITS: u8 = ENABLED_EMULATOR_BIT;
104
105pub const GPIO_O_TYPE_NONE: u8 = 0x00;
106pub const GPIO_O_TYPE_BASE_SIG: u8 = 0x01;
107pub const GPIO_O_TYPE_THERMO: u8 = 0x02;
108pub const GPIO_O_TYPE_FORCE_FAN: u8 = 0x03;
109pub const GPIO_O_TYPE_SYNC: u8 = 0x10;
110pub const GPIO_O_TYPE_MOD_SEGMENT: u8 = 0x20;
111pub const GPIO_O_TYPE_MOD_IDX: u8 = 0x21;
112pub const GPIO_O_TYPE_STM_SEGMENT: u8 = 0x50;
113pub const GPIO_O_TYPE_STM_IDX: u8 = 0x51;
114pub const GPIO_O_TYPE_IS_STM_MODE: u8 = 0x52;
115pub const GPIO_O_TYPE_SYS_TIME_EQ: u8 = 0x60;
116pub const GPIO_O_TYPE_SYNC_DIFF: u8 = 0x70;
117pub const GPIO_O_TYPE_PWM_OUT: u8 = 0xE0;
118pub const GPIO_O_TYPE_DIRECT: u8 = 0xF0;