:)
我对来自摩托罗拉/NXP的SPI块指南V04.01上的CPHA描述有点困惑。说明如下:
“如果SPI控制寄存器1中的CPHA位是清晰的,SCK输入上的奇数边会导致串行数据输入引脚处的数据被锁存。偶数边导致先前从串行数据输入引脚锁存的值根据LSBFE位移到SPI移位寄存器的LSB或MSB中。如果设置了CPHA位,SCK输入端上的偶数边将导致串行数据输入引脚处的数据被锁存。奇数边导致先前从串行数据输入引脚锁定的值转移到SPI移位寄存器的LSB或MSB中,这取决于LSBFE位。”
我的困惑是关于,为什么使用不同的时钟边缘(我是指上升还是下降,反之亦然)来锁定串行数据输入并将其转换到移位寄存器中?是什么激发了这种行为?难道不会使可配置的主设备变得更加复杂吗?难道它也使STA变得更复杂了吗?我在这里做了一些草图,似乎可以使用相同的时钟边缘锁定串行输入数据,并将其转换到移位寄存器而不受任何惩罚.
发布于 2022-10-05 20:45:30
您的草图不考虑延迟倾斜,以及设置和保存触发器的参数。为了保证上面列出的缺陷不影响界面操作,很久以前就选择了不同的边缘。
考虑一个内部SPI核心时钟,它转移数据。该时钟和数据被路由到IC引脚使用缓冲器,其中晶体管有更多的工作电流比内部的。所以它们要大得多,速度也慢得多。如果您使用相同的边缘,延迟偏差可能导致的情况时,数据到输出引脚甚至早于时钟。此外,您应该保证数据的输出缓冲区的延迟比时钟缓冲区的延迟还要长,再加上SPI从站输入触发器的任何可能的数据保持时间。因此,最慢的可能从将限制SPI时钟频率在主设计阶段。随着不同的边缘,您可以设置SCK频率足够低,以满足慢从数据设置/保持要求,并设置频率高的快从。
附注:主硬件中的所有配置都是使用两个异或门(加上配置位本身)完成的。
https://stackoverflow.com/questions/73964082
复制相似问题