Other Parts Discussed in Thread: LP-EM-CC1314R10
器件型号: 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.
