You can use the Distance Measurement library as follows:
nrf_dm_init()function. The library expects as arguments the PPI channel numbers, the antenna configuration, and a timer instance. The
NRF_DM_DEFAULT_SINGLE_ANTENNA_CONFIGmacro provides a default antenna configuration.
Only a single antenna is currently supported.
To perform a measurement, call the
nrf_dm_proc_execute()function passing the corresponding timeout as an argument. This call should be executed at the same time on both the reflector and the initiator, but the reflector must start first.
You can meet this synchronization requirement by starting the reflector earlier and increasing the timeout value, at the cost of higher power consumption.
Load the raw data using the
nrf_dm_calc()function or the
nrf_dm_high_precision_calc()function to perform the calculation. On the nRF53 Series, do this on the application core for a reduced execution time. On the network core of the nRF53 Series, the calculations are performed without an FPU which results in a much higher execution time.
The Distance Measurement library comes with two precompiled libraries for the nRF53 Series.
libnrf_dm.alibrary implements the interface specified in
libnrf_dm_calc.alibrary partially implements the interface specified in
libnrf_dm_calc.a library allows computing of the distance estimates on the application core.
On the network core, the calculation is done without an FPU, which results in a much higher execution time.
The libraries can be used as follows:
Perform the measurement on the network core as explained above.
On the network core, load the raw data using the
Transfer the populated report from the network core to the application core.