刚才我意识到I 2 C数据和时钟线(SDA和SCL)必须具有上拉电阻。
好了,根据下面的示意图,我已经使用DS1307 RTC构建了几个时钟(请参见数据表)。注意,我省略了两个上拉电阻。
两个时钟都可以正常工作,其中一个时钟已经工作了3个月以上。那怎么可能?无论如何,我想知道:
省略I 2 C上拉时会发生什么?
缺少上拉电阻是否可能损坏板上的这两个IC中的任何一个?
我得到的答案可以解决我将ATmega328P连接到DS1307 RTC的特定情况,就像我提供的原理图一样,但是如果问题不是太广泛,那么了解通常省略上拉电阻会发生什么会有所帮助。 ,即在I 2 C操作的其他情况下。
PS。我确实在网上搜索以找到答案,但是可以找到有关确定引体向上尺寸的文章。
更新:我使用的是Arduino IDE 1.03,并且我的固件使用DS1307RTC Arduino库(通过其功能RTC.read()
和RTC.write()
)处理RTC 。该库反过来又Wire.h
用来与RTC对话。
更新2:下面是一系列示波器镜头,它们帮助我解释了I 2 C 如何在没有外部上拉电阻的情况下工作。
更新3(在添加I 2 C上拉之后):以下是在I 2 C线(在同一板上)上添加适当的(4K7)上拉电阻后拍摄的另一系列示波器。上升时间从大约5 µs降至290 ns。I 2 C现在更加快乐。