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.

[参考译文] TMS320F280039:FSI-RX CRC 和 DMA 行为

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1502139/tms320f280039-fsi-rx-crc-and-dma-behaviour

器件型号:TMS320F280039
主题:C2000WARE 中讨论的其他器件

工具/软件:

您好、

我想提出一个有关特定 FSI-RX 模块行为的问题。  我们有一个 FSI FSI 菊花链配置、该配置经过完全 初始化(手工初始化)和传输帧。 在任何接收到的数据帧上、我们都会触发 DMA 将16个数据字复制到缓冲区中。 物理线上存在一些位错误、因此我们需要确认 FSI 在以下情况下的行为。  

当 FSI-RX 内核检测到 CRC 不匹配时、是否仍 执行 DMA 触发器?  我们确实看到生成了错误 IRQ 并设置了 CRC 错误标志、这由 ISR 处理。 我们需要知道 DMA 是否仍应将 FSI-RX-buffer 复制到 RAM 中?  如果是、是否可以防止这种行为?

2、TRM 第 3173页中的注释清楚地指出,在发生 CRC 不匹配的情况下, RX 模块需要进行复位并与发送器重新同步。 但是、第  31.3.3.10章没有提到该特定条件(接收器必须进行软复位的条件)。 FSI-RX 是否需要在发生 CRC 错误时复位?

3. 当 RX-UDATA 过滤处于活动状态且接收到不匹配(不同的 UDATA)帧时、是否仍执行 CRC 计算(和错误 IRQ)?   

感谢您提前回答。

此致、

Felix

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

    您好 Felix:

    我正在查看该主题。 我很快就会回来给你!

    谢谢、
    Susmitha.

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

    谢谢你。  您有任何更新吗?

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

    您好 Felix:

    是否使用 C2000ware 中的菊花链示例?

    谢谢、
    Susmitha.

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

    您好、

    它不是菊花链示例。 我们将基于 FSI 实现自己的应用。 如果没有可以正常工作的位错误、但我们需要了解 FSI-RX 在上述情况下的行为。

    Felix

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

    您好 Felix:

    [quote userid="626289" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1502139/tms320f280039-fsi-rx-crc-and-dma-behavior 当 FSI-RX 内核检测到 CRC 不匹配时、是否仍 执行 DMA 触发?  我们确实看到生成了错误 IRQ 并设置了 CRC 错误标志、这由 ISR 处理。 我们需要知道 DMA 是否仍应将 FSI-RX-buffer 复制到 RAM 中?  如果是、是否可以阻止该行为?

    是、即使接收到的数据帧中存在 CRC 错误、仍将触发 DMA、前提是该帧具有正确的结构(即适当数量的数据字和帧结束(EOF)标记)。
    •FSI 硬件不会在 CRC 不匹配时自动阻止 DMA 触发—DMA 链接到帧接收事件、而不是其完整性。
    •这就是提供错误 IRQ (FSIRX_EVT_CRC_ERR)的原因- ISR 需要使用此值来检查 CRC 错误标志、并使软件中 DMA 复制的缓冲区内容失效或丢弃。

    权变措施/预防:
    您无法在发生 CRC 故障时直接阻止硬件中的 DMA 触发。 不过:
    •在 ISR 中、在使用 DMA 缓冲区之前、立即检查是否存在 CRC 错误标志。

    第31.3.3.10节对于需要软重置的情况更具权威性、通常仅在 EOF 不一致、成帧错误或硬件状态损坏之后。
    •单个 CRC 错误不一定意味着 RX 和 TX 之间的同步失败。 只有当您还检测到组帧错误或持续 CRC 故障、这些错误表明 RX 模块可能已同步时、才应执行复位。

    否、如果启用了 RX-UDATA 滤波、则不计算 CRC、并且不会为不匹配的 UDATA 帧触发错误 IRQ。
    •RX 硬件将直接忽略并丢弃任何带有与已编程滤波器不匹配的 UDATA 标签的传入帧。

    谢谢、
    Susmitha.

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

    非常感谢您的详细答复。 这有助于我们更好地了解系统。