这主要是因为I2C芯片的SDA和SCL引脚采用开漏输出方式,即仅配备一个NMOS管,与推挽输出方式的两个MOS管有所不同。当I2C芯片的SDA和SCL引脚输出的MOS管处于导通状态时,I2C信号线的电平会被拉低至低电平。当I2C芯片的SDA和SCL引脚输出的MOS管关闭时,若缺乏上拉电阻,I2C信号线将呈现高阻态,其电平状态变得不确定。
当SCL为高电平时,SDA总线拉低。 数据传输: IIC总线在进行数据传输时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在SCL为低电平期间,数据线上的电平状态才允许有变化。 停止信号: 上面提到了在SCL为高电平时数据线不允许有变化,这时为了防止触发停止位,停止位为: 在SCL为高电平时,SDA从低电平跳变到...
我们都知道I2C协议中规定I2C的SCL和SDA都是开漏输出,开漏输出只能输出低电平不能输出高电平,我们想要输出高电平就需要加上拉电阻来实现。I2C协议中为什么要规定SCL和SDA是开漏输出?首先I2C是多主多从结构,一条总线上挂有多个设备;如果是推挽输出,当两个设备的电平不同时则会造成短路。开漏输出除了能防止多设备使...
I2C采用的是开漏输出,没有输出(逻辑1)的能力,所以导致需要一个上拉电阻来提供这个必要的拉高,确保在没有设备主动拉低线路时,SDA和SCL线维持在高电平状态。2. 限流和保护:为什么不直接采用推挽输出?当两个设备同时输出,一个为(逻辑1)另外台设备输出(逻辑0)时,此时的电源是短路状态,必有一个设备会烧...
在I2C总线中的上拉电阻用于为信号线提供默认状态,在电路中与电源连接。其主要作用是提供高电平电流,并确保I2C设备的正常运行。选择合适的阻值对于电路稳定至关重要。在I2C电路设计中,SCL和SDA线通常会与电源之间连接一个电阻,这个电阻就是上拉电阻。它的主要作用是为信号线或GPIO引脚提供一个默认的状态。此外,...
根据总线电容计算上拉电阻的最大值 一、I2C的上拉电阻 我们知道,在I2C的电路中,在SCL、SDA线与电源之间通常会接一个电阻,这个电阻称之为上拉电阻。 但什么是上拉电阻? 上拉电阻主要用于为信号线或GPIO引脚提供默认状态。通常选择几K或几十K阻值的电阻。阻值较大的电阻确保不会通过电阻不断地将过多的电流引入...
I2C总线由SDA和SCL两条线路组成。连接到总线的每个器件都应采用漏极开路输出,并通过上拉电阻与电源相连,以实现“线与”功能。当总线处于空闲状态时,这两条线路都保持高电平。关于上拉电阻的阻值选择,需考虑多个因素。阻值不能过小,否则会导致VDD灌入端口的电流过大,增加功耗并可能违反I2C协议中关于低电平值的...
I2C总线(SDA,SCL)内部都使用漏极开路驱动器(开漏驱动),因此SDA和SCL可以被拉低为低电平,但是不能被驱动为高电平,所以每条线上都要使用一个上拉电阻,默认情况下将其保持在高电平。 I2C的上拉电阻可以是1.5K,2.2K,4.7K,电阻的大小对时序有一定影响,对信号的上升时间和下降时间也有影响,一般接1.5K或2.2K。 上...
I2C信号需要上拉电阻的原因与其工作原理密切相关。I2C是一种开放漏极(open-drain)或开集电极(open-collector)的通信协议,这意味着驱动器(主设备或从设备)只能将线拉低到低电平(逻辑0),但不能主动将线拉高到高电平(逻辑1)。 在I2C通信中,SDA(数据线)和SCL(时钟线)在空闲状态下都应处于高电平。为了实现这一点...