Page 1 of 1

ESP_32S3 NR16 I2S pin config problem

Posted: Wed Mar 19, 2025 7:30 pm
by Vitalii_Bondarenko
I use platformio to work with ESP32-s3 NR16. IDF version 5.3.2.
When I configure I2S using these pins it works but I need to use other pins.
This config pin work:

Code: Select all

`#define PIN_I2S_0_DATA  GPIO_NUM_15  
#define PIN_I2S_0_WS    GPIO_NUM_16  
#define PIN_I2S_0_CLK   GPIO_NUM_7   `
But i need config I2S pin this:

Code: Select all

#define PIN_I2S_0_DATA GPIO_NUM_42
#define PIN_I2S_0_WS GPIO_NUM_39
#define PIN_I2S_0_CLK GPIO_NUM_41
In this case, it does not want to work. But there are no restrictions for these pins. I can assign any functions available through the GPIO matrix to these legs.

My cod for init I2S.

Code: Select all

void FnInitI2S_0(void)
{
    esp_err_t err;
    i2s_driver_config_t i2s_cfg;
    i2s_pin_config_t i2s_pin;
    I2S_DAC.I2S_DAC_RingBuff = xRingbufferCreate(6*1024, RINGBUF_TYPE_NOSPLIT);
    
    memset(&i2s_cfg, 0 ,sizeof(i2s_cfg));
    i2s_cfg.bits_per_sample =  I2S_BITS_PER_SAMPLE_16BIT;
    i2s_cfg.bits_per_chan = I2S_BITS_PER_CHAN_DEFAULT;
    i2s_cfg.channel_format  = I2S_CHANNEL_FMT_ALL_RIGHT;
    i2s_cfg.dma_buf_count = 8;
    i2s_cfg.dma_buf_len  = 64;
    i2s_cfg.mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_TX);
    i2s_cfg.sample_rate = 8000;
    i2s_cfg.communication_format = I2S_COMM_FORMAT_STAND_I2S;
    i2s_cfg.tx_desc_auto_clear  = false;

    i2s_pin.bck_io_num = PIN_I2S_0_CLK;
    i2s_pin.data_out_num = PIN_I2S_0_DATA;
    i2s_pin.ws_io_num = PIN_I2S_0_WS;
    i2s_pin.data_in_num = I2S_PIN_NO_CHANGE;
    i2s_pin.mck_io_num =I2S_PIN_NO_CHANGE;
 
    err = i2s_driver_install(I2S_0_DAC, &i2s_cfg, 0, NULL);
    if(err!=ESP_OK) ESP_LOGE(TAG,"ERROR_INSTAL_I2S0");
    err = i2s_set_pin(I2S_0_DAC, &i2s_pin);
    if(err!=ESP_OK) ESP_LOGE(TAG,"ERROR_INSTAL_I2S0");
    else   ESP_LOGE(TAG,"I2S0_START_OK");        
}
I looked at the ESP datasheet, but I didn't see any restrictions on pin assignment for the I2S interface.

Please tell me what the problem is. Which pins are available for the I2S interface?

Re: ESP_32S3 NR16 I2S pin config problem

Posted: Thu Mar 20, 2025 12:34 am
by Sprite
Those pins should work just fine indeed. What is the symptom you see when you try to use them?

Re: ESP_32S3 NR16 I2S pin config problem

Posted: Thu Mar 20, 2025 4:48 pm
by MicroController
Pins 39 through 42 can be used by the external the JTAG interface. Any chance that's interfering with your intended use of the pins?

Re: ESP_32S3 NR16 I2S pin config problem

Posted: Fri Mar 21, 2025 1:58 am
by Sprite
Note that that interference would have to be external to the ESP32. On the software side, reconfiguring the JTAG pins for I2S use should have disabled the JTAG functionality.