I want to change the I2S bit width to 24 bits.

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?

Parents Reply Children
No Data
Related