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.

[参考译文] UCD3138064A:检查 UART 通信是否仍然正常

Guru**** 656470 points
Other Parts Discussed in Thread: UCD3138
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/988449/ucd3138064a-check-if-uart-communication-is-still-working

器件型号:UCD3138064A
主题中讨论的其他器件:UCD3138

大家好、

我的一位客户正在将 UCD3138用于其项目、他们需要在其系统上运行多个引导加载程序、最多可运行2000次以上。 在某些情况下、UCD3138将失去其 UART 功能、不会向内部管理 MCU 回复任何数据。  

客户询问是否有任何方法可以知道 UART 何时失去了其功能? 是否有任何标志或位可供他们参考以进行检查? 客户希望在 UART 失去功能时添加复位 UART 功能。  

请提供帮助建议。

谢谢!  

此致、
Alfred  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Alfred、

    UARTINTST 寄存 器中有几个位可用于指示 UART 通信期间发生的错误。

    请查看技术参考手册第465页中这些位的定义:

    https://www.ti.com/lit/pdf/sniu028

    希望这对您有所帮助。

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Yitzhak、

    以下是客户的反馈:

    我尝试使用调试当以下位不为0 (UART 中断状态寄存器(UARTINTST)位0、1、3、4、5)时、调试引脚将切换一次。

    当发生无应答的 UART 时、调试引脚不会切换。

    是否有任何其他原因导致 UART 模块失去功能?

    谢谢!  

    BR、

    Alfred

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Alfred、

    他们所面临的 UART 问题是否在室温下发生?

    重现此问题的容易程度如何? 它是否经常发生?

    是否有任何特定问题会引发该问题?

    UART 通信的波特率是多少?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Yitzhak、

    我收到了客户的反馈、他们已经解决了这个问题。 错误似乎是由于他们的内部管理 MCU 所致。 当它们刷新 MCU 时、不再发生错误。  

    谢谢!  

    此致、

    Alfred

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Yitzhak、

    即使客户已解决初始问题、我仍有以下问题:

    我检查了 UART 停止响应根本原因是我们的 UART 服务例程函数冲突。

    UCD3138 UART 模块仍然正确接收到字节。

     

    我找到了解决我们的服务例程功能冲突问题的解决方案。

    当我在函数处理 UART 服务器例程之前添加调试引脚时。

    UART 停止响应问题消失。

    因此、我认为解决这个问题只需要增加一些延迟。

     

    如果我知道这些代码使用了多少指令周期。

    我可以使用 NOP 来实现相同的延时时间。

     我只想知道下面部分中有多少指令周期。

     

     

    谢谢!  

    BR、

    Alfred

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Alfred、更改时序以解决问题通常不是一个真正的解决方案、而只是针对特定的测试和代码配置移动了一些东西。  另一项测试或代码轻微更改将导致问题再次出现。  通常、时序灵敏度表示中断中的某项与后台模式中的某项之间存在交互。  如果在两个位置都写入相同的变量、则可能会有不完整的写入。  还有其他可能。  有时可以通过读取代码来解决该问题、但通常需要切换 I/O 来判断发生了什么。  上述调试代码是处于中断模式还是后台模式?   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Alfred、根据其他信息、我认为这个问题已经解决、所以我要关闭这个主题。