Hello dear Deca Tech Forum!
I am trying to set up a rudimentary ranging network using DW1001-DEV Boards running my own Firmware.
I am using SS-TWR which is being initiated by one Master-Node while all the other Nodes are prepared to answer, spending their time in Polled Receiving mode with frame filtering enabled and using max. timeout of 65000 (to the end of processing UART input after each RX timeout).
Everything is working as expected but at some point (around 2,5 hours into continous ranging) some of the Responder Nodes get stuck while receiving(?) and neither RXFCG nor any Error- or Timeout-Flag is set.
Polling Code (Responder gets stuck here):
while (!((status_reg = dwt_read32bitreg(SYS_STATUS_ID) &
(SYS_STATUS_RXFCG | SYS_STATUS_ALL_RX_TO |
SYS_STATUS_ALL_RX_ERR)))) {};
dwt_read32bitreg(SYS_STATUS_ID) does actually return 0b00000000100000000010111100000010 i.e. all the Flags for a successful frame reception are set except for RXFCG !?
I am using the following Configuration:
[code]dwt_config_t dwt_config = {
1, /* Channel number. /
DWT_PRF_64M, / Pulse repetition frequency. /
DWT_PLEN_128, / Preamble length. Used in TX only. /
DWT_PAC8, / Preamble acquisition chunk size. Used in RX only. /
9, / TX preamble code. Used in TX only. /
9, / RX preamble code. Used in RX only. /
0, / 0 to use standard SFD, 1 to use non-standard SFD. /
DWT_BR_6M8, / Data rate. /
DWT_PHRMODE_STD, / PHY header mode. /
(129 + 8 - 8) / SFD timeout (preamble length + 1 + SFD length - PAC size). Used in RX only. */
};
[…]
//Additional Setup
//Set NTM_1 and NTM_2 (LDE recognition threshold) for NLOS
dwt_write8bitoffsetreg(0x2E,0x0806,0x07);
dwt_write16bitoffsetreg(0x2E,0x1806,0x0003);[/code]
I’d appreciate any help!
Thank you in advance,
Julian