Hello,
I have been playing with the DW1000 example code, trying to get simple transmit/receive working between two identical DWM1000 modules.
The short summary is that when I follow the example code for ex_01a_simple_tx and ex_02a_simple_rx, the receiver will “hang” (never report a frame received, or have SYS_STATUS_RXFCG set) after the call to dwt_rxenable(), which returns DWT_SUCCESS. Further, the receiver module will get warm to the touch, and a call to dwt_readtempvbat() reports the temperature of ~60 degrees before long.
Some debugging information:
I am setting the PanID to a common value on both modules.
I am setting the 16-bit network address and EUI’s to different values on both modules.
My setup function looks like (all parameters are from the examples - I can provide if relevant):
dwt_initialise(DWT_LOADNONE);
dwt_configure();
dwt_setrxantennadelay();
dwt_settxantennadelay();
dwt_setpreambledetecttimeout();
dwt_setpanid();
dwt_setaddress16();
dwt_seteui();
dwt_setleds(DWT_LEDS_ENABLE);
dwt_setcallbacks();
dwt_setinterrupt( all );
The transmitting module will then send one packet per second, with the correct MAC bytes. I see the events getting called for successful transmissions.
The receiving module will set the timeout to 0, then call dwt_rxenable(), and that is the farthest I have gotten.
After the call to dwt_rxenable(), here are some of the registers:
SYS_CFG: 0x00401200
SYS_CTRL: 0x00000000 (somewhat odd that the RXENAB bit is not set?)
SYS_STATUS: 0x00800002
Voltage: 3.29, Temperature: 62.15
I see the thread (I can not receive) that seems to touch on a similar behavior, but transmitting a packet does not seem to help.
Also, swapping the modules does not help. Whichever module acts as the receiver exhibits this behavior.
Any pointers on what I can look at to debug this would be most helpful! I can post specific code snippets as well if desired.
Best,
-Eric