经常补钙 发表于 2011-8-19 18:14

请教各位大神,我在长距离使用I2C遇到的问题!

本人在使用SHT11这块测量温湿度器件的时候,将其通过10M的传输线进行传输。其实SHT11也不是标准的I2C器件,但是很类似。在单片机发送数据给SHT11后等待ACK,却发现SHT11无法将电平拉低,导致单片机无法读取数据。但是很奇怪的现象出现了:当我将手或者其它类似镊子等触摸到SHT11的DATA焊盘上的时候,此时可以将电平拉低了,且输出的数据准确稳定;但是把手或者其它类似镊子等拿开的时候,立马没有数据输出,这让我很纳闷!请教各位,怎么解决此问题?程序是正确的,一开始在使用1M长的传输线时没有任何问题且数据稳定。现在的问题就是SHT11无法将电平拉低。使用3.3V电压。


SYHDJF 发表于 2011-8-19 18:28

这个,我也正在做SHT11,还是新手,sht11与单片机是公地的吧?还有可能是DATA线上的上拉电阻是否有影响?只是个人猜测,不正确勿怪。呵呵

经常补钙 发表于 2011-8-19 18:42

2# SYHDJF

经常补钙 发表于 2011-8-19 18:45

2# SYHDJF 是共地的。我现在的困惑不是能不能传输十米。我用示波器测试了,波形确实会受到干扰,但是问题不大。我现在的困惑是为什么用手或者其它东西碰一下焊盘就有数据输出,而不碰则没有输出。。。

SYHDJF 发表于 2011-8-19 19:26

本人纯属猜测:可能是信号线与人接触后可以消除干扰信号。

SYHDJF 发表于 2011-8-19 19:27

还是请牛人给你答复吧,我这纯粹瞎猜。不靠谱啊

经常补钙 发表于 2011-8-19 19:38

6# SYHDJF 唉我们单位工作很多年的工程师叫我在DATA脚和地之间接一个小电容,更改上拉电阻的阻值,统统没用。。还是用手一触碰,保准好用,一试就灵。。。实在不行我用个单片机做中继核心,然后用232发到终端去

SYHDJF 发表于 2011-8-19 20:18

有人推荐采用双绞线试一下,你自己采取最好的吧

chunyang 发表于 2011-8-19 23:10

说明楼主的系统地噪声很大,人体接触以后相当于一个泄放回路,将系统地与大地相连,同时对I2C器件的供电进行适当去耦。

ydw1991 发表于 2011-8-20 00:57

呵呵路过

linqing171 发表于 2011-8-20 07:00

楼主SDA到地的电容是不是加的太大了?加个47pF的看看。
当然,也可以把SDA和SCL的线撕开看看,进了互相干扰比较大。
页: [1]
查看完整版本: 请教各位大神,我在长距离使用I2C遇到的问题!