This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Current consumption during SYSTEM ON WAKEUP ON RTC Sleep is above spec when the value of NRF_POWER->RAM[n].POWERCLR is set as 0x01 (Documented Code) or 0x03(Forum verified answer example) vs 0xFF (My test value).

Current consumption of my code running RTC from LFCLK is ~2.5uA from the power profiler when I set the register values as.
    NRF_POWER->RAM[2].POWERCLR = 0x01;
    NRF_POWER->RAM[3].POWERCLR = 0x01;
    NRF_POWER->RAM[4].POWERCLR = 0x01;
    NRF_POWER->RAM[5].POWERCLR = 0x01;
    NRF_POWER->RAM[6].POWERCLR = 0x01;
    NRF_POWER->RAM[7].POWERCLR = 0x01;
    NRF_POWER->RAM[8].POWERCLR = 0x01;

On the other Hand the current consumption of my code running RTC from LFCLK is ~1.5uA from the power profiler when I set the register  values as.
    NRF_POWER->RAM[2].POWERCLR = 0xFF;
    NRF_POWER->RAM[3].POWERCLR = 0xFF;
    NRF_POWER->RAM[4].POWERCLR = 0xFF;
    NRF_POWER->RAM[5].POWERCLR = 0xFF;
    NRF_POWER->RAM[6].POWERCLR = 0xFF;
    NRF_POWER->RAM[7].POWERCLR = 0xFF;
    NRF_POWER->RAM[8].POWERCLR = 0xFF;

I am not sure why this is happening as the documentation and a verified answer on the forum at link here

show different things.

Although 0xFF provides me with a current consumption which matches the spec sheet, I am hesitant to use it as it does not match the documentation, could you please confirm any or all of this?

Parents
  • Hi

    The RAM AHB slaves 0-7 consists of 2x4kB RAM sections each, and RAM AHB slave 8 is connected to 6x32kB sections. By setting the slaves 2-7 to 0x01 means that you just turn off one of those 4kB sections, and in slave 8 you turn off one 32kB section, which explains your measurement of 2.5uA.

    To set the slaves as they are when conducting the documentation measurements, you will have to set slaves 2-7 to the value 0x03 (which turns off both RAM sections), and slave 8 to 0x3F (turning off all 6 RAM sections), which is what was done in the case you linked to. Setting them all to 0xFF, will turn them all off, and provide the same measurements as the documentation, but this might cause your application to incorrectly partition the RAM and crash.

    Best regards,

    Simon

Reply
  • Hi

    The RAM AHB slaves 0-7 consists of 2x4kB RAM sections each, and RAM AHB slave 8 is connected to 6x32kB sections. By setting the slaves 2-7 to 0x01 means that you just turn off one of those 4kB sections, and in slave 8 you turn off one 32kB section, which explains your measurement of 2.5uA.

    To set the slaves as they are when conducting the documentation measurements, you will have to set slaves 2-7 to the value 0x03 (which turns off both RAM sections), and slave 8 to 0x3F (turning off all 6 RAM sections), which is what was done in the case you linked to. Setting them all to 0xFF, will turn them all off, and provide the same measurements as the documentation, but this might cause your application to incorrectly partition the RAM and crash.

    Best regards,

    Simon

Children
No Data
Related