Im using the RMT peripheral to bitbang a mult-master single-wire databus that uses CSMA/NDA to control arbitration and prevent collisions if two nodes attempt to Tx simultaneously.
I have it working for Tx/Rx, but Im having trouble with how to setup bus idle verification.
The End-Of-Frame marker for a data message is a ~300uS low level on the data line. So if the bus line has been at a low level for >300uS, the bus is considered idle and any node is free to start transmitting.
Is it possible to setup some sort of high-resolution timer on the Rx GPIO of the RMT peripheral? So when my code wants to queue a message for transmitting, the driver first looks at the Rx GPIO, and if its "low", it starts a timer...then if >300uS has elapsed and the Rx GPIO is still registering "low", it knows the bus is idle and then it can immediately begin the RMT Tx process.
Any ideas?
Check RMT Rx level before RMT Tx?
Jump to
- English Forum
- Explore
- News
- General Discussion
- FAQ
- Documentation
- Documentation
- Sample Code
- Discussion Forum
- Hardware
- ESP-IDF
- ESP-BOX
- ESP-ADF
- ESP-MDF
- ESP-WHO
- ESP-SkaiNet
- ESP32 Arduino
- IDEs for ESP-IDF
- ESP-AT
- ESP IoT Solution
- ESP RainMaker
- Rust
- ESP8266
- Report Bugs
- Showcase
- Chinese Forum 中文社区
- 活动区
- 乐鑫活动专区
- 讨论区
- 全国大学生物联网设计竞赛乐鑫答疑专区
- ESP-IDF 中文讨论版
- 《ESP32-C3 物联网工程开发实战》书籍讨论版
- 中文文档讨论版
- ESP-AT 中文讨论版
- ESP-BOX 中文讨论版
- ESP IoT Solution 中文讨论版
- ESP-ADF 中文讨论版
- ESP Mesh 中文讨论版
- ESP Cloud 中文讨论版
- ESP-WHO 中文讨论版
- ESP-SkaiNet 中文讨论版
- ESP 生产支持讨论版
- 硬件问题讨论
- 项目展示
Who is online
Users browsing this forum: markkuk and 334 guests
- All times are UTC
- Top
- Delete cookies
About Us
Espressif Systems is a fabless semiconductor company providing cutting-edge low power WiFi SoCs and wireless solutions for wireless communications and Internet of Things applications. ESP8266EX and ESP32 are some of our products.