nRF52832 power consumption is high after the SPI peripheral is used (approximately 400uA of extra current consumption). I expect it has something to do with the high speed clock, that is turned on, but not properly turned off after an uninit.
The following uninit functions both result in high power consumption after SPI usage:
nrf_drv_spi_uninit(&spi);
and
NRF_SPI0->ENABLE = 0;
The used code:
static void spi_write(uint8_t address, uint8_t data) { //Set TX buffer m_tx_buf[0] = address; m_tx_buf[1] = data; // Reset rx buffer and transfer done flag memset(m_rx_buf, 0, m_length); spi_xfer_done = false; APP_ERROR_CHECK(nrf_drv_spi_transfer(&spi, m_tx_buf, m_length, m_rx_buf, m_length)); while (!spi_xfer_done) { __WFE(); } } static void sensor_init(void) { //SPI driver configuration nrf_drv_spi_config_t spi_config = NRF_DRV_SPI_DEFAULT_CONFIG; spi_config.miso_pin = SPI_ACC_MISO; spi_config.mosi_pin = SPI_ACC_MOSI; spi_config.sck_pin = SPI_ACC_CLK; spi_config.ss_pin = SPI_ACC_CS; spi_config.mode = NRF_DRV_SPI_MODE_3; spi_config.frequency = NRF_DRV_SPI_FREQ_125K; APP_ERROR_CHECK(nrf_drv_spi_init(&spi, &spi_config, spi_event_handler, NULL)); spi_write(0x10, 0xFF); nrf_drv_spi_uninit(&spi); // NRF_SPI0->ENABLE = 0; }