To achieve < 1uA of sleep current in WirelessUSB LP follow these steps:
- Disable PMU during sleep.
- Configure XOUT pin as a GPIO.
- Force end state of the radio to Sleep by configuring Bit 5 and Bit 2:4 of the XACT_CFG_ADR register.
- If there are level translator resistors across the SPI pins, then you need to drive nSS pin of the MCU low, as otherwise the level translator resistor draws some more current from the radio power supply. The level translator resistors are present on the SPI lines when the SPI communication takes place at a lower voltage reference.
The following code snippet can be directly implemented in the code to measure sleep current using LP Radio Driver Ver1.4:
RadioWrite(0Ch, C0h) //XOUT = GPIO
RadioWrite(0Eh, 00h) //XOUT = Drive Low
RadioSetXactConfig(A1h) //Force End State = SLEEP
RadioWrite(0Bh, 20h) //Disable PMU EN
General Notes: If you are doing a Transmit and Receive and from Tx/Rx mode you want to go to Sleep and then measure Sleep current please make sure the sequencing of events are correct:
- Stop Tx or Rx functions
- Stop all other analog and digital resources
- Make all GPIO High Z
- Execute MCU Sleep function
- Force radio end state to sleep