主题中讨论的其他器件:UCD3138
大家好、
我的一位客户正在将 UCD3138用于其项目、他们需要在其系统上运行多个引导加载程序、最多可运行2000次以上。 在某些情况下、UCD3138将失去其 UART 功能、不会向内部管理 MCU 回复任何数据。
客户询问是否有任何方法可以知道 UART 何时失去了其功能? 是否有任何标志或位可供他们参考以进行检查? 客户希望在 UART 失去功能时添加复位 UART 功能。
请提供帮助建议。
谢谢!
此致、
Alfred
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.
大家好、
我的一位客户正在将 UCD3138用于其项目、他们需要在其系统上运行多个引导加载程序、最多可运行2000次以上。 在某些情况下、UCD3138将失去其 UART 功能、不会向内部管理 MCU 回复任何数据。
客户询问是否有任何方法可以知道 UART 何时失去了其功能? 是否有任何标志或位可供他们参考以进行检查? 客户希望在 UART 失去功能时添加复位 UART 功能。
请提供帮助建议。
谢谢!
此致、
Alfred
您好、Alfred、
UARTINTST 寄存 器中有几个位可用于指示 UART 通信期间发生的错误。
请查看技术参考手册第465页中这些位的定义:
https://www.ti.com/lit/pdf/sniu028
希望这对您有所帮助。
此致、
您好 Yitzhak、
即使客户已解决初始问题、我仍有以下问题:
我检查了 UART 停止响应根本原因是我们的 UART 服务例程函数冲突。
UCD3138 UART 模块仍然正确接收到字节。
我找到了解决我们的服务例程功能冲突问题的解决方案。
当我在函数处理 UART 服务器例程之前添加调试引脚时。
UART 停止响应问题消失。
因此、我认为解决这个问题只需要增加一些延迟。
如果我知道这些代码使用了多少指令周期。
我可以使用 NOP 来实现相同的延时时间。
我只想知道下面部分中有多少指令周期。
谢谢!
BR、
Alfred
Alfred、更改时序以解决问题通常不是一个真正的解决方案、而只是针对特定的测试和代码配置移动了一些东西。 另一项测试或代码轻微更改将导致问题再次出现。 通常、时序灵敏度表示中断中的某项与后台模式中的某项之间存在交互。 如果在两个位置都写入相同的变量、则可能会有不完整的写入。 还有其他可能。 有时可以通过读取代码来解决该问题、但通常需要切换 I/O 来判断发生了什么。 上述调试代码是处于中断模式还是后台模式?