在电路板设计(PCB layout)的过程中,我们会发现I2C通信接口处常常会接有一个4.7K的电阻。虽然有的数据手册明确要求需要接入此电阻,但有的则未作明确要求。
I2C接口详解
对于单片机而言,若其带有标准I2C通信协议接口,其内部可能已具备上拉电阻功能,从而省去了外部上拉电阻的需要。但对于仅带有模拟I2C协议接口的单片机,就需要考虑外部上拉电阻的问题了。在摄像头进行配置通信时,SCL和SDA线都需要正确连接上拉电阻,如图所示。
由于I2C接口采用Open Drain机制,器件本身只能输出低电平,无法主动输出高电平。这时,外部上拉电阻RP就起到了将信号线拉至高电平的作用。在大多数情况下,I2C总线上的上拉电阻是必不可少的。
实际上,I2C总线接口在工作时仅检测高低电平,并不关心上拉电阻的存在与否。但为了满足总线的时序要求,上拉电阻的设定是必须的。
上拉电阻的取值与考量
上拉电阻的大小涉及到功耗和速度两个问题。若想提高速度,就需要考虑总线电容与上拉电阻的配合。而若想降低功耗,就需要增大电阻值以减小电路各部分的消耗电流。但电阻的取值并非无限大,否则充电时间会成为问题。
I2C上拉电阻的确定有一个计算公式:Rmin和Rmax分别代表了上拉电阻的最小值和最大值。其中,Rmin由Vdd(最小)和0.4V的差值除以3mA得出;而Rmax则与总线的负载电容(Cbmax)和传输速率(100KHz或400KHz)有关。
在具体应用中,Rp的取值需要根据电源电压、负载电容、PCB走线距离、器件制造工艺以及标准向下兼容性等因素综合考虑。为了适应快速模式(400Kbps)的传输速度,设计时通常以快速模式为基础,确保总线负载电容小于200pF。
关于上拉电阻的讨论还在继续。一般而言,RP的值不应过低或过高。过低可能导致端口输出低电平值过高,甚至可能损坏端口;而过高则可能导致信号上升时间过长,无法满足数据传输的要求。
在部分应用场景中,如Camera模组,主从设备及上拉电阻电源的一致性问题也需要考虑。例如,当Camera模组不工作时,为了防止漏电流的产生,上拉电阻的电源应与Slave设备的电源同步关闭。
一起学习硬件知识,共同进步!