I2C总线挂两个芯片是否会有问题?

[复制链接]
3676|13
 楼主| 清风致影 发表于 2013-8-9 15:22 | 显示全部楼层 |阅读模式
    以前做个了产品,是用单片机模拟I2C与存储器通讯,产品在读写存储器一直没有问题。
    现在做产品改进,要在I2C线上多挂一个LED驱动芯片,目前发现有个别产品在读写存储器出现数据错误的情况,而个别产品发现LED驱动芯片无法驱动LED的情况,但其余大部分仪器是正常的,所以不知道哪方面除了问题?I2C总线挂两个芯片是否会有问题?

gingaer 发表于 2013-8-9 15:34 | 显示全部楼层
I2C总线当然支持挂2个从设备啊,LZ遇到的问题原因估计不在于此吧。
jjjyufan 发表于 2013-8-9 15:55 | 显示全部楼层
地址不一样 一般没有问题,
除非驱动能力的问题,上拉你用多少?换4.7k试试
电平得一致 读写的时候IIC设备都要通电 不要关闭其中一个 以免信号拉低
 楼主| 清风致影 发表于 2013-8-9 16:53 | 显示全部楼层
jjjyufan 发表于 2013-8-9 15:55
地址不一样 一般没有问题,
除非驱动能力的问题,上拉你用多少?换4.7k试试
电平得一致 读写的时候IIC设备 ...

地址不一样的,上拉用4.7k的
ic是一直通电的
hyminzhu 发表于 2013-8-9 17:13 | 显示全部楼层
用示波器抓波形,分析一下数据丢失情况
jjjyufan 发表于 2013-8-9 17:21 | 显示全部楼层
速度放慢点
iceyu 发表于 2013-8-9 22:35 | 显示全部楼层
本帖最后由 iceyu 于 2013-8-9 22:39 编辑

如果两个芯片不一样的话可以的。但是如果两个芯片一样的,我觉得就不行了,因为两个芯片都会响应,导致两个slave抢占iic的sda信号。
话说IIC还真是各种问题,特别是上电的时候,IIC上有可能产生start信号,导致设备工作不正常,还是用示波器捕捉看看吧。
soso 发表于 2013-8-9 23:02 | 显示全部楼层
推挽驱动SCLK
fastolf 发表于 2013-8-10 10:14 | 显示全部楼层
与挂几个设备无关。I2C问题更有可能是总线上某一根线由于无效的读写操作等造成总线没有释放,SDA或者SCL处于低电平状态,也就是I2C锁死,类似的问题论坛里面很多。。。
飞鹰嵌入式 发表于 2013-8-10 12:30 | 显示全部楼层
3楼正解
 楼主| 清风致影 发表于 2013-8-10 14:25 | 显示全部楼层
fastolf 发表于 2013-8-10 10:14
与挂几个设备无关。I2C问题更有可能是总线上某一根线由于无效的读写操作等造成总线没有释放,SDA或者SCL处 ...

你的意思是 即使是读写错误也要考虑要释放总线的处理?
gx_huang 发表于 2013-8-10 14:44 | 显示全部楼层
要确认一下个别板子的问题是一直有问题,还是偶尔有问题?
一般是I2C驱动做的不规范,先用示波器看看一个完整的I2C读写波形。
驱动时序,比如ACK的判断,都要完全按照要求处理。
fastolf 发表于 2013-8-10 14:45 | 显示全部楼层
清风致影 发表于 2013-8-10 14:25
你的意思是 即使是读写错误也要考虑要释放总线的处理?

是的,你用IO模拟的I2C,遇到错误,可以将I2C复位的。详见截图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
xvbct 发表于 2013-8-10 20:45 | 显示全部楼层
协议问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我在背后默默的看着你 默默的看着你渐去渐远渐无影

165

主题

1168

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部