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

sd_app_evt_wait() doesn't give microamps consumption

Okay, I know there's a lot of threads about the subject. I have tried to read them all, with no help. My device still consumes 1.4 mA. Resetting does not help, so I assume it's not the debug-mode issue.

There's a lot of mentions that I should put all the peripherals I don't need into off state, before entering sd_app_evt_wait(). However, I cannot find any examples how to do that. That is, a piece of C-code how all those peripherals (UART, TWI etc.) can be configured into off state? Of course, such codes must exist somewhere, but why you cannot include them into all those answers? Links?

(If I put the whole system into off state using sd_power_system_off() I can reach 48 uA, which is quite reasonable due to other external peripherals we have on the board.)

Please help, I am quite frustrated... :(

Parents
  • If you read the product spec you'll see that while TX or RX are 'START'ed it needs the HF Clock which consumes lots of power (how much is in the product spec too). Using the simple uart code you'll see if you hunt through it that RX is started when you start the uart but only stopped when the uart deactivate call is called, and what that is depends a bit on which driver you're using. look for the TASKS_STOPRX task being written, that's what disables it again.

    And the underscores are a very long-standing C convention. CamelCaseIsForJavaAndObjectiveCProgrammers. It's not modern, it's just different, and I'm sure you'll get very used to reading the underscores after a while.

Reply
  • If you read the product spec you'll see that while TX or RX are 'START'ed it needs the HF Clock which consumes lots of power (how much is in the product spec too). Using the simple uart code you'll see if you hunt through it that RX is started when you start the uart but only stopped when the uart deactivate call is called, and what that is depends a bit on which driver you're using. look for the TASKS_STOPRX task being written, that's what disables it again.

    And the underscores are a very long-standing C convention. CamelCaseIsForJavaAndObjectiveCProgrammers. It's not modern, it's just different, and I'm sure you'll get very used to reading the underscores after a while.

Children
No Data
Related