To the kind attention of Nordic support team,
We are going to use gazell protocol for some of our wireless products. Could you please point me out to the relevant documentation about how gazell protocol machine gets its time base? Do you recommend the usage of the XL1, XL2 sub oscillator for more precision? I have to say that our device is not going to have power problems, so will it suffice to have the main oscillator and trigger any sort of software correction? In this case is there some change that must be done to the code in order to inform the gazll stack about the timing source?
I believe you should be able to find answers to your questions in the documentation:https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v15.3.0/gzll_02_user_guide.html?cp=5_1_5_3
There is no exact answer here, but the Gazell protocol will be able to maintain synchronization for 50-100ms.
Thank you very much for replying us. As your documentation states gzll_arm.lib needs NRF_TIMER2 and gzll_sd_resources_arm.lib needs NRF_TIMER0. I think it may infer that the main oscillator should be fine, as the timing source. Anyway, we could have an idea about the overall transmission efficiency in an empirical way, letting two device transmit and receive for a long time and monitoring how many failures, if any. So that we could also tune gzll radio parameters in a pratical way. Is there anything else, or a laboratory mean, that you could also recommend in order to investigate the real effect of gazell radio parameters on the overal communication efficiency? Thank for your kindness
The gazell protocol will handle most of this automatically, but a few suggestions:
- If you have several devices, you should only let one use synchronization, because else the devices may start to transmit at the exact same time, which will cause very poor results.
- If you require low latency and/or high throughput, I recommend to use NRF_GZLL_DEVICE_CHANNEL_SELECTION_POLICY_USE_CURRENT by calling nrf_gzll_set_device_channel_selection_policy().
- In synchronization mode wait for nrf_gzll_device_tx_success()/nrf_gzll_device_tx_failed() before adding next packet by calling nrf_gzll_add_packet_to_tx_fifo().