How to output 12.288MHz MCLK with nRF5340 Audio

I tried the following settings to output 12.288MHz I2S MCLK with nRF5340 Audio, but it did not work as expected.

The I2S settings I want to output are as follows.

MCLK: 12.288MHz
BICLK: 3.072MHz
LRCK: 480kHz
Bit width: 32bit

1. Set to output using bypass function
static nrfx_i2s_config_t cfg = {
/* Pins are configured by pinctrl. */
.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,
};

Result: MCLK, BICK, and LRCK have the expected waveforms and BLE is connected, but synchronization is not possible (LED2 does not light up).

2. Set to output without using the bypass function.
static nrfx_i2s_config_t cfg = {
/* Pins are configured by pinctrl. */
.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 = false,
.sample_width = NRF_I2S_SWIDTH_32BIT,
};

Result: No waveforms are output from MCLK, BICK, and LRCK, and BLE is connected but cannot be synchronized (LED 2 does not light up).

I have the following questions.

a) Is there a range in which mck_setup can be set?
b) Why does synchronization not work when using the bypass function?
c) Please tell me the range in which the I2S MCLK can be output on the nRF5340

Related