我正在发送我的数据I2C (使用DMA每1s)。我已经在SCK和SDATA中添加了两个上拉电阻。现在有了从属,所以因为没有响应,所以主机只发送从属地址,仅此而已。
它的试验板,所以有时会发生,我失去这些上拉电阻一段时间。当这种情况发生时,我没有得到更多的数据,SCK在这个频率下尽可能快地计时。没有办法解决它,拉回没有帮助,我必须重置我的主板。
我无法解释这种行为,它完全扼杀了公交车。
发布于 2011-07-27 04:30:26
正如您已经看到的,上拉电阻对i2c总线至关重要,在sda和scl线路中都是如此。通常很明显,sda线路是双向的,但不那么明显的是,scl也有些双向,因为从设备可以将线路保持在低电平以降低总线的速度。
在许多情况下,总线可能会因为冲突或其他物理问题而被锁定,在这种情况下,一些从机无法正确释放总线,因为它们知道它们仍在被寻址。这种情况可以通过主机发送输出SCL脉冲以及线路释放时的停止条件来解决。然而,如果你说没有奴隶,这可能不是你的情况。
我担心您的问题可能与主机的i2c外设没有看到预期的线路高,因为拉出暂时断开。在你的情况下,我能想到的最好的解决方案是你应该确保你不会放松那些引体向上。实现这一点的最好方法是在每条线路上并联连接两个或三个电阻器,这样就必须断开所有两个/三个电阻的连接,以使总线“不被拉”。将两个10k电阻并联用于SDA,另外两个用于SCL。
https://stackoverflow.com/questions/6831214
复制相似问题