Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ESP32-S2: v5.3.1 and later: I2C legacy driver clock speed is 80 times slower than requested (IDFGH-13739) #14603

Open
3 tasks done
dhalbert opened this issue Sep 18, 2024 · 0 comments
Assignees
Labels
Status: Opened Issue is new Type: Bug bugs in IDF

Comments

@dhalbert
Copy link

Answers checklist.

  • I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
  • I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
  • I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.

v5.4-dev-3023-g3c99557eee

Espressif SoC revision.

ESP32-S2 (revision v0.0)

Operating System used.

Linux

How did you build your project?

Command line with idf.py

If you are using Windows, please specify command line type.

None

Development Kit.

Adafruit Metro ESP32-S2 (uses ESP32-S2-WROVER)

Power Supply used.

USB

What is the expected behavior?

When using the legacy I2C driver in ESP-IDF v5.3.1 and the latest master (as above), the I2C clock frequency should be measurable as 100 kHz, if that frequency is requested.

What is the actual behavior?

Instead the I2C clock frequency is 1.25 kHz (a factor of 80 less), as measured by a Saleae.
image

Steps to reproduce.

To test, I used an OLD version of examples/peripherals/i2c/i2c_tools/ that uses the legacy I2C driver copied from esp-idf checked out to v5.2.2: https://github.com/espressif/esp-idf/tree/v5.2.2/examples/peripherals/i2c/i2c_tools. To verify that it's using the legacy driver, look at i2c_tools/main/cmd_i2ctools.c and verify it's doing #include "driver/i2c.h" (the legacy driver), NOT #include "driver/i2c_master.h" (the new driver).

Compile this OLD version of i2c_tools (v5.2.2) with a newer version of the ESP-IDF. I used both v5.3.1 and v5.4-dev-3023-g3c99557eee.

In both cases the Saleae trace showed 1.25 kHz, as shown in the screenshot above.

If I try the NEW version of i2c_tools, the trace shows the expected clock frequency of 100 kHz. And if It try the OLD version of i2c_tools on v5.2.2, it also shows 100 kHz.

I have tested on both ESP32-S2 and ESP32-S3. This problem occurs only on ESP32-S2. ESP32-S3 is fine.

Debug Logs.

There's no crash. Here's the test I used to while recording with the Saleae. The prompt is `i2c-tools-OLD` so I can confirm I'm running the right version:

i2c-tools-OLD> i2cconfig --sda=33 --scl=34
i2c-tools-OLD> i2cdetect
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00: 00 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- 44 -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 


### More Information.

This problem arose due to an issue filed on on Adafruit CircuitPython: https://github.com/adafruit/circuitpython/issues/9561.

The issue didn't arise with CircuitPython 9.1.4, which uses ESP-IDF v5.2.2.
It did arise with CircuitPython 9.2.0-beta.0, which uses ESP-IDF v5.3.1.

I also tested requesting an I2C bus speed of 400 kHz, and it measured as 5 kHz, again, 80 times less.
@dhalbert dhalbert added the Type: Bug bugs in IDF label Sep 18, 2024
@espressif-bot espressif-bot added the Status: Opened Issue is new label Sep 18, 2024
@github-actions github-actions bot changed the title ESP32-S2: v5.3.1 and later: I2C legacy driver clock speed is 80 times slower than requested ESP32-S2: v5.3.1 and later: I2C legacy driver clock speed is 80 times slower than requested (IDFGH-13739) Sep 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Opened Issue is new Type: Bug bugs in IDF
Projects
None yet
Development

No branches or pull requests

3 participants