nrf52833 direction finding connectionless RX

Hi,

We are trying to enable oversampling in an application that is based on your DF connectionless RX sample, build with Zephyr version 3.4.99.  

Something similar was asked here https://devzone.nordicsemi.com/f/nordic-q-a/99598/direction-finding-aod-rx-oversampling two years ago, where the response was that this is not supported in the API and more low-level changes would be needed.

However, consulting the documentation for the nrf52833 https://docs.nordicsemi.com/bundle/ps_nrf52833/page/radio.html#ariaid-title111 these registers are all Read-Write (RW), and the fields we need to change (TSAMPLESPACING and TSWITCHSPACING) seem to be modifiable. With this in mind, my question is twofold

- Is the answer from the previous post still the case, that we cannot change these settings through the API?

- If it is no longer the case, what would be the correct way to modify the sample to enable oversampling. E.g., changing the sampling and switching spacing from 2us to 1us, so that the total number of samples in a CTE would be 8+2*74=156, instead of the standard 82 for a CTE of 160us. 

Kind regards,

Glen

Parents
  • Hi,

    Unfortunately the status is still the same, it's not supported.

    - If it is no longer the case, what would be the correct way to modify the sample to enable oversampling. E.g., changing the sampling and switching spacing from 2us to 1us, so that the total number of samples in a CTE would be 8+2*74=156, instead of the standard 82 for a CTE of 160us. 

    With 1 µs then you won't get 156 samples. The antenna switching will take 1 µs itself. So with antenna switching 1µs you'll sample every 2 µs, since you'll use 1µs switching in between. For a CTE with 160 µs you have to subtract the 12 µs reference guard ( Guard period + reference period) = 148 µs and with 1µs antenna switching you'll get 74 samples. 

    regards

    Jared 

  • If we don't care about BLE compliance, how would you recommend moving forward to enable oversampling? It seems it is possible to modify the register DFECTRL1 in NRF_RADIO, but how and where should this then be set?

  • Hi,

    You can't write directly to the Radio register while using the Softdevice controller as it will make the controller assert since the Radio peripheral is restricted while Softdevice controller is enabled. Instead, you would have to use the radio in proprietary mode and write your own controller stack.

    regards

    Jared 

  • If you are looking at the receiver code then that is using the Zephyr link layer and is a full SW delivery. You can do what you want there but you will have to handle it. Note that if you start oversampling then all buffersizes have to be increased to accomodate this. This is one of the reasons this hasn't been done in the SDK as there are potentially a lot of places that needs updating.

Reply
  • If you are looking at the receiver code then that is using the Zephyr link layer and is a full SW delivery. You can do what you want there but you will have to handle it. Note that if you start oversampling then all buffersizes have to be increased to accomodate this. This is one of the reasons this hasn't been done in the SDK as there are potentially a lot of places that needs updating.

Children
No Data
Related