-
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
ESP32 RMT TX repeating first few items on loop (IDFGH-2579) #4664
Comments
Thanks for reporting and sorry for the slow turnaround. Sorry that we are now during the holiday of Chinese Lunar New Year. Will update to you when we are back, thanks. |
No problem! Happy New Year! |
Hi, @nickzoic Can you test the following code:
thanks !! |
I'm afraid that I didn't really understand your explanation, but I did notice that you disable the transmission-complete interrupt before turning on looping. I've just tried the same thing and the problem has gone away. I feel a bit stupid now as I was convinced that the behaviour looked like an interrupt triggering twice and then got distracted by discovering that the looping is hardware based. It didn't occur to me that the problem might be the hardware automatically looping and then the interrupt messing with the hardware afterwards! |
To be clear, I mean that the problem does not reside in the choice of It would be good to update the ESP-IDF Programming Guide to make it clear that looping doesn't work properly if the default interrupt handler is in place for TX-complete. Thanks for your help @koobest! |
That's great! I'll test it out, but it sounds like this will provide a solution to our original Micropython bug! |
Thanks for reporting, the issue has been fixed on our latest master, please help try and see whether the issue still happens, feel free to reopen if it still exists. Thanks. @nickzoic |
…y refactoring. After RMT driver refactor, two breaking change are introduced: 1. Users needs to call `rmt_driver_install` before `rmt_config`. 2. Do not support memory block count > 1, fix this two issues closes espressif#4664 closes espressif#4959
I'm running into this issue on IDF 3.3 branch. Can this be backported? |
Environment
git describe --tags
to find it):// v4.0-beta1 310beae
// also tested with v3.3 6ccb4cf
// xtensa-esp32-elf-gcc (crosstool-NG crosstool-ng-1.22.0-61-gab8375a) 5.2.0
Problem Description
When used in repeating mode, the RMT transmission "stutters", repeating the first few items where those items start within the first few microseconds.
This was originally discovered by @jonathanhogg as part of MicroPython/ESP32 but has been replicated in C code (attached below)
See extensive investigation at mattytrentini/micropython#11
Expected Behavior
Pulses should be sent as specified.
Actual Behavior
First few microseconds of pulses repeat at start of transmission.
The time window of the repeating sequence depends on CPU clock speed.
Steps to reproduce
Code to reproduce this issue
This file replaces the main.c in the esp-idf-template project:
https://gist.github.com/nickzoic/f552a4933e147481f9bafd63b4c245be
Debug Logs
(there should only be one wide pulse followed by 8 narrow pulses in each group)
Other items if possible
Attached: sdkconfig, main/main.c and build/app-template.elf in a zip file:
rmt-issue.zip
The text was updated successfully, but these errors were encountered: