Firmware - Info about mcps layer

I have downloaded the dw3000 api here:

https://www.qorvo.com/products/d/da007992

And in the “deca_interface.h” file, where can I find information about these (below), I am trying to understand this" int interface_init(struct dwchip_s *p);"

“”"
/* MCPS */
struct mcps802154_llhw *llhw;
struct mcps802154_ops *mcps_ops;
struct dw3000_calibration_data *calib_data;
struct dwt_mcps_runtime_s *mcps_runtime;
struct dwt_mcps_rx_s *rx;
“”"

Hi, the MCPS layer is the interface between the driver and the higher level stack (for instance Qorvo FiRa + 802.15.4z binary library).

This interface not is especially documented because it is mainly used by the Qorvo library, but the function names are self explanatory. You can take a look at the DW3000 implementation in dw3000_device.c. If you just want to use the driver without the library, you need to implement only the structures which are used.

Thanks you for the reply!

Bonus question, the pre-compiled library is for m4 only, any plan to make a pre-compiled version for m33 as well?

Hi,
We will release soon the M33 compiled version, I don’t have yet the ETA.

Do you have any indication of how soon, like 6 months? 12 months? I know how software development work, so I won’t use it to hold against you if you ever provide a time frame :slight_smile:

Extra bonus question. Maybe the answer is already in the source code, but I can’t find it. Per document, the minimum RCTU is 1200 (1 ms). Does this mean MAC layer can do up to 1000 SS-TWR per second. Therefor, up to 500 DS-TWR per second?

Hello, I don’t have the schedule yet for the release, maybe 3 to 6 months.

I’m not sure you will be able to do 500 TWR per second. Fira TWR implies at least 4 messages, in this case, only the initiator will get the distance. Moreover, setting a slot to 1ms makes the scheduling very tight and, depending on your setup and SW architecture, you may need to relax this setting.

Thanks you so much Simon

I’m not using the API but at 6.8Mbits/s I managed to hit 1000 DS-TWR per second. Switching to 850 kbit/s that dropped to 800 DS-TWR per second.
So the underlying hardware and radio is more than capable of the required rates. The issue is purely with the firmware and radio protocol used.

Hi Andy,

That’s good to know. Thanks for sharing your test.