imx6 uart RTS_B change not detected

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

imx6 uart RTS_B change not detected

Jump to solution
977 Views
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

Labels (2)
0 Kudos
1 Solution
676 Views
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

View solution in original post

0 Kudos
2 Replies
676 Views
alejandrolozan1
NXP Employee
NXP Employee

Hi,

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

Best Regards,

Alejandro

0 Kudos
677 Views
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 Kudos