EDA365电子论坛网

标题: 接多个I2C从设备出现问题 [打印本页]

作者: moybe    时间: 2016-5-18 10:42
标题: 接多个I2C从设备出现问题
一个MCU上的I2C接2个从设备A  FTC692L和B HIS3DH,单独测试都能正常工作,两个一起接上后,只有A能正常工作,B的I2C无法工作。我想可能是A没工作的时候I2C不是高阻状态。想用一个IO开关来控制A的I2C接口,IO开关是FSA266,但实现不了,各位有好的办法解决吗?
作者: bluskly    时间: 2016-5-18 11:01
上拉电阻多大? 地址都是哪些? 关于IO开关,直接用一个模拟开关估计可以吧?
作者: flywinder    时间: 2016-5-18 11:47
地址有没有冲突哦
作者: moybe    时间: 2016-5-18 14:29
没有冲突,后面的设备是可以更换地址的,我更换地址后,情况还是一样。
作者: moybe    时间: 2016-5-18 15:15
bluskly 发表于 2016-5-18 11:01, U( }* w( I2 R! z: z1 K( Y2 O2 a
上拉电阻多大? 地址都是哪些? 关于IO开关,直接用一个模拟开关估计可以吧?
- h4 ~6 p! {" C2 S; r
上拉的电阻用的是10k,4.7K都试过。模拟开关的型号有吗?# k) j3 I- q" E, ^2 f

作者: xhy_hard    时间: 2016-5-18 23:29
直接测试,让b工作起来后,操作a,看看时钟,数据正不正常?估计时钟或者数据一直被拉低或者拉高
作者: xhy_hard    时间: 2016-5-18 23:34
用两个nmos管+一个io口就可以实现
作者: bluskly    时间: 2016-5-19 10:12
我最低用过330R的 最起码也得用1K的啊 4.7K的太大了
作者: bluskly    时间: 2016-5-19 10:16
http://www.ti.com.cn/lsds/ti_zh/ ... Id=1200520#p480=2;2
作者: moybe    时间: 2016-5-19 15:07
xhy_hard 发表于 2016-5-18 23:291 C, q3 g5 B  }& J
直接测试,让b工作起来后,操作a,看看时钟,数据正不正常?估计时钟或者数据一直被拉低或者拉高

" N$ ]7 `) m2 L连上A的时候,B还不能正常工作。
; D, k; q  i% g* h" W" K, a! l
作者: moybe    时间: 2016-5-19 15:10
bluskly 发表于 2016-5-19 10:12
0 Z8 c" K4 `2 m! ^9 t% {我最低用过330R的 最起码也得用1K的啊 4.7K的太大了
( X. ~, h4 g* y6 @( C" R
现在时钟和数据上都串联一个电阻,时钟串联是4.7K的,数据串联的是1K,数据用510欧姆电阻上拉,时钟用的是10K上拉时钟信号能正常了。但是数据信号高低电平变化只有80mv。7 h  S- X& L# C  }) A+ g
3 p1 J4 e! L1 U$ s! Q

作者: baihua2010    时间: 2016-5-19 17:28
用示波器量一下I2C波形,看看是什么问题,另外,你串10K电阻也太大了吧,一般串个几十欧的就可以了,上啦4.7K应该够了,另外两个芯片的复位有没有问题
作者: 705621057    时间: 2016-5-19 17:49
首先,在A没工作的时候,I2C也应该是处于上拉状态,你要看看你的电路在都贴上去的时候,I2C空闲是不是高电平;其次,一起接上的时候A可以,B不行,单独贴的时候A和B都可以,其实可以证明I2C的硬件电路是好的;尝试加长I2C时序的中的延时,如果两片的地址不重复,不会出现楼主说的这种现象的;如果你真的想用开关来解决,用一个带使能端的244就可以,又便宜,又好用!




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2