I’m new with DW1000 and we are trying to undestand snooze mode.My problem is in snooze mode it can’t receive message (so no interrupt is actived).
I want the tag to loop between the snooze state and the receive state without detecting the lead code.And after successfully receiving a frame of data, stop the loop and turn off the snooze state. How do I configure registers?
I don’t understand the relationship between the snooze state and the receiving state. and when I set it as follows:
• Set SNOZ_TIM (snooze time) field of Sub-Register 0x36:0C – PMSC_SNOZT.
• Set SNOZE (snooze enable) bit in Sub-Register 0x36:04 – PMSC_CTRL1.
• Set the RXENAB bit in Register file: 0x0D – System Control Register.
it can’t receive message.Why is that?
Thank you for reply,
It may well be that the device is still asleep.
Can you monitor the RSTn pin or the EXTON pin, these will indicate that the DW1000 is waking up from SLEEP.
We have example code , 08a_low_power_listen_rx. It explains the use of snooze (and waking up).
In order to stop LPL mode the host should monitor either the RSTn, EXTON or IRQ pins on the DW1000, these can be used to indicate that the DW1000 is awake and then the LPL mode should be cleared.
If not the DW1000 will resume its LPL cycle of RX-> Snooze → RX → Sleep.
See the section on Wake up in the DW1000 user manual and APS022 our debug application note. (attached)
The example API, which included LPL RX and TX can be downloaded from Software - Decawave and is called “DW1000 Application Programming Interface with STM32F10x Application examples”
APS022_Debugging_DW1000_based_products_systems.pdf (999.6 KB)