Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs

UART Data byte corrupt when calling nrf_pwr_mgmt_run(); in main while loop.

I am using nRF52805(SDK 17.0.1 & S112) in my application development. Designed GATT Table Having some custom services with read, write & notify properties, And also, there is some data communication in between nRF52805 & Host Microcontroller via UART interface(libUARTE is used for handling all communication) for updating custom characteristics, I need to do power optimization as device is battery operated, so power management is initialized by "power_management_init();" function & everything working fine until I'm calling nrf_pwr_mgmt_run(); in main while loop . But upon calling "nrf_pwr_mgmt_run();"  some UART data byte got corrupted (I'm suspecting) & some times application gets stuck(may be goes into unknown/unrecoverable state). Also, I'm suspecting some kind of event time handling issue between softdevice & application interrupts.

My question is below:

  1. is there any limitation of using libUARTE in Power Management mode.
  2. I also tried app_uart for my application and facing same kind of issue, so is there any better way to handle heavy transection of data on UART having ble stack enabled.
  3. In power management (when calling nrf_pwr_mgmt_run();) need some specific setting to reduce current consumption & How it is working in real scenario.  

please suggest me for above points.

Thanks.

Related