/
esp_phy_cert_test.h
193 lines (171 loc) · 5.88 KB
/
esp_phy_cert_test.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
/*
* SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#include <stdbool.h>
typedef enum {
//11b
PHY_RATE_1M = 0x0,
PHY_RATE_2M = 0x1,
PHY_RATE_5M5 = 0x2,
PHY_RATE_11M = 0x3,
//11g
PHY_RATE_6M = 0xb,
PHY_RATE_9M = 0xf,
PHY_RATE_12M = 0xa,
PHY_RATE_18M = 0xe,
PHY_RATE_24M = 0x9,
PHY_RATE_36M = 0xd,
PHY_RATE_48M = 0x8,
PHY_RATE_54M = 0xc,
//11n
PHY_RATE_MCS0 = 0x10,
PHY_RATE_MCS1 = 0x11,
PHY_RATE_MCS2 = 0x12,
PHY_RATE_MCS3 = 0x13,
PHY_RATE_MCS4 = 0x14,
PHY_RATE_MCS5 = 0x15,
PHY_RATE_MCS6 = 0x16,
PHY_RATE_MCS7 = 0x17,
PHY_WIFI_RATE_MAX
} esp_phy_wifi_rate_t;
typedef enum {
PHY_BLE_RATE_1M = 0,
PHY_BLE_RATE_2M,
PHY_BLE_RATE_125K,
PHY_BLE_RATE_500k,
PHY_BLE_RATE_MAX
} esp_phy_ble_rate_t;
typedef enum {
PHY_BLE_TYPE_1010 = 0,
PHY_BLE_TYPE_00001111 = 1,
PHY_BLE_TYPE_prbs9 = 2,
PHY_BLE_TYPE_00111100 = 4,
PHY_BLE_TYPE_MAX
} esp_phy_ble_type_t;
/**
* @brief Structure holding PHY RX result
*/
typedef struct {
uint32_t phy_rx_correct_count; /*!< The number of desired packets received */
int phy_rx_rssi; /*!< Average RSSI of desired packets */
uint32_t phy_rx_total_count; /*!< The number of total packets received */
uint32_t phy_rx_result_flag; /*!< 0 means no RX info; 1 means the lastest Wi-Fi RX info; 2 means the lastest BLE RX info. */
} esp_phy_rx_result_t;
/**
* @brief Wifi power domain power on
*/
void esp_wifi_power_domain_on(void);
/**
* @brief Wifi power domain power off
*/
void esp_wifi_power_domain_off(void);
/**
* @brief Environment variable configuration
*
* @param conf:
* Set to 1 to enter RF test mode.
*/
void esp_phy_rftest_config(uint8_t conf);
/**
* @brief RF initialization configuration
*/
void esp_phy_rftest_init(void);
/**
* @brief TX Continuous mode
*
* @param contin_en:
* Set to true for continuous packet sending, which can be used for certification testing;
* Set to false to cancel continuous mode, which is the default mode and can be used for WLAN tester.
*/
void esp_phy_tx_contin_en(bool contin_en);
/**
* @brief HT40/HT20 mode selection
*
* @param en:
* Set to false to enter 11n HT20 mode;
* Set to true to enter 11n HT40 mode;
**/
void esp_phy_cbw40m_en(bool en);
/**
* @brief Wi-Fi TX command
*
* @param chan: channel setting, 1~14;
* @param rate: rate setting;
* @param backoff: Transmit power attenuation, unit is 0.25dB. For example, 4 means that the power is attenuated by 1dB;
* @param length_byte: TX packet length configuration, indicating PSDU Length, unit is byte;
* @param packet_delay: TX packet interval configuration, unit is us;
* @param packet_num: The number of packets sent, 0 means sending packets continuously, other values represent the number of packets to send.
*/
void esp_phy_wifi_tx(uint32_t chan, esp_phy_wifi_rate_t rate, int8_t backoff, uint32_t length_byte, uint32_t packet_delay, uint32_t packet_num);
/**
* @brief Test start/stop command, used to stop transmitting or reciving state.
*
* @param value:
* Value should be set to 3 before TX/RX.
* Set value to 0 to end TX/RX state.
*/
void esp_phy_test_start_stop(uint8_t value);
/**
* @brief Wi-Fi RX command
*
* @param chan: channel setting, 1~14;
* @param rate: rate setting;
*
*/
void esp_phy_wifi_rx(uint32_t chan, esp_phy_wifi_rate_t rate);
/**
* @brief Wi-Fi Carrier Wave(CW) TX command
*
* @param start: enable CW, 1 means transmit, 0 means stop transmitting;
* @param chan: CW channel setting, 1~14;
* @param backoff: CW power attenuation parameter, unit is 0.25dB. 4 indicates the power is attenuated by 1dB.
*
*/
void esp_phy_wifi_tx_tone(uint32_t start, uint32_t chan, uint32_t backoff);
/**
* @brief BLE TX command
*
* @param txpwr: Transmit power level. Tx power is about (level-8)*3 dBm, step is 3dB. Level 8 is around 0 dBm;
* @param chan: channel setting, range is 0~39, corresponding frequency = 2402+chan*2;
* @param len: Payload length setting, range is 0-255, unit is byte, 37 bytes is employed generally;
* @param data_type: Data type setting;
* @param syncw: Packet identification (need to be provided by the packet generator or instrument manufacturer), 0x71764129 is employed generally;
* @param rate: rate setting;
* @param tx_num_in: The number of packets sent, 0 means sending packets continuously, other values represent the number of packets to send.
*/
void esp_phy_ble_tx(uint32_t txpwr, uint32_t chan, uint32_t len, esp_phy_ble_type_t data_type, uint32_t syncw, esp_phy_ble_rate_t rate, uint32_t tx_num_in);
/**
* @brief BLE RX command
*
* @param chan: channel selection, range is 0-39;
* Channels 0, 1, 2~10 correspond to 2404MHz, 2406MHz, 2408MHz~2424MHz respectively;
* Channels 11, 12, 13~36 correspond to 2428MHz, 2430MHz, 2432MHz~2478MHz respectively;
* Channel 37: 2402MHz, Channel 38: 2426MHz, Channel 39: 2480MHz;
* @param syncw: Packet identification (need to be provided by the packet generator or instrument manufacturer), 0x71764129 is employed generally;
* @param rate: rate setting;
*/
void esp_phy_ble_rx(uint32_t chan, uint32_t syncw, esp_phy_ble_rate_t rate);
/**
* @brief BLE Carrier Wave(CW) TX command
*
* @param start: enable CW, 1 means transmit, 0 means stop transmitting;
* @param chan: Single carrier transmission channel selection, range is 0~39, corresponding frequency freq = 2402+chan*2;
* @param power: CW power attenuation parameter, unit is 0.25dB. 4 indicates the power is attenuated by 1dB.
*/
void esp_phy_bt_tx_tone(uint32_t start, uint32_t chan, uint32_t power);
/**
* @brief Get some RX information
*
* @param rx_result: This struct for storing RX information;
*/
void esp_phy_get_rx_result(esp_phy_rx_result_t *rx_result);
#ifdef __cplusplus
}
#endif