Hi everyone,
I am using the nRF52840-PDK and nRF5_SDK_17.1.0_ddde560, And trying to enter System Off modes with no RAM Retention.
I use the ram_retention example from SDK, ram retention suppose to turn on and off by changing the POWER_RAM_POWER_S[i]RETENTION_On / POWER_RAM_POWER_S[i]RETENTION_Off ( i=0~15 ) right? But the result doesn't change at all.
From
NRF_POWER->RAM[0].POWERSET = (POWER_RAM_POWER_S0POWER_On << POWER_RAM_POWER_S0POWER_Pos) |
(POWER_RAM_POWER_S1POWER_On << POWER_RAM_POWER_S1POWER_Pos) |
(POWER_RAM_POWER_S2POWER_On << POWER_RAM_POWER_S2POWER_Pos) |
(POWER_RAM_POWER_S3POWER_On << POWER_RAM_POWER_S3POWER_Pos) |
(POWER_RAM_POWER_S4POWER_On << POWER_RAM_POWER_S4POWER_Pos) |
(POWER_RAM_POWER_S5POWER_On << POWER_RAM_POWER_S5POWER_Pos) |
(POWER_RAM_POWER_S6POWER_On << POWER_RAM_POWER_S6POWER_Pos) |
(POWER_RAM_POWER_S7POWER_On << POWER_RAM_POWER_S7POWER_Pos) |
(POWER_RAM_POWER_S8POWER_On << POWER_RAM_POWER_S8POWER_Pos) |
(POWER_RAM_POWER_S9POWER_On << POWER_RAM_POWER_S9POWER_Pos) |
(POWER_RAM_POWER_S10POWER_On << POWER_RAM_POWER_S10POWER_Pos) |
(POWER_RAM_POWER_S11POWER_On << POWER_RAM_POWER_S11POWER_Pos) |
(POWER_RAM_POWER_S12POWER_On << POWER_RAM_POWER_S12POWER_Pos) |
(POWER_RAM_POWER_S13POWER_On << POWER_RAM_POWER_S13POWER_Pos) |
(POWER_RAM_POWER_S14POWER_On << POWER_RAM_POWER_S14POWER_Pos) |
(POWER_RAM_POWER_S15POWER_On << POWER_RAM_POWER_S15POWER_Pos) |
(POWER_RAM_POWER_S0RETENTION_On << POWER_RAM_POWER_S0RETENTION_Pos) |
(POWER_RAM_POWER_S1RETENTION_On << POWER_RAM_POWER_S1RETENTION_Pos) |
(POWER_RAM_POWER_S2RETENTION_On << POWER_RAM_POWER_S2RETENTION_Pos) |
(POWER_RAM_POWER_S3RETENTION_On << POWER_RAM_POWER_S3RETENTION_Pos) |
(POWER_RAM_POWER_S4RETENTION_On << POWER_RAM_POWER_S4RETENTION_Pos) |
(POWER_RAM_POWER_S5RETENTION_On << POWER_RAM_POWER_S5RETENTION_Pos) |
(POWER_RAM_POWER_S6RETENTION_On << POWER_RAM_POWER_S6RETENTION_Pos) |
(POWER_RAM_POWER_S7RETENTION_On << POWER_RAM_POWER_S7RETENTION_Pos) |
(POWER_RAM_POWER_S8RETENTION_On << POWER_RAM_POWER_S8RETENTION_Pos) |
(POWER_RAM_POWER_S9RETENTION_On << POWER_RAM_POWER_S9RETENTION_Pos) |
(POWER_RAM_POWER_S10RETENTION_On << POWER_RAM_POWER_S10RETENTION_Pos) |
(POWER_RAM_POWER_S11RETENTION_On << POWER_RAM_POWER_S11RETENTION_Pos) |
(POWER_RAM_POWER_S12RETENTION_On << POWER_RAM_POWER_S12RETENTION_Pos) |
(POWER_RAM_POWER_S13RETENTION_On << POWER_RAM_POWER_S13RETENTION_Pos) |
(POWER_RAM_POWER_S14RETENTION_On << POWER_RAM_POWER_S14RETENTION_Pos) |
(POWER_RAM_POWER_S15RETENTION_On << POWER_RAM_POWER_S15RETENTION_Pos);
Change to
NRF_POWER->RAM[0].POWERSET = (POWER_RAM_POWER_S0POWER_On << POWER_RAM_POWER_S0POWER_Pos) |
(POWER_RAM_POWER_S1POWER_On << POWER_RAM_POWER_S1POWER_Pos) |
(POWER_RAM_POWER_S2POWER_On << POWER_RAM_POWER_S2POWER_Pos) |
(POWER_RAM_POWER_S3POWER_On << POWER_RAM_POWER_S3POWER_Pos) |
(POWER_RAM_POWER_S4POWER_On << POWER_RAM_POWER_S4POWER_Pos) |
(POWER_RAM_POWER_S5POWER_On << POWER_RAM_POWER_S5POWER_Pos) |
(POWER_RAM_POWER_S6POWER_On << POWER_RAM_POWER_S6POWER_Pos) |
(POWER_RAM_POWER_S7POWER_On << POWER_RAM_POWER_S7POWER_Pos) |
(POWER_RAM_POWER_S8POWER_On << POWER_RAM_POWER_S8POWER_Pos) |
(POWER_RAM_POWER_S9POWER_On << POWER_RAM_POWER_S9POWER_Pos) |
(POWER_RAM_POWER_S10POWER_On << POWER_RAM_POWER_S10POWER_Pos) |
(POWER_RAM_POWER_S11POWER_On << POWER_RAM_POWER_S11POWER_Pos) |
(POWER_RAM_POWER_S12POWER_On << POWER_RAM_POWER_S12POWER_Pos) |
(POWER_RAM_POWER_S13POWER_On << POWER_RAM_POWER_S13POWER_Pos) |
(POWER_RAM_POWER_S14POWER_On << POWER_RAM_POWER_S14POWER_Pos) |
(POWER_RAM_POWER_S15POWER_On << POWER_RAM_POWER_S15POWER_Pos) |
(POWER_RAM_POWER_S0RETENTION_Off << POWER_RAM_POWER_S0RETENTION_Pos) |
(POWER_RAM_POWER_S1RETENTION_Off << POWER_RAM_POWER_S1RETENTION_Pos) |
(POWER_RAM_POWER_S2RETENTION_Off << POWER_RAM_POWER_S2RETENTION_Pos) |
(POWER_RAM_POWER_S3RETENTION_Off << POWER_RAM_POWER_S3RETENTION_Pos) |
(POWER_RAM_POWER_S4RETENTION_Off << POWER_RAM_POWER_S4RETENTION_Pos) |
(POWER_RAM_POWER_S5RETENTION_Off << POWER_RAM_POWER_S5RETENTION_Pos) |
(POWER_RAM_POWER_S6RETENTION_Off << POWER_RAM_POWER_S6RETENTION_Pos) |
(POWER_RAM_POWER_S7RETENTION_Off << POWER_RAM_POWER_S7RETENTION_Pos) |
(POWER_RAM_POWER_S8RETENTION_Off << POWER_RAM_POWER_S8RETENTION_Pos) |
(POWER_RAM_POWER_S9RETENTION_Off << POWER_RAM_POWER_S9RETENTION_Pos) |
(POWER_RAM_POWER_S10RETENTION_Off << POWER_RAM_POWER_S10RETENTION_Pos) |
(POWER_RAM_POWER_S11RETENTION_Off << POWER_RAM_POWER_S11RETENTION_Pos) |
(POWER_RAM_POWER_S12RETENTION_Off << POWER_RAM_POWER_S12RETENTION_Pos) |
(POWER_RAM_POWER_S13RETENTION_Off << POWER_RAM_POWER_S13RETENTION_Pos) |
(POWER_RAM_POWER_S14RETENTION_Off << POWER_RAM_POWER_S14RETENTION_Pos) |
(POWER_RAM_POWER_S15RETENTION_Off << POWER_RAM_POWER_S15RETENTION_Pos);
It really confuse me, please help.
Thanks.