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.

[参考译文] CC1314R10:复位 CC1314 上的 SPI FIFO

Guru**** 2815505 points

Other Parts Discussed in Thread: LP-EM-CC1314R10

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1608934/cc1314r10-resetting-the-spi-fifo-on-cc1314

器件型号: CC1314R10

您好、

在我们的产品中、我们使用 LP-EM-CC1314R10 板作为 SPI 从器件(启用了 DMA)、并使用另一 MCU 作为主器件。
SDK:simplelink_cc13xx_cc26xx_sdk_8_31_00_11  
SPI mode:回调模式
每 15 秒、我们就会通过 SPI 将数据从 CC1314 传输到主 MCU。  
伪代码将如下所示、

CC1314(从器件)侧
CC1314 设置握手 GPIO
CC1314 在回调模式下使用我的 128 字节数据调用 SPI_TRANSFER API。

主 MCU 侧:
1.等待握手中断。
2.如果设置了中断、则触发 SPI 调用(芯片选择引脚向下,时钟输出)。

一切正常工作约 2 小时。
2 小时后、我连续在主器件端收到无效数据包。
通过分析、我可以看到第一个字节为 0、实际的从器件数据是从第二个字节接收的。
这是连续发生的、而不仅仅是在一帧中发生的。 因此在 2 小时后、我的从器件数据始终存在于主器件缓冲区的第二个字节中。  


根据我们的内部讨论、我们假设如下:
即、假设在帧号:1000 处、从器件在 8 个时钟周期后对数据进行采样(我们仍然不知道为什么发生此延迟,因为从器件首先就绪)、即一个字节、但数据的最后一个字节加载到 SPI 寄存器(通过 DMA)中、SPI 寄存器作为下一帧上的第一个字节进行传输、即帧号:1001、这种情况继续发生。 这就是帧持续故障的原因。

所以我们要复位 SPI FIFO 或 DMA。

有人以前遇到过这个问题吗? 此外、是否可以重置 SPI FIFO 或 DMA?。

好的、任何人都可以帮助我解决问题。


此致、
Muniyappan R.M.


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

    尊敬的 Muniyappan:

    您在哪种 SPI 模式(例如 POL0PHA0)下运行?

    我们有一个 FIFO 清空功能、该功能位于驱动程序内部 (SPICC26X4DMA.c)、您可以使用该功能:

    此致、

    Arthur

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

    尊敬的 Arthur:

    感谢您的答复。  

    在我们使用的 SPI 模式下、

                spiParams.frameFormat = SPI_POL0_PHA0;

    我已将参考作为实现了 FIFO 清空 FlushFifos 从文件调用  (SPICC26X4DMA.c)
    刷新 CC1314 上的 FIFO 后、数据开始在主器件端正确接收。

    感谢你的帮助。

    此致、
    Muniyappan R.M.