Code: Select all
i2s_chan_config_t i2s_chan_cfg = {
.id = I2S_NUM_0,
.role = I2S_ROLE_MASTER,
.dma_desc_num = 6,
.dma_frame_num = 240,
.intr_priority = 0
};
ESP_ERROR_CHECK(i2s_new_channel(&i2s_chan_cfg, &tx_handle, &rx_handle));
ESP_LOGI(TAG, "Configure I2S transmit channel to STD mode");
i2s_std_config_t i2s_std_tx_conf = {
.clk_cfg = {
.clk_src = I2S_CLK_SRC_DEFAULT,
.sample_rate_hz = EXAMPLE_I2S_SAMPLE_RATE,
.mclk_multiple = EXAMPLE_I2S_MCLK_MULTIPLE,
.ext_clk_freq_hz = 0
},
.slot_cfg = I2S_STD_PHILIPS_SLOT_DEFAULT_CONFIG(I2S_DATA_BIT_WIDTH_16BIT, I2S_SLOT_MODE_STEREO),
.gpio_cfg = {
.mclk = EXAMPLE_I2S_MCK_IO,
.bclk = EXAMPLE_I2S_BCK_IO,
.ws = EXAMPLE_I2S_WS_IO,
.dout = EXAMPLE_I2S_DO_IO,
.din = I2S_GPIO_UNUSED,
.invert_flags = {
.mclk_inv = false,
.bclk_inv = false,
.ws_inv = false
}
}
};
ESP_LOGI(TAG, "Configure I2S receive channel to TDM mode");
i2s_tdm_config_t i2s_tdm_rx_conf = {
.clk_cfg = {
.clk_src = I2S_CLK_SRC_DEFAULT,
.sample_rate_hz = EXAMPLE_I2S_SAMPLE_RATE,
.mclk_multiple = EXAMPLE_I2S_MCLK_MULTIPLE,
.ext_clk_freq_hz = 0,
.bclk_div = 8
},
.slot_cfg = I2S_TDM_PHILIPS_SLOT_DEFAULT_CONFIG(EXAMPLE_I2S_SAMPLE_BITS, I2S_SLOT_MODE_MONO, EXAMPLE_I2S_TDM_SLOT_MASK),
.gpio_cfg = {
.mclk = EXAMPLE_I2S_MCK_IO,
.bclk = EXAMPLE_I2S_BCK_IO,
.ws = EXAMPLE_I2S_WS_IO,
.dout = I2S_GPIO_UNUSED,
.din = EXAMPLE_I2S_DI_IO,
.invert_flags = {
.mclk_inv = false,
.bclk_inv = false,
.ws_inv = false
}
},
};
ESP_ERROR_CHECK(i2s_channel_init_std_mode(tx_handle, &i2s_std_tx_conf));
ESP_ERROR_CHECK(i2s_channel_init_tdm_mode(rx_handle, &i2s_tdm_rx_conf));Code: Select all
ESP_LOGI(TAG, "Create I2S receive channel");
i2s_chan_config_t i2s_chan_cfg = {
.id = I2S_NUM_0,
.role = I2S_ROLE_MASTER,
.dma_desc_num = 6,
.dma_frame_num = 240,
.intr_priority = 0
};
ESP_ERROR_CHECK(i2s_new_channel(&i2s_chan_cfg, NULL, &rx_handle));
i2s_tdm_config_t i2s_tdm_rx_conf = {
.clk_cfg = {
.clk_src = I2S_CLK_SRC_DEFAULT,
.sample_rate_hz = EXAMPLE_I2S_SAMPLE_RATE,
.mclk_multiple = EXAMPLE_I2S_MCLK_MULTIPLE,
.ext_clk_freq_hz = 0,
.bclk_div = 8
},
.slot_cfg = I2S_TDM_PHILIPS_SLOT_DEFAULT_CONFIG(EXAMPLE_I2S_SAMPLE_BITS, I2S_SLOT_MODE_MONO, EXAMPLE_I2S_TDM_SLOT_MASK),
.gpio_cfg = {
.mclk = EXAMPLE_I2S_MCK_IO,
.bclk = EXAMPLE_I2S_BCK_IO,
.ws = EXAMPLE_I2S_WS_IO,
.dout = I2S_GPIO_UNUSED,
.din = EXAMPLE_I2S_DI_IO,
.invert_flags = {
.mclk_inv = false,
.bclk_inv = false,
.ws_inv = false
}
},
};
ESP_ERROR_CHECK(i2s_channel_init_tdm_mode(rx_handle, &i2s_tdm_rx_conf));版本:
espressif/es7210: ^1.0.0
espressif/es8311: ^1.0.0
ESP-IDF v5.2.5