2024-09-16 08:03 AM
hi, I have developed applications using STM32WL base on NUCLEO-WL55JC1.
But I found when enter CAD there is a long time block on SUBGHZ_WaitOnBusy(). About 1.2ms.it’s so long than I thought
I found a issue in GitHub:
https://github.com/STMicroelectronics/STM32CubeWL/issues/70
When SUBGRF_SetTx() or SUBGRF_SetRx() is called, it blocks for a long time (~1.2 ms) until the BUSY line goes low. The blocking delay is in HAL_SUBGHZ_ExecSetCmd() where SUBGHZ_WaitOnBusy() is called after the SET_TX (0x83) or SET_RX (0x82).
what can I do for avoiding this issue? Thanks
Solved! Go to Solution.
2024-09-16 10:01 AM
Hello @Yibin and welcome to the ST Community.
on the NUCLEO, there is a TCXO. The TCXO requires a wake-up time.
in the cubeWL_1.3.0, the TCXO_WAKE_UP_TIME is set at 1ms, probably this is what you see.
To change this, you can go in SubGHz_Phy/target/radio_conf.h
/* Radio maximum wakeup time (in ms) */
#define RF_WAKEUP_TIME 1U
This can be lowered to 1ms without impacting the RF performances.
Depending on your RF requirements', you may want to use the XO instead of the TCXO. By, using XO, there is no wakeup time anymore (at least XO settling time is barely noticeable)
to do this, you need to:
1/ (HW) modify the NUCLEO board by disconnecting the TCXO output from the XTA, and connecting the XO
2/ (SW) update in radio_board_if.h, the IS_TCXO_SUPPORTED
from #define IS_TCXO_SUPPORTED 1U
to #define IS_TCXO_SUPPORTED 0U
Best Regards.
STTwo-32
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2024-09-16 08:10 AM
The code is like this:
Radio.StandBy();
Radio.StartCad(); // toke 1.172ms to exec, most of time (1.134ms)is wait for busy.
2024-09-16 10:01 AM
Hello @Yibin and welcome to the ST Community.
on the NUCLEO, there is a TCXO. The TCXO requires a wake-up time.
in the cubeWL_1.3.0, the TCXO_WAKE_UP_TIME is set at 1ms, probably this is what you see.
To change this, you can go in SubGHz_Phy/target/radio_conf.h
/* Radio maximum wakeup time (in ms) */
#define RF_WAKEUP_TIME 1U
This can be lowered to 1ms without impacting the RF performances.
Depending on your RF requirements', you may want to use the XO instead of the TCXO. By, using XO, there is no wakeup time anymore (at least XO settling time is barely noticeable)
to do this, you need to:
1/ (HW) modify the NUCLEO board by disconnecting the TCXO output from the XTA, and connecting the XO
2/ (SW) update in radio_board_if.h, the IS_TCXO_SUPPORTED
from #define IS_TCXO_SUPPORTED 1U
to #define IS_TCXO_SUPPORTED 0U
Best Regards.
STTwo-32
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2024-09-19 08:40 PM
Thanks for reply. I have fix it with you suggesting.
But I still unknown, why TCXO is stop when enter Radio.Standby();?