High power consumption after uninit of libuarte

Hi,

currently I'm facing an issue with the power consumption of my pcb. The idle power consumption is at about 20 µA. After initialising the UART it goes up to over 1 mA. If I uninitialise the UART again, the power consumption stays at about 280 µA which is much higher than before. At the moment of the test both pins from the UART were disconnected. 

I'm using SDK5 17.1.0 and the following code snippets to (un-)initialise the UART:

//Definition
NRF_LIBUARTE_ASYNC_DEFINE(uart_gsm, 0, 1, NRF_LIBUARTE_PERIPHERAL_NOT_USED, NRF_LIBUARTE_PERIPHERAL_NOT_USED, 255, 3);

// Activation
nrf_libuarte_async_config_t nrf_libuarte_async_config = {
                .tx_pin     = PIN_GSM_RX,
                .rx_pin     = PIN_GSM_TX,
                .baudrate   = NRF_UARTE_BAUDRATE_9600,
                .parity     = NRF_UARTE_PARITY_EXCLUDED,
                .hwfc       = NRF_UARTE_HWFC_DISABLED,
                .timeout_us = 100,
                .int_prio   = APP_IRQ_PRIORITY_LOW_MID
            };

uint32_t err_code = nrf_libuarte_async_init(&uart_gsm, &nrf_libuarte_async_config, uart_gsm_event_handler, (void *)&uart_gsm);
APP_ERROR_CHECK(err_code);

nrf_libuarte_async_enable(&uart_gsm);
            
//Deactivation
nrf_libuarte_async_uninit(&uart_gsm);
           
nrf_gpio_input_disconnect(PIN_GSM_TX);
nrf_gpio_input_disconnect(PIN_GSM_RX);

Is there anything I'm missing when deactivating the UART? How can I go back to my idle power consumption?

Best regards,

Christian 

Parents Reply
  • Hi Christian,

    Thanks for confirming. Is your application requesting the HF crystal oscillator when it enables the UARTE as recommended in the PS? Are there any other pins being used for interfacing with the GSM modem apart from the RX and TX pins? A current draw of 2-300 µA often indicates that there is a floating input or that the crystal oscillator is left running.

    Best regards,

    Vidar

Children
Related