This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi, ble team
My project is based on sdk version 5.1. My requirement is to synchronize time on several dosens of ble devices nearby. The time accuracy should be less than 1ms.
Now one device have successfully sent out periodic advertisement, and all the others can receive the synchnized adv data through event of GAP_SCAN_PERIODIC_ADV_REPORT_EVENT.
My problem is, for the advertiser, it does not known the exact time of transmiting data after calling GapAdv_SetPeriodicAdvEnable(). There is no GAP_EVT_ADV_END like event callback for the periodic advertising. the current GAP_EVT_ADV_END is only for 37/38/39 channel, but not the data channel.
So is there callback event for the periodics, or some low level apis to fetch status of the periodic advertisement.
This is the last obstacle on my project, hope get your helps, thanks.
Hi,
Thank you for reaching out.
I recommend to review the following piece of documentation: https://software-dl.ti.com/simplelink/esd/simplelink_cc13xx_cc26xx_sdk/7.10.00.98/exports/docs/ble5stack/ble_user_guide/html/ble-stack-5.x/gap-cc13xx_cc26xx.html#synchronize-with-a-periodic-advertising-train
After enabling the reception of periodic advertisement reports, GAP_SCAN_PERIODIC_ADV_REPORT_EVENT
events are passed to the application.
I hope this will help,
Best regards,
Thank your quick reply
I know this topic, it is on the receiver side that I already done. But my question is on the sender side. The advertiser itself dont know the transmit timing.
hi
I think one method of workaround is use
IOCPortConfigureSet(IOID_7, IOC_PORT_RFC_GPO3, IOC_IOMODE_NORMAL)
and loopback the output pin to trace the timing of tx action.
Hi,
I am not aware of an event passed by the stack when starting sending a periodic adverting train.
You may want to try the suggestion provided by shark gao1. However I am not sure how they suggest to assess whether a specific edge belongs to the periodic PDU. .
Alternatively, you could try to leverage the RF Global Event Mask. This allows the application to receive callback for radio events.
When enabling the RF Global Event Mask, please make sure to review the content of the ti_drivers_config.c file generated by SysConfig as it provides useful information.
Within the rfDriverCallback, the parameter arg can be cast as a pointer on an RF_Op structure. This should help you to identify the radio events you want.
I hope this will help,
Best regards,
This is what I want, I found the CMD_BLE5_ADV_PER command, and the time accuracy is good enough.
thank you very much
Awesome! Thank you for confirming.
Good luck for the next steps in your project!
Best regards,