LS1021 UCC UART hardware handshake DTE-DTE

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

LS1021 UCC UART hardware handshake DTE-DTE

跳至解决方案
1,187 次查看
t_herbrecher
Contributor II

Hello together.

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.

Kind regards,

Timo

标签 (1)
0 项奖励
1 解答
965 次查看
alexander_yakov
NXP Employee
NXP Employee

Your understanding is correct - RTS output can not be used to drive remote side CTS input. Please use general purpose I/O pin for this purpose.


Have a great day,
Alexander
TIC

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

在原帖中查看解决方案

0 项奖励
2 回复数
966 次查看
alexander_yakov
NXP Employee
NXP Employee

Your understanding is correct - RTS output can not be used to drive remote side CTS input. Please use general purpose I/O pin for this purpose.


Have a great day,
Alexander
TIC

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 项奖励
965 次查看
t_herbrecher
Contributor II

Hello Alexander.

Thank you for the quick answer. I'll try the GPIO based solution.

Best regards,

Timo

0 项奖励