-
Notifications
You must be signed in to change notification settings - Fork 7.3k
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
ULP RISC-V RTC I2C doesn't work after esp_restart() (IDFGH-9065) #10468
Comments
@sudeep-mohanty - Can you take a look? |
Hi @schafon, |
The patch works perfectly. |
…r esp_restart() This commit fixes a bug wherein the RTC I2C peripheral got stuck after the main CPU performs a soft reset by using esp_restart(). This is because the RTC domain config registers for the RTC I2C domain are not cleared after the soft restart and hence need to be cleared manually while initializing the RTC I2C peripheral again. Closes #10468
Answers checklist.
IDF version.
v5.1-dev-2066-g7869f4e151-dirty
Operating System used.
macOS
How did you build your project?
Command line with idf.py
If you are using Windows, please specify command line type.
None
Development Kit.
ESP32-s2
Power Supply used.
USB
What is the expected behavior?
After software esp_restart() continue normal ULP I2C operation.
What is the actual behavior?
After a restart ulp will hang on: ulp_riscv_i2c_master_set_slave_reg_addr(reg_addr); OR ulp_riscv_i2c_master_read_from_device(data_out, 1);
and will not run again.
Steps to reproduce.
Debug Logs.
More Information.
I've tested this on esp32 s2 and esp32 s3, different types of dev boards and 1 custom board.
The text was updated successfully, but these errors were encountered: