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.

[参考译文] AM13E23019:如何理解 SPI 中断-- FIFO 至少已满 1/16 --"not empty"

Guru**** 2905440 points

Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1643040/am13e23019-how-to-understand-the-spi-interrupt----fifo-is-at-least-1-16-full---not-empty

部件号: AM13E23019
主题: SysConfig 中讨论的其他器件

您好专家

客户使用 SPI 进行 SoC 和 MCU 通信、当 SPI 中断触发时、ISR 会读出 SPI FIFO 和 ACK 中的所有数据。 当客户使用 FIFO ½ 满中断时、可以触发中断并正确运行 ISR、但当客户使用 FIFO 至少为 1/16 Full(非空)时、中断触发频率小于预期值、并且 ISR 无法正确读出数据。 我想 了解此 SPI 设计如何触发“不为空“、以及如何正确使用它?

谢谢、此致

Joe

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

    您好 Joe、

    我假设您讨论的是 RX FIFO 吗? 如果是、在这两种情况下、发送设备发送数据的速率是否相同?  

    准确地在每种情况下设置 RXIFLSEL 的哪个值?

    此致、

    Delaney

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

    嗨、 Delaney

    是的、它是 SPI RX FIFO、  

    对于这两种情况、发送设备是否以相同的速率发送数据?

    是的

    RXIFLSEL :的值客户使用 SysConfig 配置 SPI RX FIFO 级别、适用于 2 种不同的情况:

    FIFO ½ 满:  

    DL_SPI_setFIFOThreshold(APP_SPI_CONTROLLER_INST、DL_SPI_RX_FIFO_LEVEL_1_2_FULL、DL_SPI_TX_FIFO_LEVEL_1_2_EMPTY);
    我跳转到 drivelib 文件、 DL_SPI_RX_FIFO_LEVEL_1_2_FULL 值为  0x00000020U

    FIFO 至少为 1/16 已满-“非空“:

     DL_SPI_setFIFOThreshold(APP_SPI_CONTROLLER_INST、DL_SPI_RX_FIFO_LEVEL_NOT_EMPTY、DL_SPI_TX_FIFO_LEVEL_1_2_EMPTY);
    我跳转到 drivelib 文件、 DL_SPI_RX_FIFO_LEVEL_NOT_EMPTY 值为  0x00000040U
    有一件让我困惑的是、如果我认为在 FIFO 中有数据时不应该触发空、那么一旦 RX FIFO 中有一些数据、中断就无法清除、并且在 客户测试中、中断也无法正常运行。
    谢谢
    Joe
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Joe、

    我知道、是的、这也是我期望的行为。 让我在结束时测试一下、下周再回到您的身边。

    此致、

    Delaney

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

    您好 Joe、

    对延迟深表歉意。  

    我使用 RX FIFO“非空“中断设置自行运行一些测试。 我的测试发送 10 个数据字节、并一次读取一个接收的字节。 我看到 ISR 被触发 10 次、并且所有数据都被正确接收。  

    客户在其 ISR 中读取多少个字节?  

    此致、

    Delaney

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

    嗨、 Delaney

    我认为客户方面存在一些设置问题、无法在我这边重新创建、让我们结束这一主题。

    谢谢

    Joe