找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5892|回复: 20
收起左侧

关于I2C总线SCL和SDA上拉电阻的问题

  [复制链接]
ID:446775 发表于 2020-2-11 16:59 | 显示全部楼层 |阅读模式
为什么我在使用I2C总线时,SCL和SDA这两条总线加上上拉电阻和不加上拉电阻效果都一样呢?
回复

使用道具 举报

ID:235200 发表于 2020-2-12 00:00 | 显示全部楼层
加上拉电阻更加可靠,特别是多个IIC总线器件并联时,不加上拉电阻有时可能出错误,你目前测试正确,不能说明100%的每一次正确
回复

使用道具 举报

ID:446775 发表于 2020-2-12 12:25 | 显示全部楼层
csmyldl 发表于 2020-2-12 00:00
加上拉电阻更加可靠,特别是多个IIC总线器件并联时,不加上拉电阻有时可能出错误,你目前测试正确,不能说明100 ...

嗯,我正准备再并联一个E2PROM,目前连接的只有一个ADC
回复

使用道具 举报

ID:635223 发表于 2020-2-12 15:41 | 显示全部楼层
加上拉电阻信号的抗干扰性较好,一般正常情况下使用上看不出什么区别,i2c对信号质量要求不高,我实际测试过,用示波器抓了scl和sda的波形,即使不是方波(斜率很大),也可以正常通讯。
回复

使用道具 举报

ID:272919 发表于 2020-2-12 16:14 | 显示全部楼层
楼主多挂两个设备就知道了
回复

使用道具 举报

ID:658700 发表于 2020-2-12 17:25 | 显示全部楼层
信号斜率很大也可以,i2c比较抗干扰,当然加上之后出错率会大大降低
回复

使用道具 举报

ID:511890 发表于 2020-2-13 04:25 | 显示全部楼层
这个如果有看单片机说明文档的话就很好理解。一般单片机各数据引脚自身产生电压时电流非常小,而I2C有时候会挂载多个芯片,每个芯片/元器件虽然耗电很少,多个的话也会把本来就小的电流给耗掉,这就会产生失真,导致通讯错误。因此要一个上拉电阻来保证高电平时的信号准确性。
回复

使用道具 举报

ID:679425 发表于 2020-2-13 11:40 | 显示全部楼层
加上拉电阻信号的抗干扰性较好
回复

使用道具 举报

ID:446775 发表于 2020-8-4 12:43 | 显示全部楼层
幻剑心 发表于 2020-2-13 04:25
这个如果有看单片机说明文档的话就很好理解。一般单片机各数据引脚自身产生电压时电流非常小,而I2C有时候 ...

好的,我明白了
回复

使用道具 举报

ID:811185 发表于 2020-8-4 14:20 | 显示全部楼层
一般模块规格书和电路中都有说明
回复

使用道具 举报

ID:446775 发表于 2020-10-26 09:24 | 显示全部楼层
yuanyuantou 发表于 2020-8-4 14:20
一般模块规格书和电路中都有说明

好的,我多实验一下看看效果
回复

使用道具 举报

ID:401564 发表于 2020-10-26 14:22 | 显示全部楼层
如果是STC的单片机,时钟是不需要上拉电阻的,可以把SCL端口设定为强推挽模式就可以了
SDA最好是要有,能正常工作只是运气好而已,
回复

使用道具 举报

ID:446775 发表于 2020-10-26 22:35 | 显示全部楼层
Y_G_G 发表于 2020-10-26 14:22
如果是STC的单片机,时钟是不需要上拉电阻的,可以把SCL端口设定为强推挽模式就可以了
SDA最好是要有,能正常 ...

嗯嗯,受教了
回复

使用道具 举报

ID:420836 发表于 2020-10-27 07:39 | 显示全部楼层
上拉电阻可能已经包含在I2C总线的另一侧。
回复

使用道具 举报

ID:143767 发表于 2020-10-27 17:40 | 显示全部楼层
沙发是正解
回复

使用道具 举报

ID:828160 发表于 2020-10-27 21:22 | 显示全部楼层
因为主机或从机已有上拉电阻,你把主机和从机都设置为开漏,不带上电阻试试
回复

使用道具 举报

ID:446775 发表于 2020-10-27 22:05 | 显示全部楼层
单片机研究协会 发表于 2020-10-27 21:22
因为主机或从机已有上拉电阻,你把主机和从机都设置为开漏,不带上电阻试试

是的,我这边使用的一个I2C设备上已经有上拉电阻,一开始没有注意
回复

使用道具 举报

ID:245053 发表于 2020-10-28 10:44 | 显示全部楼层
什么看干扰强啊,IIC的SDA是开漏输出,在电路设计时必须上拉电阻(一般是10K)才能正常工作,否则电平不确定通信受影响
回复

使用道具 举报

ID:446775 发表于 2020-10-28 14:44 | 显示全部楼层
pcf2000 发表于 2020-10-28 10:44
什么看干扰强啊,IIC的SDA是开漏输出,在电路设计时必须上拉电阻(一般是10K)才能正常工作,否则电平不确定 ...

是的,确实是必须加上拉电阻才能正常工作
回复

使用道具 举报

ID:839689 发表于 2020-11-6 11:06 | 显示全部楼层
为了加大IO的驱动能力,增大抗干扰能力和稳定性的,减低错码率,一次两次不错不代表一直不会出错,多组I2C、或者速率更高时就可能容易出错,加上拉会有一定保障
回复

使用道具 举报

ID:446775 发表于 2020-11-6 16:22 | 显示全部楼层
1683296611 发表于 2020-11-6 11:06
为了加大IO的驱动能力,增大抗干扰能力和稳定性的,减低错码率,一次两次不错不代表一直不会出错,多组I2C ...

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表