广告

换个思路使用I2C总线,功率能节约75%

2024-06-14 17:38:47 STEPHEN WOODWARD 阅读:
如何节省I2C总线中多余的电流和功率呢?本文给出了一种方法:有源上拉···

流行的I2C通信标准只需要一条非常简单的双引脚总线(SCL和SDA)即可实现灵活的串行I/O。它通过双向时序和数据流来实现这一功能。双向数据流有利于节省引脚,但由于使用了无源上拉电阻,因此在省电方面并不理想。总线上拉电阻必须选得足够低(从而能通过足够的电流),以便在所选数据速率所决定的速度下对寄生总线电容充电。图1举例说明了这种不便的计算方法。ozmednc

ozmednc

图1:I2C总线速度与最大有效上拉电阻成反比。来源:德州仪器ozmednc

无源“上拉”过程中消耗的V/R电流和V2/R功率取决于总线电容、上拉电压和占空比;如图1所示,对于快速模式400kHz、V=5V和Cb=400pF,消耗的电流可能高达5V/1k=5mA和52/1k=25mW。这很容易就会占到整个系统功耗的很大一部分。这对电池不利,也不利于“绿色”和“可持续性”发展的需要。ozmednc

那么如何节省一些多余的电流和功率呢?图2显示了一种方法:有源上拉,其值是根据图1所示高速(400kHz)和高电容(400pF)的最差情况组合而选择的。ozmednc

ozmednc

图2:再生有源上拉电路(所需的两个电路之一),其值是根据图1所示的最坏情况组合选择的。ozmednc

这种简单的电路拓扑结构,虽然宣称其目的是节省上拉功率,但其起点并不高:只是一个无源上拉电阻R1。整个电路的工作原理如图3所示。ozmednc

ozmednc

图3:图像内标记的是有源上拉波形和4步序列。ozmednc

有源上拉过程分为四个步骤。ozmednc

  1. 释放相关总线信号线(即SCL或SDA)可使R1开始无源上拉并开始为总线电容充电。由此产生的电压上升很慢,因为R1比图1中计算所需的1k大4倍多。显然,它永远不会很快完成上升时间!
  2. 但请稍等:由此产生的信号正通过C1耦合到Q2的基极。因此,在过程的第2步,Q2导通,Q1也随之导通,并启动一个非常快速的正反馈回路,该回路驱动两个晶体管进入饱和状态,并在数十纳秒内完成总线电容充电,消除R1上的压降并结束其功率消耗。
  3. 22pF C1的时间常数非常短,它作用于Q2的基极阻抗,使C1放电并终止对晶体管的驱动,从而使它们开始关断并结束有源上拉。这为Q1和Q2提供了从饱和状态恢复的时间。
  4. 下拉开始总线活动的下一个周期并通过D1对C1重新充电,这也可以保护Q2有限的(仅4.5V)最大反向Vbe额定值。

因此,我们关于节省上拉功率有了一个圆满的结局,节省了大约75%的功率,而且无需进行任何软件修改。ozmednc

(原文刊登于EDN美国版,参考链接:I2C active pullup is power thrifty,由Ricardo Xie编译)ozmednc

责编:Ricardo
本文为电子技术设计原创文章,未经授权禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
广告
热门推荐
广告
广告
EE直播间
在线研讨会
广告
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了