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

UARTE power consumption after shutdown

We've been hunting down an issue there when we call nrf_drv_uart_uninit() we get a high static current which indicates that a clock or peripheral is being left on.

After some work I discovered that:

    nrf_drv_uart_uninit(&m_uart);
      *(volatile uint32_t *)0x40002FFC = 0;
  *(volatile uint32_t *)0x40002FFC;
  *(volatile uint32_t *)0x40002FFC = 1;

Fixes the issue- (I eventually found it from this post:

https://devzone.nordicsemi.com/f/nordic-q-a/53121/uart-low-power-shutdown-issue

However when I check the latest errata (2.0) there is no issue 89. These registers aren't documented anywhere and I would like to know if this bug still exists and also what these registers actually do.

Needless to say the excess current is significant in our application and I would have hoped that the driver did the right thing - clearly it does not. Are you going to fix this in an upcoming SDK?

Parents
  • The 3 lines of code you refer to control the power to the peripheral, and simply does a hard reset of the peripheral. It can be used to return the peripheral to the default power-on state. There is no problem to use this after an uninit.

    Can you provide the detailed chip marking on the nRF52840 ic you have? Also, which peripherals are you using in your application (e.g. uart#, twi#, gpiote, spi#)?

Reply
  • The 3 lines of code you refer to control the power to the peripheral, and simply does a hard reset of the peripheral. It can be used to return the peripheral to the default power-on state. There is no problem to use this after an uninit.

    Can you provide the detailed chip marking on the nRF52840 ic you have? Also, which peripherals are you using in your application (e.g. uart#, twi#, gpiote, spi#)?

Children
Related