Thread 中讨论的其他器件: SysConfig、 C2000WARE
工具/软件:
我将 TMS320F28P650DK 器件用作 SPI 外设(从器件)、与系统中的另一个(控制器)微控制器之间发送数据和接收数据。 另一个微控制器生成时钟和芯片选择信号。
我尝试发送大量数据、所以正在进行设置、以便由 DMA 管理进出 SPI 外设的数据流。 作为起点、我希望发送/接收16个16位字、从而将 C2000从器件设置为通过 DMA 使用16位字中的数据。 另一个微控制器生成正确的芯片选择和时钟线路来支持这一点。 下图显示了一个示例传输、对于16个16位字、时钟(C2、紫色)循环256次。
数据传输可以正常进行、但从 C2000 (MISO)进行 DMA 传输的数据的位置看起来像是被一个字包裹在一起。 从 C2000器件传输数据的 i 设置结构为:-
MISO 传输的第一个16位字是 FAN2SPEED 数据(我在实践中通过更改该数据并仅查看第一个字位的变化来检查此情况)。 第二个字是 FAN1TEMP、第三个字是 FAN2TEMP。 应该是传输第一个字的 FAN1SPEED 是传输结束时的第16个字。 它看起来好像已经缠绕了。
我的问题是什么会导致这种行为? 我感觉可能是 FIFO 的设置方式、或者 FIFO 在传输开始前不是空的。 两个 DMA 通道都连续运行、在 SysConfig 中启用。 也许我应该根据来自 SPI 控制器的传入 nCS 或时钟线的活动启动并停止测试?
以下是 SysConfig 中的 *** 外设设置:-
任何想法都是最受欢迎的。
谢谢、Iain