- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am wondering about the Request To Send (RTS) output from the UART component.
The data sheet says it is de-asserted when the input buffer is full, but it doesn't say when it is re-asserted; does anyone know?
This is related to a bigger issue that may warrent an enhancement to the UART Component...
If the device that I am trying to hold off still sends the byte in progress, or maybe even a couple more, before it can honor the RTS line, then I miss those bytes. For an experiment I am going to manually control RTS to de-assert when the buffer is 80% full.
If the device that I am receiving from has some delay before starting again (assuming RTS is re-asserted when the buffer is empty) then I timeout on no data input. For my experiment I will re-assert RTS when the buffer is 20% full.
Any thoughts on this will be appreciated.
- Jim
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jim-
In UART datasheet on page 46 you can see in the timing-diagrams that rts_n is directly coupled to FIFO full and it will be de-asserted as soon as there is room in the buffer for at least one byte.
Since you are in PSoC5 world it is easy to gate the rts_n signal with some logic and a control register to meet the timing with the needs of your sending device.
Bob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jim-
In UART datasheet on page 46 you can see in the timing-diagrams that rts_n is directly coupled to FIFO full and it will be de-asserted as soon as there is room in the buffer for at least one byte.
Since you are in PSoC5 world it is easy to gate the rts_n signal with some logic and a control register to meet the timing with the needs of your sending device.
Bob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for the note, Bob.
What I did was to gate the signal like you suggeste, but controlled by software; when the buffer gets almost full, I tell the sender to stop.
This works great, but after some more playing it appears that I was having another problem that was the true source of difficulty, and maybe I don't need the software control.
However, it works so nice the way it is, I am disinclined to change it... 😉
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for your feedback, you are always welcome.
Bob