ESP32_DSP_I2S_SETUP icon indicating copy to clipboard operation
ESP32_DSP_I2S_SETUP copied to clipboard

Routing I2S1 CLK_OUT2 to GPIO1

Open AyrtonEstrella opened this issue 3 years ago • 1 comments

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);

AyrtonEstrella avatar Aug 27 '21 21:08 AyrtonEstrella

Kindly include this and error will be solved #include "soc/io_mux_reg.h"

shravanish avatar Jul 01 '22 07:07 shravanish