2018-04-23 02:27 AM
Goodday,
After a few months on the SP1ML (STM32L151+SPIRIT combined) then switching to SPSGRF (STM32L151 seperate from the SPIRIT module) I am experiencing the same phenomena on both designs. My software toggles the system in and out of STOP mode using timer 7 (to go to shutdown) and RTC to wake up. Eight out of ten times current consumption will be 50uA which seems correct with external pull-ups etc, but two out of ten times the current jumps to 220uA.
I have removed all additional semiconductors from my design and reverted back to the original firmware from ST. I am now toggling the unit in and out of shutdown mode with an external wire connected to ground and still every now and then I get 220-300uA in shut down mode instead of 19uA.
My project is current sensitive and will be asleep 99% for months at a time so I cant afford to take a chance where it goes into stop mode drawing 220uA.
I have narrowed it down to the SPIRIT Module if I remove it and only toggle the STM32L151 I get 0.4uA consistently.
To date I have build around 40 different units (SP1ML & SPSGRF ) and they all do the same. I also looked for eratta on the Spirit module.
I suspect the problem lies here
spirit_set_mode(SPIRIT_MODE_STANDBY);Anyone ever came across something similar? Any ideas on how to narrow it down, I looked at clocks, GPIO states, even the ST StDPeriph_Driver_PWR.
Thanks in Advance
Melt
#sp1ml #sp1ml-spirit1-stm32l151rb #stop-mode #current-measurement2018-04-26 12:01 AM
Thanks to the RF ST team this has been solved
One needs to add the following line of code in the RX function when data is received by the spirit
uint8_t tmp = 0x95; SpiritSpiWriteRegisters(PM_CONFIG1_BASE, 1, &tmp);
or another solution is to switch off the SMPS of the Spirit during shutdown
uint8_t tmp = 0x20; SpiritSpiWriteRegisters(PM_CONFIG2_BASE, 1, &tmp); // DISABLE the SMPS