Dear Team,
I have a question regarding the Wi-Fi radio TX test mode on the nRF7002-DK. I want to send Wi-Fi test packets of different sizes consecutively, which works fine. The problem is the delay between two packets sent consecutively. In NCS v2.4.2 it takes ~8.6 ms between two sent packets (see figure below); in NCS v2.3.0 it took "only" ~5.3 ms.
About the figure: The green line shows when (and for how long) a Wi-Fi packet is transmitted (measured on another device). The purple line shows when the Wi-Fi send command is placed in the RPU queue. So, you can clearly see that 3 commands were queued and after 8.6 ms the first packet was transmitted (and after another 8.6 ms the second and so on).
To my question: is there any way to reduce this delay? If so, to what extent is it possible?
I used the following configurations:
Initializing / configuring the radio:
enum wifi_nrf_status wifi_radio_init(struct rpu_conf_params *conf_params) { enum wifi_nrf_status status = WIFI_NRF_STATUS_FAIL; memset(conf_params, 0, sizeof(*conf_params)); conf_params->op_mode = RPU_OP_MODE_RADIO_TEST; status = wifi_nrf_fmac_rf_params_get(ctx->rpu_ctx, conf_params->rf_params); if (status != WIFI_NRF_STATUS_SUCCESS) return status; conf_params->chan.primary_num = 9; conf_params->tx_pkt_rate = 6; conf_params->tx_power = 0; conf_params->power_save = 0; conf_params->tx_pkt_cw = 0; conf_params->tx_mode = 1; conf_params->phy_calib = 0; status = wifi_nrf_fmac_radio_test_init(ctx->rpu_ctx, &ctx->conf_params); if (status != WIFI_NRF_STATUS_SUCCESS) { LOG_ERR("Wi-Fi configuration failed"); return -ENOEXEC; } return status;
Transmittig packets:
static int wifi_radio_send_packets(int32_t packets, uint16_t bytes) { enum wifi_nrf_status status = WIFI_NRF_STATUS_FAIL; ctx->conf_params.tx_pkt_num = packets; ctx->conf_params.tx_pkt_len = bytes; ctx->conf_params.tx = 1; status = umac_cmd_prog_tx(ctx->rpu_ctx,&ctx->conf_params); if (status != WIFI_NRF_STATUS_SUCCESS) { LOG_ERR("Transmitting failed"); return -ENOEXEC; } return 0; }
Proj.conf:
CONFIG_WIFI=y CONFIG_WIFI_NRF700X=y CONFIG_NRF700X_RADIO_TEST=y CONFIG_NRF_WIFI_LOW_POWER=n CONFIG_POSIX_API=y CONFIG_HEAP_MEM_POOL_SIZE=98304
Thanks,
Rainer