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