电路设计技巧

SPI与I2C:如何为您的内存芯片选择最佳协议

我前几天去看鞋,并且意识到我为什么不经常购买鞋子:太多的参数。我专门寻找运动鞋,因此有舒适性、弹性、耐久性、防潮性、重量,脚趾尺寸、足弓支撑等指标。有时候感觉你需要有研究生学位才能找到合适的鞋子。这就是我称之为信息过多的情况。

在电子设计中您也会遇到类似的繁重决策,比如,当在串行外设接口(SPI)和内存集成电路(I2C)协议之间为内存芯片做出选择时。尤其是当两种选择在成本方面差异不大时,您的决定就变得更加棘手。了解你的存储器芯片参数需求,同时也需要知道你的产品将实现哪些功能。

SPI和I2C基础知识

SPI是一种全双工配置的通信协议。它需要四个信号:芯片选择(CS)、时钟(SCK)、主出/从入(MOSI)和主入/从出(MISO),用于主机和从机之间的通信。单个主从连接需要一个CS信号。这意味着如果多个单独的从机连接到相同的总线上,则CS信号的数量会增加。

SPI总线的速度没有官方限制。微控制器通常以高达10Mhz的速度驱动SPI总线。SPI有四种模式,数据在时钟信号的不同边沿和极性锁存。然而,没有标准的机制可以使主机确认数据已经被从机成功接收和存储。

另一方面,I2C总线只需要两根线,即串行数据(SDA)和串行时钟(SCLK)。它的运行速度低得多,为100 kHz,尽管大多数微控制器可能不支持更高的速度。连接到I2C总线的从属设备由硬件定义的芯片地址标识。 I2C的信号引脚最低。

一个I2C的定义良好的标准不仅涵盖了协议的速度,还涵盖了主设备和从设备之间的命令、初始化、数据传输和确认。这确保了所有支持I2C的器件都遵循单一标准以便于实施。

在SPI和I2C之间选择内存芯片时的重要注意事项

SPI和I2C都是静态随机存取存储器(SRAM)、闪存或电可擦除可编程只读存储器(EEPROM)等串行存储器芯片采用的流行协议。确定最适合您的设计的协议需要的不仅仅是比较成本。以下是可能会简化决策过程的一些重要考虑事项:

1.速度
当你批量传输数据或者有一个相关的窗口来验证用户输入与内存芯片中存储的数据时,每一微秒计数。如果速度是您最关心的问题,那么选择SPI可以体验到10 MHz的通用数据传输速率,这比I2C的全速400 Khz快得多。

如果速度很重要,请选择SPI。

2.有限的引脚
并非所有的硬件设计人员都有喜欢使用超过100个引脚的高端微控制器。有些人努力将存储器芯片与28引脚微控制器连接起来。在这些情况下,I2C非常理想,因为它只需要几条通信线。

3. PCB尺寸
如果您不受任何PCB尺寸约束的束缚,那么SPI或I2C对您来说都很棒。但是如果你想把你的PCB挤压到一个小的外壳中,那么更少的走线意味着一个更小的PCB,而I2C是更明智的选择。

4.故障和错误恢复
设计师并不完美,I2C协议也不是。 I2C总线对毛刺和锁定非常敏感,因为发送和接收都发生在相同的物理走线上。当主设备未能及时释放总线时,从设备可能进入锁定状态,因为它发送了应答,主设备未能接收。处理错误恢复可能会非常棘手,因为某些情况下可能需要电源复位锁定设备。

5.电源
如果您正在设计电池供电或太阳能供电的设备,则必须将功耗降至最低。 I2C设备通常比SPI消耗更多功率,如果需要考虑功耗,则应该为您的设计选择SPI。

如果您需要您的PCB小且美,请选择I2C。

为您的设计做出最佳决定

无论您的最终选择是什么,SPI和I2C协议都要求信号并行布线,且长度相似,以防止出现任何信号故障。您的决定不仅会影响您设计的功能,还会影响周转时间和整体效率。

Tagged

About Simon Wang

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.