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

Controlling voltage regulators and HFCLK separately?

FormerMember
FormerMember

Hi all,

As I know in constant latency mode, both the regulators (1v7 & 1v2) and HFCLK are kept on. Is there a way to keep the HFCLK on while one or both the regulators are switched off?

This is so that when waking up frequently, the waiting for the HFCLK XTAL start-up period can be avoided.

Cheers, Prithvi

  • Hi

    I have updated this thread to answer your question better.

    Update 25.8.2015

    I tested current consumption of my PCA10028 board. Here is what I observed:

    HFCLK crystal enabled, CPU disabled (asleep in System On low power mode) -> current consumption 35uA

    int main(void)
    {
        /* Start 16 MHz crystal oscillator */
        NRF_CLOCK->EVENTS_HFCLKSTARTED = 0;
        NRF_CLOCK->TASKS_HFCLKSTART = 1;
    
        /* Wait for the external oscillator to start up */
        while (NRF_CLOCK->EVENTS_HFCLKSTARTED == 0) {}
    
        while (true)
        {
            // Sleep
        	__WFE();
        	__SEV();
        	__WFE();
        }
    }
    

    According to specification, the expected current consumption is I_STBY,X16M+I_ON,16k = 25+2.6 = 27.6uA


    Constant latency mode, CPU disabled (asleep in System On low power mode) -> current consumption 905uA

    int main(void)
    {
        /* Start 16 MHz crystal oscillator */
        NRF_CLOCK->EVENTS_HFCLKSTARTED = 0;
        NRF_CLOCK->TASKS_HFCLKSTART = 1;
    
        /* Wait for the external oscillator to start up */
        while (NRF_CLOCK->EVENTS_HFCLKSTARTED == 0) {}
    
        // Enable constant latency mode
        NRF_POWER->TASKS_CONSTLAT = 1;
    
        while (true)
        {
            // Sleep
        	__WFE();
        	__SEV();
        	__WFE();
        }
    }
    

    The current consumption of the constant latency mode in this experiment indicates that the HFCLK crystal, 1v2 regulator, and 1v7 regulator are enabled in active mode (not standby mode) as 905 uA is approximately the current consumption specified for I_1V2XO16+I_1V7 = 810+105 = 915 uA

  • Thanks Stefan. I'll give an example situation so that you can answer my question better.

    Take a situation where a ADC sampling needs to be done every milli-second. The HFCLK XTAL is switched on and constant latency mode is ON. With PPI the RTC will trigger the ADC every ms. After ADC sampling, the value is stored in RAM in the ADC IRQ. Then the system goes to sleep and this cycle repeats.

    What'll be the sleep current in this case? Since 1V2 and 1V7 regulators will be ON in constant latency mode, will they consume any power apart from the HFCLK XTAL in stand-by?

  • Actual current values, awesome!! I'm a bit surprised by this, I was thinking the first case will have only I_ON,16k (2.6 uA) as the HFCLK will be switched off. And in the second case I was thinking the current will be I_STBY,X16M+I_ON,16k + I_1V7 + I_1V2 to be around some 200uA. I guess my understanding was wrong.

    With this info I think we can say for sure that there is no latency to wake up in constant latency mode (t_START,CPU = 0 us). What about the low power case? Is it max of t1V7 or t1V2, which is less than 5 us?

  • I guess the startup time when the HFCLK is in standby mode is max(t_XO, t_1V7, t_1V2) = max(5.3us, 3.6us, ?). The maximum has not been tested for the 1V2 regulator but perhaps you can assume anyway the max to be 5.3us (max for the XTAL startup time from standby) and the typical startup time for the system is 2.3us

Related