ESP_32S3 NR16 I2S pin config problem

Vitalii_Bondarenko
Posts: 10
Joined: Fri Oct 25, 2024 8:49 am

ESP_32S3 NR16 I2S pin config problem

Postby Vitalii_Bondarenko » Wed Mar 19, 2025 7:30 pm

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?

Sprite
Espressif staff
Espressif staff
Posts: 10636
Joined: Thu Nov 26, 2015 4:08 am

Re: ESP_32S3 NR16 I2S pin config problem

Postby Sprite » Thu Mar 20, 2025 12:34 am

Those pins should work just fine indeed. What is the symptom you see when you try to use them?

MicroController
Posts: 2694
Joined: Mon Oct 17, 2022 7:38 pm
Location: Europe, Germany

Re: ESP_32S3 NR16 I2S pin config problem

Postby MicroController » Thu Mar 20, 2025 4:48 pm

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?

Sprite
Espressif staff
Espressif staff
Posts: 10636
Joined: Thu Nov 26, 2015 4:08 am

Re: ESP_32S3 NR16 I2S pin config problem

Postby Sprite » Fri Mar 21, 2025 1:58 am

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.

Who is online

Users browsing this forum: Baidu [Spider], meta-externalagent and 3 guests