добавлена бета проверка драйверов
This commit is contained in:
@@ -74,15 +74,12 @@ constexpr bool SERIAL_LOG_TIMESTAMPS = true;
|
||||
constexpr bool SERIAL_MINIMAL_LOG = true;
|
||||
|
||||
#define BUTTON_ACTIVE_LEVEL LOW
|
||||
// Raw GPIO_RX level that means the optical receiver is active.
|
||||
#define RX_ACTIVE_LEVEL HIGH
|
||||
// PWM_ACTIVE_LEVEL is the electrical level of the active test pulse and is
|
||||
// also used for the constant active output while awake outside a test. During
|
||||
// the remainder of a running PWM period the output is !PWM_ACTIVE_LEVEL.
|
||||
// PWM_SAFE_LEVEL is used only while PWM is stopped and during sleep; it is
|
||||
// independent of the PWM inactive level and may equal PWM_ACTIVE_LEVEL.
|
||||
#define PWM_SAFE_LEVEL HIGH
|
||||
#define PWM_ACTIVE_LEVEL LOW
|
||||
// Fixed PCB conversion between electrical GPIO levels and actual optical
|
||||
// light. User settings HH/HL/LH/LL operate only in the optical domain and
|
||||
// never change these hardware facts.
|
||||
#define TX_LIGHT_ON_GPIO_LEVEL LOW
|
||||
#define RX_LIGHT_ON_GPIO_LEVEL LOW
|
||||
#define TX_LIGHT_OFF_GPIO_LEVEL (TX_LIGHT_ON_GPIO_LEVEL == HIGH ? LOW : HIGH)
|
||||
#define PWM_SETTLE_CYCLES 5U
|
||||
|
||||
constexpr uint32_t BUTTON_DEBOUNCE_MS = 30;
|
||||
@@ -95,8 +92,8 @@ constexpr uint32_t LINK_REPLY_TIMEOUT_MS = 1500;
|
||||
constexpr uint8_t LINK_PACKET_RETRIES = 10;
|
||||
constexpr uint32_t LINK_RETRY_INTERVAL_MS = 1000;
|
||||
constexpr uint32_t DISCOVERY_RETRY_INTERVAL_MS = 20;
|
||||
// During discovery Master alternates PWM_ACTIVE_LEVEL and PWM_SAFE_LEVEL to
|
||||
// wake a sleeping Slave through the optical channel.
|
||||
// During discovery Master alternates actual optical light ON and OFF to wake
|
||||
// a sleeping Slave through the optical channel.
|
||||
constexpr uint32_t OPTICAL_WAKE_HALF_PERIOD_MS = 50;
|
||||
constexpr uint32_t LINK_HEARTBEAT_INTERVAL_MS = 500;
|
||||
constexpr uint32_t LINK_HEARTBEAT_TIMEOUT_MS = 2500;
|
||||
@@ -114,6 +111,9 @@ constexpr uint8_t MEASUREMENT_PROGRESS_STEPS = 10;
|
||||
constexpr uint32_t OLED_PROGRESS_UPDATE_MS = 15;
|
||||
|
||||
constexpr uint32_t IDLE_POWER_SAVE_TIMEOUT_MS = 60000;
|
||||
// usb_serial_jtag_is_connected() needs no open COM port or CDC traffic, but a
|
||||
// short SOF detection gap must not send the board to sleep.
|
||||
constexpr uint32_t USB_HOST_DISCONNECT_GRACE_MS = 5000;
|
||||
constexpr uint16_t SLAVE_LISTEN_INTERVAL_MS = 100;
|
||||
constexpr uint16_t SLAVE_LISTEN_WINDOW_MS = 20;
|
||||
static_assert(SLAVE_LISTEN_WINDOW_MS < SLAVE_LISTEN_INTERVAL_MS,
|
||||
@@ -139,6 +139,22 @@ constexpr uint8_t LEDC_MAX_BITS = 14;
|
||||
constexpr uint32_t MCPWM_RESOLUTION_HZ = 20000000;
|
||||
constexpr uint32_t MCPWM_MAX_PERIOD_TICKS = 65535;
|
||||
|
||||
// Concept 1SP0635 status acknowledgement, expressed in the optical domain.
|
||||
constexpr uint32_t DRIVER_MIN_INPUT_PULSE_NS = 2000;
|
||||
constexpr uint32_t DRIVER_ACK_DELAY_NS = 250;
|
||||
constexpr uint32_t DRIVER_ACK_WIDTH_NS = 700;
|
||||
constexpr uint32_t DRIVER_ACK_START_MAX_NS = 2000;
|
||||
constexpr uint32_t DRIVER_ACK_MERGE_MARGIN_NS = 250;
|
||||
// Any response this long is a fault, not a normal acknowledgement.
|
||||
constexpr uint32_t DRIVER_FAULT_MIN_NS = 1500;
|
||||
// A short circuit is about 9 us. Gate-monitoring may be stretched by an
|
||||
// overlapping turn-off ACK, but remains shorter on the tested driver.
|
||||
constexpr uint32_t DRIVER_SHORT_CIRCUIT_MIN_NS = 6000;
|
||||
constexpr uint32_t DRIVER_RX_STUCK_MIN_NS = 20000;
|
||||
// Retained by the generic receiver backend; the driver test itself uses the
|
||||
// stricter ACK start deadline above.
|
||||
constexpr uint32_t DRIVER_RESPONSE_TIMEOUT_NS = 10000;
|
||||
|
||||
// -------------------------- Menu value arrays -----------------------------
|
||||
// The test uses one selected PWM frequency and walks the pulse-width list from
|
||||
// the selected maximum down to the selected minimum. Widths are stored in
|
||||
@@ -147,13 +163,13 @@ constexpr uint32_t PWM_FREQUENCY_OPTIONS_HZ[] = {
|
||||
500, 1000, 2000, 5000, 10000, 25000,
|
||||
};
|
||||
constexpr uint32_t MAX_PULSE_OPTIONS_NS[] = {
|
||||
20000, 50000, 100000, 200000, 500000
|
||||
2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000
|
||||
};
|
||||
constexpr uint32_t MIN_PULSE_OPTIONS_NS[] = {
|
||||
250, 500, 1000, 2000, 5000, 10000
|
||||
250, 500, 1000, 2000, 5000, 10000, 50000
|
||||
};
|
||||
constexpr uint32_t TEST_PULSE_WIDTHS_NS[] = {
|
||||
250, 500, 1000, 2000, 5000, 10000, 20000, 50000,
|
||||
50, 100, 150, 200, 250, 500, 1000, 2000, 5000, 10000, 20000, 50000,
|
||||
100000, 200000, 500000, 1000000
|
||||
};
|
||||
constexpr float ACCURACY_OPTIONS_PCT[] = {1.0f, 2.0f, 5.0f, 10.0f};
|
||||
|
||||
Reference in New Issue
Block a user