-
Notifications
You must be signed in to change notification settings - Fork 7.2k
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
Initializing both LCD and Camera causes Interrupt wdt timeout (IDFGH-13426) #14332
Comments
@pkvarnfors Hi, Thank you for reporting this issue. We have already dealt with a similar issue here, so could you check if the ESP32-camera you are currently using includes this change? |
Hi, The changes referenced in your comment is included in our code which uses SDK v5.3 and esp_camera 2.0.10. |
The changes here will add some modifications when |
Yes, it is. I have tested with different combinations of LCD and CAM IRAM_SAFE, and also to initialize the camera and lcd in different order. When initilizing the camera first and then the lcd, the camera init works and the WDT trigger in the lcd init, but after the panic reboot the WDT triggers in the camera init. The same if I use the hardware reset, it is just after a power cycle that I get the camera init to work.
Attached is the complete VS Code project where the camera is running in its own task on CPU1. |
Answers checklist.
IDF version.
v5,3
Espressif SoC revision.
ESP32-S3 (QFN56) (revision v0.1)
Operating System used.
Windows
How did you build your project?
VS Code IDE
If you are using Windows, please specify command line type.
PowerShell
Development Kit.
ESP32-S3-DevKitC-1 v1.1
Power Supply used.
USB
What is the expected behavior?
Initializing both LCD using esp_lcd and then Camera using esp_camera should result in working LCD and Camera without errors during initialization.
What is the actual behavior?
After initializing the LCD using esp_lcd with 8-bit i8080 and then initializing esp_camera with an OV2640 a WDT Intrerrupt Timeout occurs. This happens when the ISR for camera VSYNC is installed in ll_cam_init_isr()
When running only the LCD it works and also when running only the camera it also works.
When initializing the camera first and then the LCD the WDT happens during initialzing the LCD.
Steps to reproduce.
The WDT happens during initialization of the periphials. The attached code should trigger the error during init_camera().
Debug Logs.
More Information.
We have tried with different software and hardware setups with the same result, including standard devkits and a custom board.
The example used above is used with a ESP32-S3-DevkitC-1 v1.1, a NT35510 LCD driver in 8-bit i8080 mode and a OV2640 Camera connected via a ESP-LyraP-Cam v1.1 board (from a Kaluga kit).
We have also tried to run the LCD and Camera on different CPUs but with no difference.
I have traced the shard ISR handler and see different behavior with and without initializing the LCD before the camera.
The values in the log below are:
ISR Interrupt status register: Status register value - Status register mask - Shared interrupt enabled ## Triggered if Mask and Value matches.
Just initializing the camera (works):
Initializing LCD first and then Camera (gives Interrupt WDT Timeout):
...
And then Guru Meditation Error: Core 0 panic'ed (Interrupt wdt timeout on CPU0)
The text was updated successfully, but these errors were encountered: