TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS32C5535的IIC一主二从,其中一个从机设备的线从总线脱离会导致另外一个从机设备也获取不到数据

尊敬的TI官方

       是这样的,我最近在开发TMS32C5535的IIC遇到了一个问题。

       就是我现在的IIC总线设备上挂载着两个从机设备。在代码中我分别轮番在读取两个设备的数据。但是我现在发现其中一个从机设备的线从总线脱离会导致另外一个从机设备也获取不到数据。我研究了好久并没有得到答案,麻烦官方人员帮我分析一下问题所在。
       问题描述:1.首先两个从机设备都挂载在总线上,数据读取完好,但是一旦我把一个从机设备从总线上分离,那么另外一个从机设备也再也读取不到数据了。我最后也尝试再将这个从机设备插回总线上,发现另外一个从机设备开始能够读到完好的数据,但是插回到总线的从机设备开始读不到数据了。
        2. 在程序还未执行的时候我就把一个从机设备从总线上分离,然后让程序开始跑。发现未脱离的总线设备就读不到数据了。一旦那个脱离总线那个设备恢复到总线上去,一直在总线上的那个从机设备就能够读取到数据了。而恢复到总线上的那个设备读取不到数据了。

        我对这样的问题非常疑惑。我能通过示波器能看到IIC总线的访问还是正常运行,不过数据都是0。

Nancy Wang:

从总线上分离设备时,请确认是否将上拉电阻也脱离了?导致剩下的从机工作不正常。
是带电脱离的吗?如果不带电脱离的情况下,是否存在问题?
另外示波器能看到IIC总线的访问还是正常运行不过数据都是0,是指时序正常?请详细描述一下。

,

user6393475:

1.  我这边使用的是模块化的IIC从机设备,用的杜邦线与我的主设备连接,模块上面是带有上拉电阻的。所以从总线上分离设备时,也把那个从机带的上拉电阻分离了。

2. 我上面描述的情况是把VCC  GND  SCL   SDA  四根线都同时脱离的情况。因为我这个从机模块是可能有用着用着拔掉的情况发生。

2.1  另外我测试了不带电仅把SCL   SDA两根线脱离的情况也是会导致另外一个还在总线上的设备测试到的数据为0。但是一旦我把SCL和SDA接上去两个设备又同时能读取到数据了。这是区别于我上面描述的情况的

3. IIC总线的访问还是正常运行,时序是正常的。以下这张图是两个从机设备都在线的情况的波形图。

以下这张是一个从机设备的SDA和SCL脱离总线的情况

,

Tony Tang:

user6393475 说:1.  我这边使用的是模块化的IIC从机设备,用的杜邦线与我的主设备连接,模块上面是带有上拉电阻的。所以从总线上分离设备时,也把那个从机带的上拉电阻分离了

断开模块后,C5535这头的I2C信号线上还有上拉电阻吗?

,

user6393475:

还有的

,

Tony Tang:

黄色应该是SCL时钟信号吧,蓝色是数据线,从给出的第二个图,看不出数据为0。最好是把两个信号分开,不要重叠,幅度可以不要把那么大,时间尺度可以放大些。是不是硬件上断开了一个I2C slave,但软件还在访问他?

,

user6393475:

是的,我从硬件上断开了一个I2C slave,但软件还在访问它。

数据为"0"这个意思是从机设备在IIC主机设备在寻址的过程中从机设备不响应了。导致数据为0。

,

Tony Tang:

从提供的信息,不知道是断开后继续访问这个断开的设备有问题,还是访问两个设备都有问题。

但是从波形可以确定的是host端,即C5535端是没有问题的,无论是SCL,SDA,都能正确输出波形,信号线能翻转,并没有被拉死。

如果是访问某个slave address没响应,应该从这人slave端找原因。因为整个系统你才是最清楚的,是不是在插拨的时候影响到了别一个slave.

赞(0)
未经允许不得转载:TI中文支持网 » TMS32C5535的IIC一主二从,其中一个从机设备的线从总线脱离会导致另外一个从机设备也获取不到数据
分享到: 更多 (0)