标题: 关于I2C总线SCL和SDA上拉电阻的问题 [打印本页]

作者: karolyte    时间: 2020-2-11 16:59
标题: 关于I2C总线SCL和SDA上拉电阻的问题
为什么我在使用I2C总线时,SCL和SDA这两条总线加上上拉电阻和不加上拉电阻效果都一样呢?

作者: csmyldl    时间: 2020-2-12 00:00
加上拉电阻更加可靠,特别是多个IIC总线器件并联时,不加上拉电阻有时可能出错误,你目前测试正确,不能说明100%的每一次正确
作者: karolyte    时间: 2020-2-12 12:25
csmyldl 发表于 2020-2-12 00:00
加上拉电阻更加可靠,特别是多个IIC总线器件并联时,不加上拉电阻有时可能出错误,你目前测试正确,不能说明100 ...

嗯,我正准备再并联一个E2PROM,目前连接的只有一个ADC
作者: okokhi    时间: 2020-2-12 15:41
加上拉电阻信号的抗干扰性较好,一般正常情况下使用上看不出什么区别,i2c对信号质量要求不高,我实际测试过,用示波器抓了scl和sda的波形,即使不是方波(斜率很大),也可以正常通讯。
作者: a1113079022    时间: 2020-2-12 16:14
楼主多挂两个设备就知道了
作者: 1207934463    时间: 2020-2-12 17:25
信号斜率很大也可以,i2c比较抗干扰,当然加上之后出错率会大大降低
作者: 幻剑心    时间: 2020-2-13 04:25
这个如果有看单片机说明文档的话就很好理解。一般单片机各数据引脚自身产生电压时电流非常小,而I2C有时候会挂载多个芯片,每个芯片/元器件虽然耗电很少,多个的话也会把本来就小的电流给耗掉,这就会产生失真,导致通讯错误。因此要一个上拉电阻来保证高电平时的信号准确性。
作者: haierzaifei11    时间: 2020-2-13 11:40
加上拉电阻信号的抗干扰性较好
作者: karolyte    时间: 2020-8-4 12:43
幻剑心 发表于 2020-2-13 04:25
这个如果有看单片机说明文档的话就很好理解。一般单片机各数据引脚自身产生电压时电流非常小,而I2C有时候 ...

好的,我明白了
作者: yuanyuantou    时间: 2020-8-4 14:20
一般模块规格书和电路中都有说明
作者: karolyte    时间: 2020-10-26 09:24
yuanyuantou 发表于 2020-8-4 14:20
一般模块规格书和电路中都有说明

好的,我多实验一下看看效果
作者: Y_G_G    时间: 2020-10-26 14:22
如果是STC的单片机,时钟是不需要上拉电阻的,可以把SCL端口设定为强推挽模式就可以了
SDA最好是要有,能正常工作只是运气好而已,
作者: karolyte    时间: 2020-10-26 22:35
Y_G_G 发表于 2020-10-26 14:22
如果是STC的单片机,时钟是不需要上拉电阻的,可以把SCL端口设定为强推挽模式就可以了
SDA最好是要有,能正常 ...

嗯嗯,受教了
作者: TTQ001    时间: 2020-10-27 07:39
上拉电阻可能已经包含在I2C总线的另一侧。
作者: dj3365191    时间: 2020-10-27 17:40
沙发是正解
作者: 单片机研究协会    时间: 2020-10-27 21:22
因为主机或从机已有上拉电阻,你把主机和从机都设置为开漏,不带上电阻试试
作者: karolyte    时间: 2020-10-27 22:05
单片机研究协会 发表于 2020-10-27 21:22
因为主机或从机已有上拉电阻,你把主机和从机都设置为开漏,不带上电阻试试

是的,我这边使用的一个I2C设备上已经有上拉电阻,一开始没有注意
作者: pcf2000    时间: 2020-10-28 10:44
什么看干扰强啊,IIC的SDA是开漏输出,在电路设计时必须上拉电阻(一般是10K)才能正常工作,否则电平不确定通信受影响
作者: karolyte    时间: 2020-10-28 14:44
pcf2000 发表于 2020-10-28 10:44
什么看干扰强啊,IIC的SDA是开漏输出,在电路设计时必须上拉电阻(一般是10K)才能正常工作,否则电平不确定 ...

是的,确实是必须加上拉电阻才能正常工作
作者: 1683296611    时间: 2020-11-6 11:06
为了加大IO的驱动能力,增大抗干扰能力和稳定性的,减低错码率,一次两次不错不代表一直不会出错,多组I2C、或者速率更高时就可能容易出错,加上拉会有一定保障
作者: karolyte    时间: 2020-11-6 16:22
1683296611 发表于 2020-11-6 11:06
为了加大IO的驱动能力,增大抗干扰能力和稳定性的,减低错码率,一次两次不错不代表一直不会出错,多组I2C ...

如果多组I2C的话,那么每个I2C器件都要加吗?还是说这些I2C器件共用上拉电阻?




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1