我尝试将 TM4C 用作 SPI 从器件、它将生成对单独主微控制器发出的查询/命令的响应。 我正在 SPI 模式1下运行、因此 我不需要在每个字节后将 CS 置为有效。
例如、主器件将发送一个帧:[cmd1、dumme]并同时接收[dummy, cmd1_RESPONSE]。 我认为这是一项非常常见的任务、但 TM4C 中的 SSI 在从模式下似乎使这一任务变得非常困难。
问题是8字节 FIFO 不能被旁路或禁用、事实上对于从机来说、只有三个有用的中断、但我看不到它们的任何组合、由于 FIFO 的原因、它们在这里非常有用:
- RX FIFO 半满或更多:仅在 FIFO 中至少有4个字节时触发。 在这里不起作用、因为这只会在主机完全发送第二个命令帧时触发。 与此同时、从器件一直忙于发送 FIFO 中的任何内容、这显然与命令没有任何关系。
- TX FIFO 半满或少于半满: 它将立即触发4次,直到您有机会接收第一个命令?????
- RX 超时:也是无用的、因为在它触发时、您没有机会实际读取命令;最多您已经接收到这两个字节并发回两个(随机)响应字节。
- 也是最有用的中断、EOT 中断、只在主机模式下可用!!
我在这里缺少什么吗? 我想,如果强制命令为四个字节,并且总是让从机在帧开始时发送4个浪费/垃圾字节,可能会发生这种情况,但是当您无法控制主站的协议时,这些限制似乎是灾难性的。