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
Solved! Go to Solution.
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
Hi,
Are you using Linux? Which version? Can you share the register configuration?
Best Regards,
Alejandro
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