24小(xiǎo)时联系電(diàn)话:18217114652、13661815404

中文(wén)

您当前的位置:
首页>
電(diàn)子资讯>
行业资讯>
SPI与I2C:如何為(wèi)您的...

行业资讯

SPI与I2C:如何為(wèi)您的存储芯片选择最佳协议


SPII2C:如何為(wèi)您的存储芯片选择最佳协议

SPII2C可(kě)能(néng)是最常用(yòng)的数字协议,用(yòng)于连接各种产品中的集成電(diàn)路。SPII2C都是易于使用(yòng)、难以破解的串行数字协议,从信号完整性的角度来看,它们很(hěn)容易路由。与阻抗控制的高速差分(fēn)串行协议不同,这两种协议没有(yǒu)阻抗规范,通常被认為(wèi)是電(diàn)气短路的。这意味着,在PCB上,设计要求相对简单,并且在标准中仍有(yǒu)一些自由度可(kě)以根据需要调整性能(néng)。

PCB布局中SPII2C的常见实现之一是作為(wèi)用(yòng)于读取和写入外部闪存的协议。闪存芯片是嵌入式系统中非常常见的组件,可(kě)以提供高达Gb值的高容量非易失性存储器。选择内存芯片时,您需要将应用(yòng)程序要求和功能(néng)与内存芯片中读写操作所需的总線(xiàn)速度相匹配。还有(yǒu)您需要访问的闪存类型的问题(NORNAND)。

SPII2C比较

串行外设接口(SPI)和内部集成電(diàn)路(I2C)协议都是以低速到中速运行的简单串行数字协议。这两个接口有(yǒu)一些共同的特点:

他(tā)们使用(yòng)不止一根線(xiàn)来发送/接收数据

时钟是源同步的,这意味着只有(yǒu)一条走線(xiàn)承载时钟線(xiàn)

总線(xiàn)上的其他(tā)芯片是可(kě)寻址或可(kě)切换的

大多(duō)数微控制器将集成其中一个或两个接口

信号電(diàn)平可(kě)以通过给芯片的核心電(diàn)压来设置

这些接口都没有(yǒu)阻抗要求

显然,这些接口非常相似。它们确实有(yǒu)一些重要的區(qū)别,如下表所示。

 

I2C

SPI

网名

- 串行数据(SDA)

- 串行时钟(SCL)

- 主输入,从输出(MISO

- 主输出,从输入(MOSI

- 串行时钟(SCKSCLK

- 片选(CS,可(kě)选)

拓扑

- 广播总線(xiàn)拓扑

- 共享味噌/MOSI/SCK

- CS引脚的星号

数据速率

- 标准模式:高达100 kbps

- 快速模式:高达400 kbps

- 快速模式加:高达1 Mbps

- 高速模式:高达3.4 Mpbs

- 由时钟窗口时间固定,最高可(kě)达60Mbps

上升/下降时间

- 取决于总線(xiàn)電(diàn)容和上拉電(diàn)阻值(使用(yòng)RC时间常数)

- 指定给定负载阻抗

寻址

- 固定在每个组件上的地址引脚

- 主控制器中用(yòng)于切换芯片的CS引脚(可(kě)通过GPIO或专用(yòng)CS引脚切换)

方向性

- 半双工

- 全双工

信号驱动

- 开漏

- 推挽式(带CMOS缓冲器)

 

I2C相比,SPI标准提供更高的数据速率并且可(kě)以以更快的边沿速率运行。由于在I2C上使用(yòng)上拉電(diàn)阻、通常较高的总線(xiàn)電(diàn)容以及驱动方法是开漏极的事实,I2C总線(xiàn)的上升时间可(kě)以达到100纳秒(miǎo)。对于驱动低负载電(diàn)容的高级组件,SPI总線(xiàn)的上升时间可(kě)以低至1 ns ,这意味着它们在切换期间可(kě)能(néng)会出现瞬态振铃。SPI線(xiàn)路也更容易产生串扰,因為(wèi)它们的开关速度非常快。要了解有(yǒu)关SPI总線(xiàn)中这两种协议和信号完整性的更多(duō)信息,请阅读以下资源。

為(wèi)存储芯片选择SPII2C时的重要考虑因素

访问NANDNOR闪存

在本节中,我不想深入讨论NANDNOR闪存的细节,而是想关注如何使用(yòng)串行协议访问它们。如果您可(kě)以采購(gòu)正确的内存组件,则可(kě)以使用(yòng)SPII2C总線(xiàn)访问这两种类型的闪存芯片:

NOR闪存 -绝大多(duō)数使用(yòng)SPI访问,即使在更小(xiǎo)和更慢的闪存芯片上也是如此。可(kě)以使用(yòng)I2C访问速度较慢的芯片。

NAND闪存 -绝大多(duō)数使用(yòng)并行总線(xiàn)访问,但具有(yǒu)I2CSPI总線(xiàn)的芯片数量大致相等。

如果您查看Octopart并使用(yòng)过滤器功能(néng),您将能(néng)够找到一些使用(yòng)任一接口的高容量存储器。

用(yòng)于存储器的I2CSPI接口桥接

如果需要在I2CSPI接口之间进行转换,可(kě)以使用(yòng)接口桥接器。这些组件在这些接口之间转换数据格式,因此可(kě)能(néng)只有(yǒu)SPI总線(xiàn)的组件可(kě)以访问只有(yǒu)I2C总線(xiàn)的外围组件。这包括内存芯片,但如果控制器仅使用(yòng)I2C并且内存使用(yòng)SPI,则速度可(kě)能(néng)会受到限制,并且接收组件可(kě)能(néng)由于上升时间長(cháng)而无法工作。

要克服I2C的这一限制,最好使用(yòng)带SPI的控制器,然后使用(yòng)接口桥访问只有(yǒu)I2C的外设。请注意,SPI端的时钟必须更低,以确保它可(kě)以在I2C速度下使用(yòng)。这将在以下拓扑中完成:

需要SPII2C接口桥接器的首选配置。

電(diàn)平转换

开漏和推挽串行协议(其中信号電(diàn)平由内核電(diàn)压设置)中的另一个常见要求是電(diàn)平转换。构建PCB的最简单方法是使用(yòng)调节到所需核心電(diàn)压的单个電(diàn)源,例如使用(yòng)LDO。实际上,您可(kě)能(néng)有(yǒu)一些外围设备在较高電(diàn)压下运行(例如3.3 V),而主控制器在较低電(diàn)压下运行多(duō)个轨(2.5 V1.8 V等)。如果您的MCU3V3运行,但您的内存以 1V8运行(这是一种常见情况),那么您将需要通过電(diàn)平转换器路由SPII2C信号。请注意,一些接口桥将包括一个電(diàn)平转换器,连接到两个電(diàn)源轨;拓扑如下图所示。

用(yòng)于電(diàn)平转换的拓扑。

一旦您為(wèi)您的设计找到了组件,您如何在SPII2C接口之间做出选择?以下几点将推动您做出决定:

速度:当您批量传输数据或有(yǒu)一个狭窄的窗口来验证用(yòng)户输入与存储在内存芯片中的数据时,每一微秒(miǎo)都很(hěn)重要。如果系统的其余部分(fēn)需要实时重复读写功能(néng),请使用(yòng)SPI。如果控制器只需要偶尔从内存读取或写入,则使用(yòng)I2C

控制器:如果您使用(yòng)的是非常小(xiǎo)的MCU或外围设备,并且可(kě)用(yòng)的引脚很(hěn)少,那么您应该使用(yòng)I2C。事实上,对于某些微控制器,您可(kě)能(néng)别无选择。例如,经典的ATTiny MCU 只有(yǒu)I2C,因此如果它们需要来自外部存储器的数据,则必须找到支持I2C的存储芯片。

電(diàn)源:如果您正在设计需要重复访问数据的電(diàn)池供電(diàn)设备,您可(kě)能(néng)会选择SPI,因為(wèi)该接口的平均功耗低于I2C接口。

请输入搜索关键字

确定