imx6 uart RTS_B change not detected

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

imx6 uart RTS_B change not detected

ソリューションへジャンプ
1,764件の閲覧回数
ycgeng
Contributor I

Hi,

 

imx communicty!

 

I am using imx6q processor to connect CC2565 BT module via its uart port. hardware flow control is enabled.

 

I encountered an uart rts interrupt detected issue, which block my uart interface.

By polling UARTx_USR1 , it is clear that RTSS has changed, however, RTSD is not set, so interrupt is not set, hence the program to wakeup uart do not get called.

 

In the attached logfile.

 

Line 85:  RTS_B changed to inactive interrupt is detected.

Line 88:  uart tx is stopped.

Line 93:  Confirm that RTSD is cleared before quit imx_int, and RTSS is still inactive.

Line 116: Checked that RTSS is active by read USR1, but RTSD is not set. This is the problem.

 

And between Line 93 and Line 116, No operation on RTSD such as interrupt clear are observed.

 

What could be the problem? Looks like a hardware bug to me.

 

Please confirm this or point me out what could be wrong.

 

Best regards,

Yunchuan

Original Attachment has been moved to: uart_rts_interrrupt_missed.log.zip

ラベル(2)
0 件の賞賛
返信
1 解決策
1,463件の閲覧回数
ycgeng
Contributor I

Hi,

I use linux. But I found the reason myself already.

It is because software reset are taken asynchronously with RTS_B arrival. It happens when the uart module are in software reset status, and RTS_B change its state, then the detection is missed.

I work around this by checking RTSS status every time after Software reset(in imx_flush_buffer function). Now the system works fine.

Thanks all the same.

Best regards,

Yunchuan

元の投稿で解決策を見る

0 件の賞賛
返信
2 返答(返信)
1,463件の閲覧回数
alejandrolozan1
NXP Employee
NXP Employee

Hi,

Are you using Linux? Which version? Can you share the register configuration?

Best Regards,

Alejandro

0 件の賞賛
返信
1,464件の閲覧回数
ycgeng
Contributor I

Hi,

I use linux. But I found the reason myself already.

It is because software reset are taken asynchronously with RTS_B arrival. It happens when the uart module are in software reset status, and RTS_B change its state, then the detection is missed.

I work around this by checking RTSS status every time after Software reset(in imx_flush_buffer function). Now the system works fine.

Thanks all the same.

Best regards,

Yunchuan

0 件の賞賛
返信