工具/软件:
以下问题基于以下假设:
- 外设模式
- 发送和接收模式
- 功能
- 使用 TX 和 RX 内置 FIFO
- 未使用 DMA
[问题 1]
在从模式下使用 McSPI 时、我知道 MODULCTRL 寄存器中的 single-bit 应设置为 1。 此外、根据 TRM(表 13-22)、多通道操作似乎仅适用于主器件模式(即控制器模式)。 但是、在我的环境中、我无法使用此设置生成 EOW 中断。 当我在同一环境中将 MODULCTRL 寄存器中的单个位更改为 0 时、我能够观察 EOW 中断发生的情况。
我想了解这种现象。 MODULCTRL 寄存器中的 single-bit 如何影响外设模式的运行?
[问题 2]
是否可以在 SPI 通信完成时触发中断(即在 CS 的非活动边沿上)?
此外、“字结束计数“中断是否可用于此目的?
在之前从控制器发送的数据大小未知的情况下、我希望使用 CS 的非活动边沿作为触发器来检测 SPI 通信结束。
TRM(第 13.3.2.5 节)规定、字计数结束中断包括“SPI 传输已停止“条件。
我相信我可以为此目的使用 EOW 中断,并尝试了 以下配置(并从主设备发送 8 个字节):
IRQENABLE = 0x00020000;//启用 EOW
XFERLEVEL = 0xFFFF0F00;// WCNT = max、AFL=15
但是、在 CS 无效边沿时、IRQSTATUS 寄存器中的 EUW 位未置位。
我想澄清这是否是由于配置错误、还是根本不可能做到这一点。