Add uart flow control (take 2)#41
Open
robodchristian wants to merge 13 commits into
Open
Conversation
cc5f5f2 to
5f0bf44
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I isolated the code changes into a branch and started a new pull request.
This add 3 flow control modes:
RTSCTS - classic RS232 hardware flow control.
RS485 - RTS line goes high only when there is data to transmit (to enable a RS485 transmitter). The CTS line has to be looped back from RTS (this allows you to insert a delay so the transmitter can activate).
IRDA - Isn't a flow control mode, but I didn't want to waste a state. Enables IRDA encoding. The polarity is setup so it can be looped back to itself. It should work without glue logic with the transceiver listed in the code (but I haven't tested it).
There is a test case in the torture test. I've also done testing from python.