esp-sdr-zephyr
Raw I/Q receive and transmit on the ESP32-S3/C6 Wi-Fi radio, for Zephyr
Loading...
Searching...
No Matches
esp_sdr_diag.h
Go to the documentation of this file.
1/*
2 * SPDX-License-Identifier: GPL-3.0-or-later
3 */
4
33
34#ifndef ESP_SDR_ESP_SDR_DIAG_H_
35#define ESP_SDR_ESP_SDR_DIAG_H_
36
37#include <stddef.h>
38#include <stdbool.h>
39#include <stdint.h>
40
41#ifdef __cplusplus
42extern "C" {
43#endif
44
49
51#define ESP_SDR_DIAG_PINS 8U
52
54#define ESP_SDR_DIAG_BLOCK 8192U
55
57#define ESP_SDR_DIAG_RING 57344U
58
60#define ESP_SDR_DIAG_LSB_AUTO 0xffU
61
63#define ESP_SDR_DIAG_LSB_MAX 6U
64
75typedef void (*esp_sdr_diag_sink_t)(void *user, const uint8_t *blk, size_t n, uint64_t index);
76
86typedef void (*esp_sdr_diag_iq_sink_t)(void *user, const int32_t *iq, size_t n, uint64_t index);
87
89#define ESP_SDR_DIAG_DECIM_MIN 8U
90#define ESP_SDR_DIAG_DECIM_MAX 255U
91
94 const int8_t *pins;
96 uint8_t lsb;
98 uint8_t clk_div;
102 uint32_t seconds;
105 void *user;
110 uint8_t decim;
113 void *iq_user;
114};
115
118 uint64_t bytes;
120 uint64_t consumed;
122 uint32_t skips;
128 int32_t ppm_x100;
130 uint8_t lsb;
134 uint32_t byte_rate;
136 uint32_t iq_rate;
138 uint32_t isrs, dma_raw, dw0[4];
139};
140
152int esp_sdr_diag_run(const struct esp_sdr_diag_cfg *cfg, struct esp_sdr_diag_stats *stats);
153
156
159
169int esp_sdr_diag_level(uint8_t *lsb);
170
177
179
180#ifdef __cplusplus
181}
182#endif
183
184#endif /* ESP_SDR_ESP_SDR_DIAG_H_ */
int esp_sdr_diag_level(uint8_t *lsb)
The nibble window start that fits the current signal.
int esp_sdr_diag_run(const struct esp_sdr_diag_cfg *cfg, struct esp_sdr_diag_stats *stats)
Run the ring until the time is up, esp_sdr_diag_stop() or an overrun.
void esp_sdr_diag_armed_hook(void)
Bench hook: called by esp_sdr_diag_run() once the dump engine runs, before the pads and the ring star...
void(* esp_sdr_diag_sink_t)(void *user, const uint8_t *blk, size_t n, uint64_t index)
Definition esp_sdr_diag.h:75
void esp_sdr_diag_stop(void)
Ask a running esp_sdr_diag_run() to return.
bool esp_sdr_diag_active(void)
void(* esp_sdr_diag_iq_sink_t)(void *user, const int32_t *iq, size_t n, uint64_t index)
Definition esp_sdr_diag.h:86
Definition esp_sdr_diag.h:92
uint8_t clk_div
Definition esp_sdr_diag.h:98
const int8_t * pins
Definition esp_sdr_diag.h:94
uint8_t lsb
Definition esp_sdr_diag.h:96
uint32_t seconds
Definition esp_sdr_diag.h:102
esp_sdr_diag_sink_t sink
Definition esp_sdr_diag.h:104
bool falling_edge
Definition esp_sdr_diag.h:100
uint8_t decim
Definition esp_sdr_diag.h:110
esp_sdr_diag_iq_sink_t iq_sink
Definition esp_sdr_diag.h:112
Definition esp_sdr_diag.h:116
uint32_t isrs
Definition esp_sdr_diag.h:138
uint8_t lsb
Definition esp_sdr_diag.h:130
bool overrun
Definition esp_sdr_diag.h:126
int32_t ppm_x100
Definition esp_sdr_diag.h:128
uint32_t byte_rate
Definition esp_sdr_diag.h:134
uint32_t iq_rate
Definition esp_sdr_diag.h:136
uint32_t sink_cycles_x100
Definition esp_sdr_diag.h:132
uint64_t consumed
Definition esp_sdr_diag.h:120
uint32_t skips
Definition esp_sdr_diag.h:122
uint32_t skipped_blocks
Definition esp_sdr_diag.h:124
uint64_t bytes
Definition esp_sdr_diag.h:118