Currently, the nRF5340 Audio is set up and running as follows:
In CIS mode, the audio source is I2S
Gateway side: nRF5340 Audio DK
I2S settings are default
Headset side: custom board
I2S settings are as follows
static nrfx_i2s_config_t cfg = {
.skip_gpio_cfg = true,
.skip_psel_cfg = true,
.irq_priority = DT_IRQ(I2S_NL, priority),
.mode = NRF_I2S_MODE_MASTER,
.format = NRF_I2S_FORMAT_I2S,
.alignment = NRF_I2S_ALIGN_LEFT,
.ratio = NRF_I2S_RATIO_256X,
.mck_setup = 0xAAAAA000,
.channels = NRF_I2S_CHANNELS_STEREO,
.clksrc = NRF_I2S_CLKSRC_ACLK,
.enable_bypass = true,
.sample_width = NRF_I2S_SWIDTH_32BIT,
};
With this setting, the audio input via the GatewayLINE input is output from the headset speaker.
If you set the headset to 24-bit as shown below, synchronization will not be possible and the I2S clock will not be output.
static nrfx_i2s_config_t cfg = {
.skip_gpio_cfg = true,
.skip_psel_cfg = true,
.irq_priority = DT_IRQ(I2S_NL, priority),
.mode = NRF_I2S_MODE_MASTER,
.format = NRF_I2S_FORMAT_I2 S,
.alignment = NRF_I2S_ALIGN_LEFT,
.ratio = NRF_I2S_RATIO_256X,
.mck_setup = 0xAAAAA000,
.channels = NRF_I2S_CHANNELS_STEREO,
.clksrc = NRF_I2S_CLKSRC_ACLK,
.enable_bypass = true,
.sample_width = NRF_I2S_SWIDTH_24BIT,
};
What could be the cause?