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.

[参考译文] AM2634-Q1:软件复位 UART 只会复位 RX FIFO 指针、而不会刷新 RX FIFO 内容?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1238249/am2634-q1-software-reset-uart-will-only-reset-the-rx-fifo-pointer-but-not-flush-the-rx-fifo-contents

器件型号:AM2634-Q1

BU 先生/女士、  

客户要求我提供早期 UART 控制器问题的根本原因: E2E 主题。  

早期问题可以总结为:UART 控制器无法 通过尝试读取 RX FIFO 内容来删除 RX_FIFO_STS 标志。 此问题只能通过使用 MSS_RCM 寄存器以硬件复位 UART 实例、然后重新初始化 UART 实例来解决。  

并且当 SBL 跳转到应用时会发生该问题。 我发现在 UART_Open API 中、该驱动程序将通过调用  UART_moduleReset API 对模块进行软件复位。 如果在跳转过程中 UART 控制器接收到某个帧、则可能有一个帧出现错误。 然后、在软件复位 UART 实例后、FIFO 读取指针将返回到开始位置。 因此软件无法再清除 FIFO 的内容、这意味着无法读取错误帧。 因此  不会清除 RX_FIFO_STS 标志。  

并且硬件复位 UART 实例将清除 FIFO 内容、以便 不再设置 RX_FIFO_STS 标志。  

我想再次与您确认上述行为(软件复位 UART 只会复位 RX FIFO 指针、而不会刷新 RX FIFO 内容。 硬件复位将清除内容)、如果为真、我认为这将是此问题的根本原因、因此在我的客户侧就可以解决此问题。 请检查一下。 谢谢。  

此致、  

将会  

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

    BU 先生/女士、  

    有任何意见吗?

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

    您好、Will、

    这似乎是该问题的有效根本原因。 我将跟进设计团队以确认 IP 行为、并将按 EOD 返回。

    此致、

    阿什温

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

    您好、Will、

    团队仍在处理测试用例以进行问题验证、需要更多时间来确认相同情况。 测试完成后、我再给大家介绍更多详细信息。

    此致、

    阿什温

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

    尊敬的 Ashwin:  

    感谢您的帮助、等待回复。  

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

    我还有一个问题:根据 TRM 说明、有两个名为 UART_FCR[2] TX_FIFO_CLEAR 和 UART_FCR[1] RX_FIFO_CLEAR 的寄存器字段、应用程序是否可以使用这2个字段来清除 FIFO 内容?  

    此致、  

    将会  

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

    您好、Will、

    这似乎是解决这个问题的可行办法。  是否有可能在您的终端尝试一下?

    同时、我将要求设计团队在测试用例中尝试这一点。

    此致、

    阿什温

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

    尊敬的 Ashwin:  

    是的、我可以向客户尝试此方法。 如果有任何进度、则会在此处更新。  

    请抓紧测试用例并获取结果。 非常感谢。 客户每天都在催促我...

    此致、  

    将会  

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

    您好、Will、

    团队已为相同的问题创建了测试用例、但无法在我们一方重现问题。 执行软件复位时、FIFO 指针将复位、FIFO 将被清除、 RX_FIFO_STS 标志将被清除。

    在客户侧、使用了哪个寄存器来确认 FIFO 指针正在复位但 FIFO 未被 清除?

    此致

    阿什温

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

    尊敬的 Ashwin:  

    在客户侧、我们无法通过刷新 FIFO 内容来清除 RX_FIFO_STS 标志、该标志 通常在 SBL 跳转到 APP 期间设置、应用中的 UART_OPEN 函数中有软件复位操作。 如果 软件复位可以清除 FIFO 内容、为什么仍然设置该标志? 您是否知道其他可能导致此问题的情况、然后我们可以尝试在客户侧重复此问题。  

    谢谢。此致、  

    将会  

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

    您好、Will、

    FIFO 中存在错误数据是导致设置标志的唯一原因。 使用了哪个寄存器来确认 FIFO 指针正在复位但 FIFO 未被 清空?

    此致、

    阿什温