This is confusing.For the configuration of I2S0 peripheral clock output: When PIN_CTRL[3:0] = 0x0, select and
output module clock on the CLK_OUT1 in the IO_MUX Pad Summary;
When PIN_CTRL[3:0] = 0x0 and PIN_CTRL[7:4] = 0x0, select and output module clock on the
CLK_OUT2 in the IO_MUX Pad Summary;
When PIN_CTRL[3:0] = 0x0 and PIN_CTRL[11:8] = 0x0; select and output module clock on the
CLK_OUT3 in the IO_MUX Pad Summary.
For the configuration of I2S1 peripheral clock output: When PIN_CTRL[3:0] = 0xF, select and
output module clock on CLK_OUT1-3. (R/W)
Technical Reference I2S Clock config section is confusing
Technical Reference I2S Clock config section is confusing
Re: [Documentation Release] ESP32 Technical Reference
WiFive wrote:This is confusing.For the configuration of I2S0 peripheral clock output: When PIN_CTRL[3:0] = 0x0, select and
output module clock on the CLK_OUT1 in the IO_MUX Pad Summary;
When PIN_CTRL[3:0] = 0x0 and PIN_CTRL[7:4] = 0x0, select and output module clock on the
CLK_OUT2 in the IO_MUX Pad Summary;
When PIN_CTRL[3:0] = 0x0 and PIN_CTRL[11:8] = 0x0; select and output module clock on the
CLK_OUT3 in the IO_MUX Pad Summary.
For the configuration of I2S1 peripheral clock output: When PIN_CTRL[3:0] = 0xF, select and
output module clock on CLK_OUT1-3. (R/W)
if you read between the lines:
( without warranty )
For the configuration of I2S0 peripheral clock output:
When PIN_CTRL[3:0] = 0x0
select and output module clock on the CLK_OUT1 in the IO_MUX Pad Summary;
means output clock: CLK_OUT1
When PIN_CTRL[3:0] = 0x0 and PIN_CTRL[7:4] = 0x0
select and output module clock on the CLK_OUT2 in the IO_MUX Pad Summary;
means output clock: CLK_OUT2
When PIN_CTRL[3:0] = 0x0 and PIN_CTRL[11:8] = 0x0
select and output module clock on the CLK_OUT3 in the IO_MUX Pad Summary.
means output clock: CLK_OUT3
For the configuration of I2S1 peripheral clock output:
When PIN_CTRL[3:0] = 0xF
select and output module clock on CLK_OUT1-3. (R/W)
means output clock: CLK_OUT1 CLK_OUT2 CLK_OUT3
one thing is not clear: (R/W)
means perhabs we can read ( check ) and write ( set ) on the register
But to search for a logical connection in register pins would be futile
I'm not in the i2s at the moment, i am waiting for the pSRAM module then start i2s
best wishes
rudi
-------------------------------------
love it, change it or leave it.
-------------------------------------
問候飛出去的朋友遍全球魯迪
love it, change it or leave it.
-------------------------------------
問候飛出去的朋友遍全球魯迪
Re: [Documentation Release] ESP32 Technical Reference
Still confusing in color.rudi ;-) wrote:
if you read between the lines:
Re: Technical Reference I2S Clock config section is confusing
It sort of feels like getting the I2S peripheral clock out to feed the Master Clock input of an I2S DAC boils down to
and then you get the clock on GPIO0.
Sound right?
It will be few days before I can actually try it, but I thought I'd check-in on this thread.
Code: Select all
PIN_FUNC_SELECT(PIN_CTRL, CLK_OUT1_S);
Sound right?
It will be few days before I can actually try it, but I thought I'd check-in on this thread.
Re: Technical Reference I2S Clock config section is confusing
Section has not been updated.
- iot-bits.com
- Posts: 25
- Joined: Wed Dec 21, 2016 6:14 am
- Location: India
- Contact:
Re: Technical Reference I2S Clock config section is confusing
Here are settings that work (I used these to play 96kHz 24 bps stereo audio via a codec):
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
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
The rest of the bits are not documented, so should be treated as reserved.
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
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
The rest of the bits are not documented, so should be treated as reserved.
- Pratik
Just another hobbyist and consultant
Just another hobbyist and consultant
Re: Technical Reference I2S Clock config section is confusing
Thanks, so bits that are not set to 0 should be set to 1? All 3 nybbles should be either 0 or F?
How do you output I2S0 clock on CLK_OUT1 and I2S1 clock on CLK_OUT2? Or you can only route one clock to gpio matrix?
How do you output I2S0 clock on CLK_OUT1 and I2S1 clock on CLK_OUT2? Or you can only route one clock to gpio matrix?
Re: Technical Reference I2S Clock config section is confusing
Code: Select all
PIN_FUNC_SELECT(PIN_CTRL, CLK_OUT1_S);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U, FUNC_GPIO0_CLK_OUT1);
Re: Technical Reference I2S Clock config section is confusing
I dont think that is a proper call and maybe luck if it worked the way you wanted.RoyceP wrote:Code: Select all
PIN_FUNC_SELECT(PIN_CTRL, CLK_OUT1_S);
Re: Technical Reference I2S Clock config section is confusing
io_mux_reg.h, beginning at line 115, through at least line 131, suggest to me that the call is proper.
Who is online
Users browsing this forum: No registered users and 15 guests