Hi,
am I correct that, there are no dedicated CTS/RTS pins to enable hardware-based data flow control?
So, I have to implement data flow control by myself using two GPIOs?
UART data flow control on netduino Mini
Started by awaiK, Sep 20 2012 01:16 PM
2 replies to this topic
#1
Posted 20 September 2012 - 01:16 PM
#2
Posted 20 September 2012 - 05:07 PM
Hi,
am I correct that, there are no dedicated CTS/RTS pins to enable hardware-based data flow control?
So, I have to implement data flow control by myself using two GPIOs?
Using GPIO's (or any out-of-band signal) IS hardware flow control and, yes, you would have to implement it, but you have to implement (or use already implemented) RS232 code anyway. Most UARTs don't really know about CTS/RTS and just raise an interrupt for your CPU to deal with it. In that usage the UART just acts as a pass-through for the CTS/RTS signal coming from the other terminal.
You could write your own native RS232 routines with out-of-band flow control to replace the current implementation, or implement the flow control from managed code. The former is a much more involved process, but gives you the most performance.
I forgot to add - if you do use RTS/CTS and you are using an RS232 connection, you MUST drop the RTS/CTS levels down to +3vdc otherwise you might damage whatever GPIO pin you are using since you will be applying +-12vdc to that pin. You can cheat and just use another 232 level adjuster like the ADM3101EACPZ already being used (or go old school with the max232 chip), or you could design a biasing circuit with an npn that triggers on the RS232 signal but only swings from 0 to 3vdc.
#3
Posted 22 September 2012 - 03:18 PM
Thanks for the explanation.
For now I connect the target device's CTS and RTS pins together to bypass the hardware handshake.
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users