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.

[参考译文] TMS320C5505:确认 FLUSHIFO 的用法

Guru**** 2540720 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/615996/tms320c5505-confirm-the-usage-of-flushififo

器件型号:TMS320C5505

尊敬的 TI 专家:

请允许我确认以下问题。

[问题]
当客户在 DPB 位上使用双数据包缓冲器时、您是否会向我展示使用 FFLUSHFIFO 来刷写/清除这两个缓冲器的方法?

此致。

Kaka

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

    我已将此内容转发给 C55x 专家。 他们的反馈应发布在此处。

    BR
    Tsvetolin Shulev
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、Kaka-San、
    我需要与目前不在办公室的 C5000 USB 专家联系、以了解您的问题的答案。 请留出几天时间。 感谢您的耐心等待。

    同时、我假设您是指 C:\ti\c55_lp\c55_CSL_3.07\inc\csl_usbAux.h 上的 USB_flushFifo 函数、这会清除 TX 和 RX FIFO?

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

    是的、他们已经检查了这个函数、但是他们没有使用你提到的那一个 CSL 函数、因为它似乎不关心双数据包缓冲区。

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

    大家好、Kaka-San、

    根据 C5505的 TRM:

    如果 FIFONOTEMPTY 位在第一个被置位为 FLUSHFIFO 位后为1。

    此致、

    Ming

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

    我无法理解您的答案。
    请您详细解释您的答案吗?

    [我的问题]
    >当客户在 DPB 位上使用双数据包缓冲器时,您是否会向我展示使用 FLLUSHFIFO 来刷写/清除这两个缓冲器的方法?

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

    大家好、Kaka-San、

    抱歉。 E2E 移除了 C5515 TRM 中的快照。 根据 C5515 TRM:

    此外、如果 FIFO 中有任何数据包、由正在置位的 FIFONOTEMPTY 位(PERI_TXCSR 的位1)指示、则应通过置位 FLLUSHFIFO 位(PERI_TXCSR 的位3)将其清空。

    注意:如果启用了双缓冲、可能需要连续设置该位两次。

    因此、步骤如下:

    如果 FIFONOTEMPTY 为1、则将 FUSHFIFO 置为1

    2、 再次检查 FIFONOTEMPTY、如果它为1、则将 FLLUSHFIFO 设置为1秒。

    如果 FIFONOTEMPTY 为0、则完成操作

     

    此致、

     

    Ming

     

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

    感谢您的解释。
    请允许我确认以下问题。
    根据 TRM、FFLUSHFIFO 位描述如下。
    "注意:除非 TXPKTRDY 位被置位、否则 FlushFIFO 无效。 另请注意、如果 FIFO 是双缓冲的、则可能需要将 FlushFIFO 置位两次才能完全清空 FIFO。"
    因此、在使用 FFLUSHFIFO 之前、TXPKTRDY 位需要设置为手动。 客户是否应遵循此说明?

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

    大家好、Kaka-San、

    当数据被复制到 FIFO 中时、TXPKTRDY 位需要手动设置为1、以标记数据已准备好发送。 当数据被发出时、它将被清除。

      在使用 FFLUSHFIFO 之前、无需手动将 TXPKTRDY 位设置为1。

    将 TXPKTRDY 位设置为1、如果不将数据复制到 FIFO 中、将导致发送零长度数据包。 有关详细信息、请参阅我对您的另一个问题的答案。

    此致、

    Ming

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

    感谢您的回答。 我可以理解 TXPKTRDY。
    顺便说一下、请允许我确认 FLUSHNOTEMPTY 位。
    根据 TRM、该位描述如下。
    "当 Tx FIFO 中至少有1个数据包时、该位置位。 您应该清除此位。"
    请您告诉我"您应该清除这个位"的意思。
    这是否意味着用户需要在手册中清除此位?

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

    大家好、Kaka-San、

    我想你是指"FIFONOTEMPTY"位。

    根据 TRM、FIFONOTEMPTY 被置位 FIFOFLUSH 位为1 1 1或2次来清零。

    此外、如果 FIFO 中有数据包、由 FIFONOTEMPTY 位(的位1)指示

    设置 PERI_TXCSR)时、应通过设置 FLUSHFIFO 位(PERI_TXCSR 的位3)将其刷新。

    此致、

     

    Ming