-
Notifications
You must be signed in to change notification settings - Fork 1k
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 Parallel DMA support #2809
base: master
Are you sure you want to change the base?
Conversation
Thanks but I think more testing is needed and the updates are quite extensive. I will add to the long TODO list. |
here what does DMA means ? |
DMA stands for Direct Memory Access. It is a feature that enables data to be transferred without the intervention of the CPU. The goal is to let the DMA module transfer the color data from the ESP32 to the TFT without blocking your code. This results in faster execution and faster screen drawing. |
Added support for DMA transfers with 8-bit parallel bus.
Tested with ESP32-S3 and ILI9488 using Arduino IDE, PlatformIO and ESP-IDF. It should work with ESP32-S2 as well. All other displays using 8-bit bus should also be compatible unless they use a completely different protocol.
More testing is probably needed but I don't have more displays at my disposal.
LIMITATIONS: Using DMA with a parallel bus implies that all the bus GPIO are handled by hardware. Therefore, once DMA is started by calling initDMA() DO NOT use any non-DMA functions that write to the display until deInitDMA() function is called. Otherwise, it will cause undefined behaviour.