ESP32_DSP_I2S_SETUP
ESP32_DSP_I2S_SETUP copied to clipboard
Routing I2S1 CLK_OUT2 to GPIO1
Hi! I'm trying to figure out how to generate the MCLK for I2S1. Here is my idea, is this the right approach?
I'm not sure how to correctly assign the values to the PIN_CTRL register in order to generate both clocks.
/*
If you want to output clock for I2S0 to:
CLK_OUT1, then set PIN_CTRL[3:0] = 0x0;
CLK_OUT2, then set PIN_CTRL[3:0] = 0x0 and PIN_CTRL[7:4] = 0x0;
CLK_OUT3, then set PIN_CTRL[3:0] = 0x0 and PIN_CTRL[11:8] = 0x0.
*/
// I2S0 -> CLK_OUT1 -> GPIO0
REG_WRITE(PIN_CTRL, 0xFF0);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U, FUNC_GPIO0_CLK_OUT1);
/*
If you want to output clock for I2S1 to:
CLK_OUT1, then set PIN_CTRL[3:0] = 0xF;
CLK_OUT2, then set PIN_CTRL[3:0] = 0xF and PIN_CTRL[7:4] = 0x0;
CLK_OUT3, then set PIN_CTRL[3:0] = 0xF and PIN_CTRL[11:8] = 0x0. (R/W)
*/
// I2S1 -> CLK_OUT3 -> GPIO1
REG_WRITE(PIN_CTRL, 0x0FF);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0TXD_U, FUNC_U0TXD_CLK_OUT3);
Kindly include this and error will be solved #include "soc/io_mux_reg.h"