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

nrf52 UARTE/Fifo high current consumption

I am struggling with excess current consupmtion using uart+fifo. It seems like ~300uA is drawn by UART and disabling via app_uart_close() doesn't help.

I have checked all possible configurations of below params:

#define UART0_CONFIG_USE_EASY_DMA false
//Compile time flag
#define UART_EASY_DMA_SUPPORT     1
#define UART_LEGACY_SUPPORT       1
#endif //NRF52

and after uart_close() current jumps to 2mA and stays there for a while and goes back to the same value of ~300uA; I am pretty sure its UART - I can comment it out and current stasy at very low levels.

I have tried different settings and UARTE/UART mixing but it only makes it worse if I ie. use only easy_dma. Any suggestions ? Errata?

I use SDK12, with SD132, sd is enabled, but no advertsing.

Parents
  • Hi Oskar

    I do not experience the same as you on nRF52. If I try out the standard ble_app_uart example in SDK 12.0.0 and I add app_uart_close() a at the end of the initialization in main but before the main loop then I get low current consumption. If I also dont start advertising I get ~2uA current consumption:

    ...
    advertising_init();
    conn_params_init();
    
    //    printf("\r\nUART Start!\r\n");
    //    err_code = ble_advertising_start(BLE_ADV_MODE_FAST);
    //    APP_ERROR_CHECK(err_code);
    
    	app_uart_close();
    
    // Enter main loop.
    for (;;)
    {
        power_manage();
    }
    

    This result seems to be consistent both if I choose to use EasyDMA or not, i.e. regardless if I choose

    #define UART0_CONFIG_USE_EASY_DMA 1
    

    in sdk_config.h or if I choose

    #define UART0_CONFIG_USE_EASY_DMA 0
    
Reply
  • Hi Oskar

    I do not experience the same as you on nRF52. If I try out the standard ble_app_uart example in SDK 12.0.0 and I add app_uart_close() a at the end of the initialization in main but before the main loop then I get low current consumption. If I also dont start advertising I get ~2uA current consumption:

    ...
    advertising_init();
    conn_params_init();
    
    //    printf("\r\nUART Start!\r\n");
    //    err_code = ble_advertising_start(BLE_ADV_MODE_FAST);
    //    APP_ERROR_CHECK(err_code);
    
    	app_uart_close();
    
    // Enter main loop.
    for (;;)
    {
        power_manage();
    }
    

    This result seems to be consistent both if I choose to use EasyDMA or not, i.e. regardless if I choose

    #define UART0_CONFIG_USE_EASY_DMA 1
    

    in sdk_config.h or if I choose

    #define UART0_CONFIG_USE_EASY_DMA 0
    
Children
No Data
Related