2021-12-26 09:31 AM
Hello everyone,
Objective : Send pixel data to LCD module using DSI-HOST on APB command mode.
What I can do :
+ Read the LCD module's GRAM content ..
+ Send basic commands like Turn ON / OFF the Display, Pixels, Sleep IN / OUT ..
+ Send long write commands to update some GRAM content.
+ Update the whole GRAM content 100 pixels at a time (super slow).
The Challenge :
- I can't send long write commands with payloads of more than ~350 Bytes (350/3 pixels).
- Datasheets of both the MCU and the LCD module clearly mention that payload can be as long as 65536 bytes. But whenever I try to send a payload that's longer than 350 bytes, I get overrun flags and transmission fail until the next payload is loaded to FIFO again.
=> Does anyone know why that is ? (350 bytes = OK, more than that is NOK).
Context :
- MCU : STM32F469
- LCD module : OTM8009A
Thank you
Solved! Go to Solution.
2022-02-18 06:25 AM
Hello again,
Ok, I think the issue is caused by the size of the payload FIFO. I have reason to believe that its size is limited to 256 bytes.
I managed to partially solve the issue by modifying the HAL driver.
Now I force it to wait for FIFO empty flag to go up "DSI_GPSR_PWRFE" before sending the next payload. Otherwise I always get FIFO overrun interrupt.
Screen refresh is 3x faster compared to what I had before, but still not fast enough.
This made me come to the following realization : I have reached the limits of screen refresh using APB Command mode.
I'll now be moving on to the next step : Video mode through LTDC.
2022-02-18 06:25 AM
Hello again,
Ok, I think the issue is caused by the size of the payload FIFO. I have reason to believe that its size is limited to 256 bytes.
I managed to partially solve the issue by modifying the HAL driver.
Now I force it to wait for FIFO empty flag to go up "DSI_GPSR_PWRFE" before sending the next payload. Otherwise I always get FIFO overrun interrupt.
Screen refresh is 3x faster compared to what I had before, but still not fast enough.
This made me come to the following realization : I have reached the limits of screen refresh using APB Command mode.
I'll now be moving on to the next step : Video mode through LTDC.