首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何理解SPI时钟模式?

如何理解SPI时钟模式?
EN

Stack Overflow用户
提问于 2022-03-04 13:07:52
回答 2查看 299关注 1票数 1

网络上有许多描述SPI定时/时钟模式的链接。例如,来自这里的以下图片表明CPOL/CPHA的4个组合确定何时采样/发送数据wrt时钟上升/失败边缘:

为了使SPI正确工作,需要控制器(或主控制器)和设备(或从设备)在相同的时钟模式下工作。

几天前,我遇到了一个描述QSPI控制器的数据表,它说它只支持模式1 (CPOL=0,CPHA=1)。它还包含SPI接口的AC定时要求,如下所示:

时序图确认控制器在模式1中工作:空闲时处于较低的状态,并在sclk的下降边缘采样数据。到目前一切尚好。

让我困惑的是用户指南中的另一条声明:“SPI只支持SPI模式1。但是,如果SPI设备遵循Soc AC定时,那么它是可以使用的,无论是哪种模式。”怎么可能?显然它违反了“相同模式”规则。例如,当控制器处于模式1(下降边缘采样)和设备处于模式0或3(上升边缘采样)时,它是如何工作的?

顺便说一句,一个工作系统显示控制器实际上与QSPI闪存设备一起工作,其数据表告诉我们它只支持模式0和3。这意味着在理解SPI时钟模式时我必须忽略一些要点。

任何解释都不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-04-14 17:23:01

您的“模式1”qspi控制器的行为不像正常模式1 spi控制器。

看一下时序图:它在CLK下降的边缘输出MOSI的新数据,并在CLK的下降边缘上采样MISO。这并不等同于四种SPI模式中的任何一种。这样做是为了允许更高的性能。

(Q)在CLK上升边缘上的SPI闪存样品MOSI,并输出CLK下降边缘的MISO新数据。常规SPI控制器将在CLK上升边缘对MISO进行采样。这意味着CLK从控制器到闪存、flash访问和MISO返回控制器的整个往返过程必须在半个时钟周期内完成。这通常会限制你在25兆赫或更少。

通过让控制器样本MISO在下降的边缘,往返得到一个完整的时钟周期价值的时间,这意味着你可以达到50兆赫或更多。

票数 1
EN

Stack Overflow用户

发布于 2022-04-14 22:04:33

一般情况下

在SPI中,只有一个时钟边缘对接收器很重要。在模式0和模式3中,它是上升的边缘,在模式1和模式2中,是下降的边缘。

接收方要求它将要读取的数据在重要边缘(称为“设置时间”)之前的短时间内有效,并要求它在重要边缘(称为“保持时间”)之后的一段短时间内仍然有效。

在这个小窗口之外(设置时间加上保持时间),数据行的值根本不重要。接收机不会在另一时钟边缘对其采样数据的时钟边缘进行任何操作,并且该线路届时可能具有任何值,包括介于高和低之间的中间电压。

每个发射机的唯一责任是满足接收机的要求。也就是说,主机必须控制MOSI,使其满足从机的要求,而从方必须控制MISO以满足主站的要求。

在缓慢的速度下,每个发射机满足另一个设备的要求的最简单的方法是在相对时钟边缘的时刻将数据改变为接收器所关心的数据。这意味着在两端使用相同的时钟模式,如问题中的图表所示。

在较高的速度下,这并不总是理想的,在你的数据表提取中描述的计时方法是广泛和完全正常的。

用于特定设备的

您的从设备在CLK的下降边缘上采样MOSI。它要求主机在此之前将MOSI驱动到正确的水平,至少是tIS (输入采样时间),并在此之后保持至少tIH (输入保持时间)。

在另一个方向上,您的从设备在假设主设备会对其进行采样的边缘之后,至少在tCLQX (时钟低输出保持时间)中保存以前的MISO值。

从设备输出的下一个MISO值不超过tCLQV (时钟低到输出有效时间)。

在问题中的天真时序图中,您将假设tCLQX的值与tCLQV相同,并且与时钟的下一个上升边缘相吻合,但数据表表示不必如此。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71351912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档