工具/软件:
尊敬的 TI 团队:
我使用的是中配置用于 MibSPI 通信的两个 TMS570LC4357 LaunchPad 并行模式 、使用以下设置:
-
数据线 :4 (并行模式)
-
设定的时钟速度 :18.75 MHz
-
转移组大小 :128
-
片选 : 0
-
ENA 引脚 :未使用
主器件到从器件通信(工作)
在主器件侧、在 Tx RAM 中填充128个缓冲区并触发 TG0。 从设备在其 Rx RAM 中成功接收到数据、我可以将其复制到本地缓冲区 而不会损坏器件 。
从器件到主器件通信(问题)
我现在正在尝试传输数据 从从从站切换到主站 。 为了启动传输、我从主器件发送虚拟数据(正如 SPI 全双工模式中预期的那样)、而从器件使用有效数据设置其 Tx RAM 并触发 TG0。 但是、在本例中、是 主器件接收到的数据正在损坏 。
我怀疑我可能缺少一个步骤或错误排序。 以下是相关代码的简化版本:
主:
mibspiSetData(mibspiREG5, 0ul, dummydata); // Fill dummy data mibspiTransfer(mibspiREG5, 0ul); // Trigger TG0 while (1) { mibspiGetData(mibspiREG5, 0ul, RecvBuf); // Read received data if (RecvBuf[0] == 0xAAA1) // Example sync word { break; } }
从器件:
mibspiTransfer(mibspiREG5, 0); // Initially trigger TG0 while (1) { mibspiGetData(mibspiREG5, 0, dummydata); // Read dummy data from master if (dummydata[0] == 0xA5A5) // Sync condition { mibspiSetData(mibspiREG5, 0, source); // Fill slave Tx RAM with data mibspiTransfer(mibspiREG5, 0); // Re-trigger TG0 } }
问题:
-
在此设置中、从动启动的传输顺序是否正确?
-
从器件应该在接收到虚拟数据之前或之后触发 TG0?
-
在并行模式下、正确接收从器件到主器件的数据是否需要任何特定的时序要求或同步机制?
此致、
Naveen R