我一直在研究以 16 MHz 运行的 PIC18F45k20,并将其用作 SPI 从设备。我发现无论来自主机的 SPI 时钟速率 (SCK) 如何,我总是必须在 SPI 字节之间添加一个显着的延迟(~64 us)以避免 SPI 冲突或接收溢出。在没有延迟和非常慢的 SPI 时钟速率的情况下,95% 的 SPI 数据包将在没有冲突或溢出的情况下通过。
在线帖子让我认为这可能是该处理器和其他 PIC18 处理器的“功能”。
- 其他人是否观察到了同样的奴隶“特征”?
- 如果这是一个“特性”,它是否存在于所有 PIC18 处理器中?
我在没有中断的情况下测试了 PIC18:
if (SSPSTATbits.BF)
{
DataIn = SSPBUF;
SSPBUF = DataOut;
}
还使用中断进行了测试,并看到了同样的挑战。
让我想知道它是否不能真正正确地检测到 SPI 时钟。