cancel
Showing results for 
Search instead for 
Did you mean: 

STM32WL3x LBT example

mkubaszek
Associate

Hello,

I am currently working with the NUCLEO-WL33CC1 boards (MB2029-HIGHBAND-B02 + MB1801D). I have successfully ported our wireless solution to this platform (6tisch stack). Transceiver works properly, no problems so far.

However, my next step is to incorporate an LBT mechanism, preferably to detect channel energy before transmission. The mandatory minimum listening time is 160us, so two solutions would be fine for me:
- polling mode - when the transmission trigger is called, MCU returns informing that the transmission didn't happen, or calls the start-of-frame callback and returns starting the transmission.
- event mode (let's name it that way) - the transmission trigger is called, but depending on the signal strength in the channel, the transmission will go out or not. In this scenario, the transceiver must be able to call some kind of frame start interrupt (preferable on sync word coming out of the radio, start/end of preamble, etc.). I point this out because the STM32WL33 does not have a TX SYNC WORD interrupt, at least I was only able to use it during reception, not transmission. Therefore I call the start-of-frame callback directly from the transmission trigger, I measured that the first bit of preamble is going through the radio with 425us offset after calling the CMD_TX strobe. So, in event mode, I need an alternative mechanism for calling the start-of-frame callback, the implementation of which I have no idea about at the moment.

Getting to the heart of the matter:
1. Could you provide an example of how to use the LBT mechanism on SMT32WL33 radio? I have reviewed these examples ( https://github.com/STMicroelectronics/STM32CubeWL3/tree/main/Projects/NUCLEO-WL33CC/Examples/MRSUBG ) and none of them explicitly shows this mechanism.

2. I've checked the RM0511 (reference manual for the SMT32WL33 MCU), and as far as I know, the preferable way is to use sequencer. However, I would prefer to avoid this and use a channel power getter instead. May I use the MR_SUBG_GLOB_STATUS->RX_INDICATOR->RSSI_LEVEL_RUN for this purpose? My idea is to set the radio in the listening state and continuously read this register to monitor power levels, could this work?

 

0 REPLIES 0