Hello!
I use I2S on nrf52832 custom board with ICS-43432 microphone. I try to modify example project.
1. When I2S data_handler function take place, I see a new data (p_data_received). Is this just a new 32bit data or this is an event where all "m_buffer_rx" (array uint32_t m_buffer_rx[I2S_BUFFER_SIZE]) from function nrf_drv_i2s_start(m_buffer_rx, m_buffer_tx, I2S_BUFFER_SIZE, 0) becomes full?
2. I have I2S_BUFFER_SIZE = 200. In debug I see that I need a few seconds (2-3) when I have 200 count of data_handler. This is very slow data from i2s. What can be the problem?
My configuration of i2s:
#if (I2S_ENABLED == 1)
#define I2S_CONFIG_SCK_PIN 04
#define I2S_CONFIG_LRCK_PIN 02
#define I2S_CONFIG_MCK_PIN NRF_DRV_I2S_PIN_NOT_USED
#define I2S_CONFIG_SDOUT_PIN NRF_DRV_I2S_PIN_NOT_USED
#define I2S_CONFIG_SDIN_PIN 03//25
#define I2S_CONFIG_IRQ_PRIORITY APP_IRQ_PRIORITY_HIGH
#define I2S_CONFIG_MASTER NRF_I2S_MODE_MASTER
#define I2S_CONFIG_FORMAT NRF_I2S_FORMAT_I2S
#define I2S_CONFIG_ALIGN NRF_I2S_ALIGN_LEFT
#define I2S_CONFIG_SWIDTH NRF_I2S_SWIDTH_24BIT
#define I2S_CONFIG_CHANNELS NRF_I2S_CHANNELS_LEFT
#define I2S_CONFIG_MCK_SETUP NRF_I2S_MCK_32MDIV8 // 32 MHz / 8 = 4MHz (master clock)
#define I2S_CONFIG_RATIO NRF_I2S_RATIO_96X // 4 MHz / 96 = 41667 Hz (sampling rate)
// SCLK= 2*41667*24= 2 MHz (sample clock)