cancel
Showing results for 
Search instead for 
Did you mean: 

How are timestamps made available on STM32WB55 BLE LLD layer ?

EAlai.1
Associate

In UM2804 (STM32WB series BLE low level driver), references are made to Timestamp position in Action Tag field of Action Packets. Are these Timestamp available for the user ?

Another question concerning the Action Packet : what is the minimum programmable value of WakeupTime in a Timer wakeup scenario (ie not back-to-back time) ?

A third question concerning the Action Tag field : PLL_TRIG is defined in software stack, but not documented in UM2804 : when does the user have to use radio PLL calibration ?

1 REPLY 1
Morgane.F
Associate II

Hello @EAlai.1​,

First, let me welcome you to the STM32 Community :grinning_face: Thanks for your post, let me give you some answers :

1/ Are these Timestamp available for the user ?

With the LLD API, the user is responsible for the configuration of each action packet. Each action packet must be configured by setting all the required fields for the desired action. When the relevant ActionPacket fields are set, you can calling BLE_LLD_SetReservedArea(), that taking as parameter the Action packet to prepare.

The code below is an RX example with ActionPacket :

ActionPacket rxAction;
int main(void)
{
 /* Make a RX action (0x80) to Wakeup Timer and enable the PLL calibration */
 rxAction.ActionTag = TIMESTAMP_POSITION | TIMER_WAKEUP | PLL_TRIG;
 /* 9 ms before operation */
 rxAction.WakeupTime = 9000;
 /* Pointer to the array where the data are received */
 rxAction.data = packet;
 /* Pointer to next ActionPacket: rxAction */
 rxAction.next_true = &rxAction;
 /* Do nothing */
 rxAction.next_false = NULL_0;
 /* Records the ActionPacket information */
 RADIO_SetReservedArea(&rxAction);
 /* Execute the ActionPacket */
 RADIO_MakeActionPacketPending(&rxAction);
 
 return 0;
}

To be able to use LL APIs, I let you check the section 6.13 of the UM2550.

2/ What is the minimum programmable value of WakeupTime in a Timer wakeup scenario (ie not back-to-back time) ?

For start radio operation, the wakeup timer cannot be used for low values (minimum is ~700us). But back-to-back timer can be used for low values (down to ~150us).

3/ When does the user have to use radio PLL calibration ?

I think for radio application, you should always use radio PLL calibration.

When your question is answered, please close this topic by choosing "Select as Best". This will help other users find that answer faster :smiling_face_with_smiling_eyes:  

Morgane