SX1262 Deep Sleep

I am converting code from the Murata Type ABZ part to the Murata Type 1SJ. They each have an STM32L082 microcontroller, but the ABZ uses the SX1276 radio, and the 1SJ uses the SX1262.

I can easily put the ABX into deep sleep, drawing about 1.4 microamps. The 1SJ is another story. I have all the code Murata provided, and it seems to do the functions in the Semtech reference design. However, I have found that calling the Standby function followed by the Sleep function does not put the SX1262 into deep sleep. The current draw is about 0.8 milliamps - about what I would expect if the SX1262 were in idle.

I suspect that putting the SX1262 into deep sleep is a fiddly process and that certain I/O ports have to be set correctly in addition to sending the Sleep command. I’m thinking there is a specific sequence not shown in the reference design.

Could someone please tell me in narrative form (or code if you like) how to put the SX1262 to bed?

Thanks in advance.

Dear @keithrussell,

Please have a look at the driver function sx126x_set_sleep .


Yes, I’m using it.

Hello @keithrussell,

To optimize the power consumption in sleep mode, you can set all the inputs on the MCU side in high-Z mode (busy, irq line) and deactive the SPI interface.

Do you have other signals connected to the SX126x?

On an ATmega328P, the sleep command discribed in the SX126X datasheet works for me on a NiceRF SX1262 module, gives a circa 1uA sleep.

No need to do anything with the SPI or DIO pins either, I leave them as is.