I2C上拉电阻选择
在一些PCB的layout中,大家往往会看到在I2C通信的接口处,往往会接入一个4.7K的电阻,有的datasheet上面明确有要求,需要接入,有的则没有要求。 I2C接口 对于单片机来讲,有些IO内部的上拉电阻可以使能,这样就省去了外部的上拉电阻,这是对于单片机带有标准I2C通信协议接口,若是只带有模拟I2C协议接口,那么就需要考虑接入上拉电阻问题。下图是摄像头进行配置通信时SCL和SDA需要进行上拉电阻的连接。 在大多数情况下,由于I2C接口采用Open Drain机制,器件本身只能输出低电平,无法主动输出高电平,只能通过外部上拉电阻RP将信号线拉至高电平。因此I2C总线上的上拉电阻是必须的,如图1所示。 图1 因为I2C总线在空闲时必须拉高,只有是高的才能拉成低的,所以这是之所以规定空闲时必须为高的一个原因,要是保持“低”的话,那是不可能成为“多主”总线的。 其实I2C总线接口在工作时只会检测高低电平,他不会在乎有无上拉电阻的问题,所以总线必须满足时序要求。 上拉电阻的大小,会牵扯到两个问题,一个是功耗,一个是速度问题,两者是一个矛盾体。如果你想尽量提高速度,那么就牵涉到总线电容的问题,其实很容易理解,上拉电阻与总线的电容形成了RC,高速时将直接影响通讯!因为总线拉高时有个充电时间以及高电平的阀值