Value of RMT mem_block_symbols for proper DMA operation has changed between v5.1.1 and current master (IDFGH-11426) #12564
Labels
Resolution: NA
Issue resolution is unavailable
Status: Done
Issue is done internally
Type: Bug
bugs in IDF
Answers checklist.
IDF version.
v5.3-dev-280-gedc3b268a9
Espressif SoC revision.
ESP32-S3
Operating System used.
Linux
How did you build your project?
Command line with idf.py
If you are using Windows, please specify command line type.
None
Development Kit.
Custom Board
Power Supply used.
USB
What is the expected behavior?
I expected code that drives an LED strip and works with DMA on ESP-IDF v5.1.1 to work on the latest master.
What is the actual behavior?
Instead it illuminates random LEDs with random colors.
Steps to reproduce.
I encountered the problem with my existing code when I switched to the latest version of ESP-IDF master. It works in v5.1.1.
To better understand the problem, I created a simplified version of the ESP-IDF led_strip example and added
.with_dma = true
to the RMT TX channel configuration.This simplified version illustrates the problem:
Debug Logs.
No response
More Information.
The documentation for the RMT peripheral currently includes this description for
mem_block_symbols
:This implies to me that it should work with a lower value (even if it's not desirable due to efficiency concerns).
I found that I could resolve the problem by changing the
rmt_tx_channel_config_t::mem_block_symbols
from 64 to 1024.Is this change in behavior between v5.1.1 and the current master intentional, or a regression?
If intentional, I would recommend updating the documentation (and example) to better establish the importance of the role that
mem_block_symbols
plays in properwith_dma
operation, including information on how to select a reasonable value.The text was updated successfully, but these errors were encountered: