This old question ( nRF52832 SPI Slave Pulls Excessive Idle Current ) raised the issue of excessive power consumption of the SPI slave peripheral compared to the datasheet.
The datasheet has not been updated (Online link) and still states that the expected idle current is 1uA.
The reason I am looking into this is that I have ~40 boards with a nRF52832 BT controller connected to a nRF9160 BT host.
With both SoC's in a low power configuration, the boards consistently idle at ~4.7uA (expected given other parts on the board).
Once the nRF52832 configures a SPIS peripheral (even on physically disconnected pins), half of the boards run at ~10uA, the other half run at ~15uA.
The exact same behaviour occurs if I attempt to configure a GPIOTE channel to trigger on a pin falling edge, as per the following
uint8_t gpiote_ch; nrfx_gpiote_channel_alloc(&gpiote_ch); nrf_gpiote_event_configure(NRF_GPIOTE, gpiote_ch, 26, GPIOTE_CONFIG_POLARITY_HiToLo); nrf_gpiote_event_enable(NRF_GPIOTE, gpiote_ch);
I am guessing that internally the SPIS peripheral is making use of GPIOTE to watch the CS pin for transitions, which would account for the same behaviour.
Firstly, I am looking for an "official" answer as to what the expected idle current is when SPIS is enabled but there is no CS activity.
Secondly, I am looking for a reason why I am seeing this 50/50 split in power consumption between boards. Errata 97 could potentially explain it, but only if the "high current consumption" varies between individual parts, and if the SPIS peripheral is actually using GPIOTE internally.