2026-01-26 6:40 PM
I found in my tests that for the same sequence of operations (Radio.SetChannel -> Radio.RadioSetTxGenericConfig -> Radio.Send), the time required differs significantly between waking up from STOP2 sleep mode and waking up from Sleep mode.
Here is Radio workflow:
Startup -> Sleep -> Calibration -> Standby
Here is the test code, with two additional modifications.
void app_fsk_send(void)
{
if (!s_radio_init_flag) {
Radio.Init(&s_radio_events);
s_radio_init_flag = true;
}
TxConfigGeneric_t tx_config;
uint8_t syncword[] = {0xC1, 0x94, 0xC1, 0x00, 0x00, 0x00, 0x00, 0x00};
if (!s_radio_init_flag) {
Radio.Init(&s_radio_events);
s_radio_init_flag = true;
}
priv_prbs9_generator(s_payload, 16);
tx_config.fsk.ModulationShaping = RADIO_FSK_MOD_SHAPING_G_BT_1;
tx_config.fsk.FrequencyDeviation = 40000;
tx_config.fsk.BitRate = 100000; /* BitRate */
tx_config.fsk.PreambleLen = 4; /* in Byte */
tx_config.fsk.SyncWordLength = 3; /* in Byte */
tx_config.fsk.SyncWord = syncword; /* SyncWord Buffer */
tx_config.fsk.whiteSeed = 0; /* WhiteningSeed */
tx_config.fsk.HeaderType = RADIO_FSK_PACKET_VARIABLE_LENGTH; /* If the header is explicit, it will be transmitted in the GFSK packet. If the header is implicit, it will not be transmitted */
tx_config.fsk.CrcLength = RADIO_FSK_CRC_OFF; /* Size of the CRC block in the GFSK packet */
tx_config.fsk.CrcPolynomial = 0;
tx_config.fsk.Whitening = RADIO_FSK_DC_FREE_OFF;
UTIL_TIMER_Time_t t1 = UTIL_TIMER_GetCurrentTime();
Radio.SetChannel(868950000);
Radio.RadioSetTxGenericConfig(GENERIC_FSK, &tx_config, 14, 5000);
Radio.Send(s_payload, 16);
UTIL_TIMER_Time_t t2 = UTIL_TIMER_GetCurrentTime();
APP_PRINTF("cost %d ms\r\n", t2 - t1);
UTIL_SEQ_WaitEvt(1 << CFG_SEQ_Evt_RadioOnTstRF);
Radio.Sleep();
if (s_tx_flag == 1) {
APP_PRINTF("tx timeout\r\n");
}
s_tx_flag = 0;
}
Here is the test results:
1. Radio.Sleep with STOP2 mode,each transmission test costs 36 ms.
radio sleep with STOP2
2. Radio.Sleep with SLEEP mode,each transmission test costs 4-6 ms.
radio sleep with SLEEP
3. Radio.Standby with STOP2 mode,the first transmission test cost 35 ms, after that, each transmission test costs 5-6 ms.
radio standby with STOP2
4. Radio.Standby with SLEEP mode,the first transmission test cost 6 ms, after that, each transmission test costs 1 ms.
radio standby with SLEEP
2026-01-26 6:41 PM
MCU:STM32WLE5CCU6 with SubGHz