DWM300 Failed to receive TWR response frame

Hi all,

I am using two DWM3000 EVKs to run the original ss_twr_initiator and ss_twr_responder examples from DW3xxx_XR6.0C_24Feb2022.zip
The responder hardly received frames sent by the initiator; when it could receive a frame and sent back a response frame, the initiator always missed to receive.

If I run simple_tx and simple_rx examples, I see the receiver board could receive every tx frame.

Can you help to troubleshoot why the ss_twr_initiator could not receive any response frame from the responder? Should it need any calibration work?

Best regards,
Ben

Hi all,

My question has been opened 3 days but no response yet. Can anybody help this case to unblock our Qorvo Evaluation here?

Best regards,
Ben

Hi ,
Im using the same examples and was able to get it run using the St nucleo board
Which board are you using ?
Did you find out that certain packets were missing or did you receive no response at all on the serial port ?

Hi Shar,

The initiator receives no response at all; and the responder hardly receives frames sent by the initiator. In the code of the initiator, I see it sends out frames then wait for a timeout to check Rx frames; therefore, the Tx/Rx operation between the initiator and the responder is asynchronous so if any of them missed the event, it is hard to be in sync.

I use our company MCU board which runs on Cortex-M33. I adapt low-level SPI and other IO pins to interface with DWM3000 EVKs.

Any suggestion to troubleshoot on our MCU board? Because we want to bring a POC setup on our official device in later phase.

Best regards,
Ben

Hi Shar,

I tried to setup DWM300 EVK with STM32F429 Nucleo board to double check your result.
I import the below project in STM32CubeIDE
DW3xxx_XR6.0C_24Feb2022\Release_XR6.0C\Software\DW3XXX_API\Sources\DW3XXX_API_rev9p3\API\Build_Platforms\STM_Nucleo_F429

‘DW_NSS1_WAKEUP_GPIO_Port’ undeclared
‘DW_NSS1_WAKEUP_Pin’ undeclared
‘DW_NSS1_WAKEUP_GPIO_Port’ undeclared
‘DW_NSS1_WAKEUP_Pin’ undeclared
‘DW_NSS1_WAKEUP_Pin’ undeclared
‘DW_IRQ2_Pin’ undeclared
‘DW_IRQ2_GPIO_Port’ undeclared
‘DW_IRQ2_Pin’ undeclared

I search the whole folder and cannot find where to define these symbols
Do I miss any header files that define these symbols? Or can you help how to correctly build and run the project with STM32F4 Nucleo board

Best regards,
Ben

Hi
you have to configure those in the ioc file and give theme the same names

Hi Amine1,

I do not understand your message. In the demo, there is no ioc file. And I can run the initiator demo successfully on STM32F4 Nucleo board. Can you elaborate more about the ioc file here?

Regards,
Ben

to declare those variables

‘DW_NSS1_WAKEUP_GPIO_Port’ undeclared
‘DW_NSS1_WAKEUP_Pin’ undeclared
‘DW_NSS1_WAKEUP_GPIO_Port’ undeclared
‘DW_NSS1_WAKEUP_Pin’ undeclared
‘DW_NSS1_WAKEUP_Pin’ undeclared
‘DW_IRQ2_Pin’ undeclared
‘DW_IRQ2_GPIO_Port’ undeclared
‘DW_IRQ2_Pin’ undeclared

you have to enter into the ioc file like the following image :


because they are just some labels for pins

Hi amine1,

Thank you for the comment. You refer to my previous issue when I compile the demo for STM32F4 Nucleo board, don’t you? I could resolve the issue and successfully run the demo on my Nucleo board.
The pending issue is that I cannot run the same initiator demo on my target M33 platform board successfully; especially, the M33 failed to send the second Tx frame after it receives the first response from the responder demo.

Best regards,
Ben

yes it will not work for M33 platform board because the driver you are using is created specifically for stm32f4 (like port.h and deca_spi.h …) so if you want to use it in your board you have to modify a some lines of code in the driver to make it compatible with your board but to do this it will take so much time so for me what i did was i copied the twr initiator example into my man file (main.c) and then i copied only the variables and functions i will need for driver initiator which i have and it worked

Hi amine1,

I did the porting and my M33 platform could run read_dev_id, simple_tx and simple_rx demos successfully. That means SPI interface, decal lib have been setup correctly. For unknown reason, it failed the initiator demo.

Best regards,
Ben

Hi BenFossil

does it give errors? or you can compile it but it doesn’t work as expected?

Hi amine1,

I could resolve the issue. The root cause is that my M33 initiator had some delays in the code and using slow SPI SCK freq so that it causes longer delay in sending the final Tx message and the responder always timeouts to receive. I removed all delays and use 18MHz SPI clock; also increase the RX timeout timing at the responder side to have them work.

Regards,
Ben