请教各位大神,我在长距离使用I2C遇到的问题!
本人在使用SHT11这块测量温湿度器件的时候,将其通过10M的传输线进行传输。其实SHT11也不是标准的I2C器件,但是很类似。在单片机发送数据给SHT11后等待ACK,却发现SHT11无法将电平拉低,导致单片机无法读取数据。但是很奇怪的现象出现了:当我将手或者其它类似镊子等触摸到SHT11的DATA焊盘上的时候,此时可以将电平拉低了,且输出的数据准确稳定;但是把手或者其它类似镊子等拿开的时候,立马没有数据输出,这让我很纳闷!请教各位,怎么解决此问题?程序是正确的,一开始在使用1M长的传输线时没有任何问题且数据稳定。现在的问题就是SHT11无法将电平拉低。使用3.3V电压。这个,我也正在做SHT11,还是新手,sht11与单片机是公地的吧?还有可能是DATA线上的上拉电阻是否有影响?只是个人猜测,不正确勿怪。呵呵 2# SYHDJF 2# SYHDJF 是共地的。我现在的困惑不是能不能传输十米。我用示波器测试了,波形确实会受到干扰,但是问题不大。我现在的困惑是为什么用手或者其它东西碰一下焊盘就有数据输出,而不碰则没有输出。。。 本人纯属猜测:可能是信号线与人接触后可以消除干扰信号。 还是请牛人给你答复吧,我这纯粹瞎猜。不靠谱啊 6# SYHDJF 唉我们单位工作很多年的工程师叫我在DATA脚和地之间接一个小电容,更改上拉电阻的阻值,统统没用。。还是用手一触碰,保准好用,一试就灵。。。实在不行我用个单片机做中继核心,然后用232发到终端去 有人推荐采用双绞线试一下,你自己采取最好的吧 说明楼主的系统地噪声很大,人体接触以后相当于一个泄放回路,将系统地与大地相连,同时对I2C器件的供电进行适当去耦。 呵呵路过 楼主SDA到地的电容是不是加的太大了?加个47pF的看看。
当然,也可以把SDA和SCL的线撕开看看,进了互相干扰比较大。
页:
[1]