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

SPIM (EasyDMA) to increase power consumption

Hello!

I'm in the middle of a power consumption reduction process and have found something annoying. On the PCB (DWM1001-DEV) nRF52832 is wired to DW1000 with SPI. Additionally, UART0 is configured to implement a serial console (115200bps).

Case #1: some text is written to the console, then UART TX is disabled, UART RX remains enabled. The SPIM peripheral is not initialized, the SPIM slave is never accessed. Current drain is I1.

Case #2: same as Case #1, but UART RX is disabled. Current drain is I2.

I2 is less by ~280uA than I1, as expected (great!).

Case #3: some text is written to the console, then UART TX is disabled, UART RX remains enabled. The SPIM peripheral is initialized, 4 bytes are transmitted, nothing else happens on the SPI bus. Current drain is I3.

Case #4: same as Case #1, but UART RX is disabled. Current drain is I4.

Surprisingly I3 == I4 (just a few uA diff). Quite weird, since just before the SPI transaction occured disabling UART RX could reduce the current flow by ~280uA.

I've already played a lot with SPI (and other) pins, driving them to low, setting to default state (input, no pullup), but could not solve this issue.

Correct me if I'm wrong but it appears to me that on the first SPIM TX transaction some internal functionality (e.g. EasyDMA) gets switched on and I can never make it turn off, even if SPIM itself is disabled.

I've forgotten to mention that GPIOTE is also used in event mode, since the device on the SPI bus can generate an IRQ (handled by GPIOTE). This looks like something related to errata 89, but turning off/on the SPIM driver (ENABLE) doesn't solve it. Furthermore, I've an alternative implementation using GPIO input sensing to assert a PORT event in GPIOTE, but this also seems to produce the same consumption...

How can I make the current consumption reduce after a successful SPI transmission when UART RX is disabled?

Shall I use SPI driver to avoid using EasyDMA?

Thanks in advance

Parents Reply Children
Related