Chapter 4. Software framework
When the I2C of the ESP32 series chip is operating (especially in fast mode), spikes often occur on the data
lines, especially after the falling edge of the 8th/9th clock. Is this normal?
The spike on the data line at the 8th/9th clocks is caused by the I2C master-slave control handover. It is
a normal phenomenon and is mentioned in the I2C protocol.
How can I realize data are received by ESP32 series chips, which are used as the I2C master, only
after these data are processed by the slave? For example, when ESP32 chips read data through
i2c_master_read_to_device, the slave should return data immediately after receiving the command.
However, some slave devices wait for a while to return data after receiving the command.
This can be realized by dividing i2c_master_read_device into the following three steps:
1. Input commands and address: i2c_cmd_link_create_static >
i2c_master_start > i2c_master_write_byte > i2c_master_cmd_begin
> i2c_cmd_link_delete_static
2. Delay
3. Read data of the slave: i2c_cmd_link_create_static >
i2c_master_read > i2c_master_stop > i2c_master_cmd_begin >
i2c_cmd_link_delete_static
When using ESP32 series chip, can we congure GPIO32 and GPIO33 as I2C_SDA and I2C_SCL respec-
tively?
Yes. I2C pins of the ESP32 chip can be remapped by any available GPIOs. Please refer to “4.2
Peripheral Pin Congurations”of ESP32 Datasheet. If you do not need an external 32.768 KHz crystal,
you can use GPIO32 and GPIO33 as I2C pins.
4.4.5 Inter-IC Sound (I2S)
Does ESP32 support using crystal oscillator as the clock source of I2S?
No. Please go to ESP32 Technical Reference Manual to read about clock source congurations of I2S.
When working as the I2S master, does ESP32 support connection to the I2S slave that only has the three
signal lines, I2S_DATA, I2S_SCK, and I2S_WS?
Yes, but the connection to MCLK depends on the requirements of the codec chip on the other side.
Does the I2S interface of ESP32-C3 series chips support the PDM RX mode?
• In the software driver, the I2S interface of ESP32-C3 series chips does not support the PDM RX mode. Unlike
ESP32-S3, the PDM RX of ESP32-C3 does not have a module supporting converting from PDM to PCM,
which means the acquired data is in the RAW PDM format. The data in this format can’t be used directly in
most cases.
Espressif Systems 68
Submit Document Feedback
Release master