單線掛多個DS18B20的一個誤區(qū)
單線掛多個DS18B20為什么就不對?
原理不懂?快把數(shù)據(jù)手冊背下來了...
時序?很好,掛示波器看看,沒問題啊。
延時,很精確,不錯。復位?
有應答啊,數(shù)據(jù)手冊上就是這么寫滴哇,怪了。
什么?等等,應答了2次?我的乖乖,屏蔽之,ok,問題解決。
總結一下,看數(shù)據(jù)手冊固然重要,問題是要具體情況具體分析,手冊上復位章節(jié)講的是單設備復位的情況,多個設備復位順序有先后,導致前一次的應答信號干擾了后面的設備(反應慢,沒辦法),使其誤以為是上升沿到來,結果主機開始發(fā)下一條指令時候這家伙開始應答,你說指令能不出錯嗎?正確的做法:不要迷信網上流傳的程序,自己看懂時序,根據(jù)實際情況修改下復位程序,包括延時和控制信號,本人的做法是在主機復位周期內發(fā)出上升沿的15us內把總線拉低480us,這樣可以有效防止各探頭的復位信號延遲的先后對后面指令的干擾。(有幾個探頭確實反應慢,不能和其他探頭放一起,其他用網上程序是可以的)。