This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Part Number: MSP430F6721
We have two systems (A & B) that communicate with each other via UART. System A is built around MSP430F6721, system B is built around either MSP430FR2532 or Arm M0+ MCUs from NXP/STM32. MSP430FR2532 based system B works perfectly fine with system A. However, Arm M0 based System B somehow doesn't work well. After varying amount of time, from days to weeks, some System B will seem to become non-responsive. Power cycle system B doesn't make it responsive again. But power cycle System A does the trick. RXD, TXD, RTS and CTS pins are all used to interface system A & B.
What could go wrong in such setup? As a temporal solution, we could reset system A if system B becomes non-responsive, hopefully that will work. but it is still nice to know the underline causes.
Edit: by non-responsive, I mean System A doesn't receive response from B after sending request to it while other parts of A like other UART, LCD all work just fine. Since power cycle B doesn't solve the problem while power cycle A does, I assume A either cannot send or receive communication from B.
Thanks in advance.
Where there is a will,there is a way.
In reply to Zhiyong Li (FT):
We are glad that we were able to resolve this issue, and will now proceed to close this thread.
If you have further questions related to this thread, you may click "Ask a related question" below. The newly created question will be automatically linked to this question.
Could be a RTS and CTS deadlock .
In reply to Peter Dvorak:
Could you elaborate this a little more? I assume such deadlock involves both A & B, therefore power cycle B or disconnect/reconnect B to A would break such deadlock.
This deadlock is when both sides are in the DO NOT SEND DATA state.
A logic analyzer like Salae is helpful here
Pulled one System A that is acting this from field. UART TX works just fine, but MSP430 doesn't respond to input from B on RX line. After a watchdog caused reset, System A starts to work fine again. What could cause MSP430 to not process UART RX? RX interrupt is not set?
Update: the problem is caused by a bug. In certain rare situation, UART RX on MSP430 can be disabled by code forever. The reason we only started to see the problem when interfacing with Arm M0 MCUs is the implementation is different from MSP430FR2532, therefore makes the bug easier to manifest itself. The problem has nothing to do with hardware difference of M0 in general from MSP430.
Thanks every for participating the discussion.
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.