I'm trying to use the UCC UART of the LS1021 QUICC engine to communicate in DTE mode with another board also working as DTE. But unfortunately hardware handshaking does not work as expected in a DTE-DTE communication.
In DTE-DTE connection mode the both communication partners should assert the RTS signal as long as data could be received (input buffer could accept more data). The status of this signal could be read on the other side on the CTS input. When input buffer is going to be almost full RTS should be deasserted and the communication partner stops sending data.
But the UCC UART only asserts the RTS signal when there is data to send. This behaviour is typically for DTE-DCE connection mode where the DTE signalizes that there is data to send to the DCE by activating RTS and the DCE responds with the activation of CTS if the data could be transferred to the DCE.
I tried setting GUMR[RTSM]=1 but this only activates the RTS line when the device is opened without working flow control (RTS does not become inactive when buffers are full). I thought about a software workaround that sets GUMR[RTSM]=0 when internal buffers are full and GUMR[RTSM]=1 otherwise. But that is not a valid solution because the RTS signal is pulsed when data is sent when GUMR[RTSM]=0 regardless of the current buffer state. So a valid flow control could not be achieved.
Has anybody managed to change the handshaking behaviour accordingly for DTE-DTE mode? Have I missed some configuration bits? Is there a valid QUICC microcode out there which fixes this problem?
Thank you for your statements.