-
Notifications
You must be signed in to change notification settings - Fork 536
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
ESP8266 UART RX timeout feature issues #379
Comments
The TOUT feature of UART is also available on ESP8266 and should work the same way as on ESP32 if I remember correctly. Some targets have some different aspects related to this feature. One aspect is how the unity of TOUT feature is defined. Could you provide more information about your issue.
Thanks. |
Here's what you requested.
The RX sequence doesn't end because no RX timeout interrupt is received.
I'm compiling in Arduino 1.8.19, just open the serial monitor to see the log output. master branch, tag 4.0.1: |
PS you might want to put a resistor between pins 2 & 3 rather than a direct short. |
Thank you for the update.
Ok). Unfortunately, don't have the opportunity to reproduce your results now.
Yes, this is correct and I can confirm this. You need to keep at least one byte in the FIFO to be able to trigger TOUT interrupt. This is how the feature works on ESP32. The |
This appears to be a hardware bug rather than a feature.
So:
|
So:
I understand your issue, but I will try to reproduce this later. I would expect the below sequences to receive the DMX frame should work (simplified). The bit names from official ESP32 TRM are used.
Interrupt handler of UART receiver:
|
Thanks for the detailed response. I have been able to finish my DMX driver by leaving a byte in the RX FIFO and only emptying when necessary thanks to your confirmation. It works very similarly to your explanation. I just wanted you and others to be aware of the other TOUT issues. |
Thank you for update. Initially this aspect of TOUT feature was found by test during update of the UART driver. From my side I can get some details about TOUT feature from digital team and then clarify this in the documentation. Once the bug is reproducible and confirmed then we can talk about possible solution or fix. |
I've had experience of faulty UART implementations in the past so is not a surprise to me. However it would be great if the UART could be fixed in ESP32 since at some point my project will be ported and it would be great if I didn't have to work around hardware issues. I will understand if ESP8266 is too near its end of life to be fixed. And since my ISR now works reliably it doesn't matter now anyway. |
I'm having issues with ESP8266 UART RX timeout feature. I found the post below mentioning it only works on ESP32 with 1 byte in the RX FIFO.
Is this the same with ESP8266?
I only get the issue with frames of certain lengths, the rest of the time it is working. This would explain it!
Originally posted by @alisitsyn in espressif/esp-idf#8369 (comment)
The text was updated successfully, but these errors were encountered: