Using SDK15.3 and S140
following from my previous support request regarding TWI sleep current, I got the newer AIS2DW12 accelerometer and I have successfully connected it with SPI instead of TWI.
When power profiling I see occasional high sleep current of ~215uA compared to ~22uA expected. I tried to attached the exported PPK2 power profiler output to this report but the upload tool refuses to upload it (it's ~7MB)
Here's some screenshots to let you see what I mean. 1 minute chart. The tall spikes are the SPI reads every 800ms.

Here's a zoom in. As you can see the sleep current is sometimes quite high. (~215uA)

And sometimes much lower ~21uA

This is Breadboarded with an NRF52840 Dongle with AIS2DW12 evaluation board. (https://www.st.com/content/st_com/en/products/evaluation-tools/solution-evaluation-tools/sensor-solution-eval-boards/steval-mki206v1.html)
Dongle has QIAAC0 marking and NRF_FICR->INFO.VARIANT = "AAC0". So I think this is release 1. I also have NRF52840 dongles here that are AAD0 which I could try.
My spi is default except
spi_config.frequency = NRF_DRV_SPI_FREQ_8M;
spi_config.irq_priority = APP_IRQ_PRIORITY_HIGH;(APP_IRQ_PRIORITY_HIGH = 2)
I needed to set the IRQ to 2 because the SPI calls occur in my timer handler.
All SPI calls are synchronous at the moment.
static uint8_t * AIS2DW12_readRegisters(uint8_t reg, uint16_t read_length, uint8_t *values)
{
uint32_t err_code;
spi_tx_buffer[0] = reg | 0x80; // top bit set = read register
spi_xfer_done = false;
err_code = nrf_drv_spi_transfer(&m_spi, spi_tx_buffer, 2, values, read_length + 1);
if (NRF_SUCCESS == err_code)
{
while (spi_xfer_done == false) ;//printf("S3");
return &values[1]; // The first byte is garbage received while we send the register | 0x80 byte
}
}
I use SPI instance 1 because I also use TWI instance 0.
const nrf_drv_spi_t m_spi = NRF_DRV_SPI_INSTANCE(SPI_INSTANCE_ID);

I've tested NRF_DRV_SPI_FREQ_8M and NRF_DRV_SPI_FREQ_4M but there was no obvious difference. It seems to sleep with high (~215uA) current around a third of the time.
I started looking at errata but I didn't notice one that specifies SPI1. There may be something else going on
I also found this (https://devzone.nordicsemi.com/f/nordic-q-a/59717/nrfx_spim-driver-causes-high-power-consumption)
and this (https://devzone.nordicsemi.com/f/nordic-q-a/42145/spim-easydma-to-increase-power-consumption)
I tried disabling SPI1_USE_EASY_DMA but it made no difference
I don't use GPIOTE and it is disabled in my sdk_config.h NRFX_GPIOTE_ENABLED 0 and GPIOTE_ENABLED 0
Have you any idea what the problem could be?
Any help is greatly appreciated.


