Other Parts Discussed in Thread: SYSCONFIG
Tool/software:
Hi,
In UART2LPF3.c I found there have hardware flow control elements, I want use this in data stream example.
how can I use it, is there have a sample ?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi,
To use UART flow control, you can enable it in SysConfig.
Only certain DIOs can support UART flow control (RTS and CTS), so you will need to plan your design accordingly.
The DIOs which support this are listed in the datasheet as UART0RTS and UART0CTS.
Note that in my example above, a launchpad board is assumed, and I use DIO21 for CTS and DIO8 for RTS. Both of these are also connected to the launchpad red/green LEDs, so those LED jumpers would need to be removed.
Thanks,
Toby
Hi Toby,
In your reply mentioned launchpad, is this RTS and CTS not support in product chip?
I checked my RGE configuration, there's no RTS and CTS pin mux to set.
I missed the flow control switch, now I got the RTS and CTS configure items.
Thank you.
Hi Toby,
I add the control, but the output pin not change it's voltage, even I send a 1024 bytes length data for hundreds times.
Is there need do more settings or call function anywhere?
Will need to investigate further.
Planning to provide an update within 5 business days.
This is expected behavior.
RTS output pin at low means that the UART peripheral is ready to receive bytes (i.e. room exists in the RX FIFO).
Because the RTS is always low, this means the UART RX is always ready to go. This is very likely since our device is using DMA to copy FIFO bytes to RAM.
This only affects the RX of the device.
For TX, the associated pin is CTS input. As long as CTS is low, then the device may perform UART TX.
You can check this by connecting CTS pin to GND.
For more details, please see "19.3.5 Flow Control" in the TRM: https://www.ti.com/lit/pdf/swcu193
I know how RTS/CTS works, but something not match the theory.
I set the initial value to high, catch voltage before start, expected result is "-_____", but I got a result is always high "------".
At what point in code are you checking the voltage? Is it before or after UART_open?
On my side I use DIO8 and see the output as always low (UART RX always ready).
For your DIO, can make sure you are capturing the right physical pin?
After I call UART_open on the default uartecho example with RTS on DIO8, I see DIO8 go low.