-
Notifications
You must be signed in to change notification settings - Fork 7.4k
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
The ESP32-P4 encountered an error while running the example MIPI DSI ILI9881C screen driver. (IDFGH-14356) #15137
Comments
Hi @Llgok Thanks for your report, we will look into this issue |
Shorten the title. Orignal title: |
esp_lcd_panel_io_tx_param
function got stuck during the transmission of the vendor_specific_init_default
initialization code, continuously triggering the watchdog timer.
Hi @Llgok I connected my ILI9881C LCD but didn't reproduce your issue.
I'm on the IDF master branch, test with the Maybe you can try to upgrade the ili9881c component to e.g. |
@suda-morris |
@Llgok yes, if you didn't connect any MIPI LCD during initialization, then the error you met is as expected. Every command sent from MIPI host will wait for an ACK from the device. |
@suda-morris
但是使用 |
I have identified the cause of the issue. It is necessary to add several timeout judgment code segments under the function |
Answers checklist.
IDF version.
I have tried versions v5.3.2, v5.4.0, and the master branch v5.5.0.
Espressif SoC revision.
ESP32P4
Operating System used.
Windows
How did you build your project?
VS Code IDE
If you are using Windows, please specify command line type.
None
Development Kit.
The ESP32-P4-Function-EV-Board-v1.4 board and the ESP32P4 board that I designed myself.
Power Supply used.
USB
What is the expected behavior?
Screen initialization -> Execute LVGL task
What is the actual behavior?
The screen failed to initialize successfully; the code is stuck at the position of the
esp_lcd_panel_io_tx_param
function initialization. It seems thatesp_lcd_panel_io_tx_param
can only send initialization command codes consecutively up to 17 times. Any attempts beyond 17 times will cause the system to get stuck and continuously trigger a watchdog.Steps to reproduce.
Select MIPI LCD model
screen type in the SDK configuration editor to ILI9881CDebug Logs.
More Information.
In the
esp_lcd_ili9881c.c
file, if you comment out the code related to theesp_lcd_panel_io_tx_param
function in thestatic esp_err_t panel_ili9881c_init(esp_lcd_panel_t *panel)
function on line 366, the program will no longer get stuck and trigger the watchdog. After testing, it was found that the program gets stuck on the 17th use of theesp_lcd_panel_io_tx_param
function. Upon opening the internal implementation of the function, it seems that commenting out the linemipi_dsi_host_ll_gen_set_packet_header(hal->host, vc, dt, pkt_hdr_msb, pkt_hdr_lsb);
on line 160 in themipi_dsi_hal.c
file also prevents the program from getting stuck.The text was updated successfully, but these errors were encountered: