Skip to content
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

Open
wants to merge 19 commits into
base: master
Choose a base branch
from
Open

Conversation

dracir9
Copy link
Contributor

@dracir9 dracir9 commented Aug 22, 2023

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.

@Bodmer
Copy link
Owner

Bodmer commented Dec 7, 2023

Thanks but I think more testing is needed and the updates are quite extensive. I will add to the long TODO list.

@hemangjoshi37a
Copy link

here what does DMA means ?

@dracir9
Copy link
Contributor Author

dracir9 commented Feb 9, 2024

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.
The downside is that can be tricky to configure and generate confusing errors if not handled correctly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants