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?
Who is online
Users browsing this forum: Baidu [Spider], Bing [Bot], markkuk and 300 guests