国产粉嫩小泬在线观看泬-亚洲中文字幕无码乱线-色呦呦官网-国产色爽-偷窥村妇洗澡毛毛多-亚洲狠狠做深爱婷婷影院-国产精品1-国产精彩视频在线-无码精品人妻一区二区三区免费看-国产av老师丝袜美腿丝袜-久久99婷婷-成人性生生活性生交3-性xxxx狂欢老少配o-九九九久久久久-黄色免费网站在线看-亚洲综合色区另类小说-欧美a∨-av在线免费观看网址-岛国av在线免费观看-国产精品v片在线观看不卡

你的位置:首頁 > 互連技術(shù) > 正文

詳談:I2C設(shè)備導(dǎo)致死鎖怎么辦?

發(fā)布時(shí)間:2019-11-13 責(zé)任編輯:wenwei

【導(dǎo)讀】一般情況下, i2c 設(shè)備焊接沒什么問題,按照設(shè)備手冊(cè)一步步來,基本上就順風(fēng)順?biāo)軌蛴闷饋?。如果這么一個(gè)簡(jiǎn)單的東西,有時(shí)候想要的結(jié)果死活不出來,反復(fù)的檢查問題的原因,查詢解決辦法,核查設(shè)備的數(shù)據(jù)手冊(cè),甚至發(fā)送和接收的每一條命令與數(shù)據(jù)都知道是什么意思,仍然無法解決問題,那該怎么辦呢?
 
本文主要針對(duì) i2c 設(shè)備,講解如何解決 i2c 設(shè)備主機(jī)與從機(jī)直接無法正常數(shù)據(jù)交互的問題,側(cè)重點(diǎn)是針對(duì)硬件設(shè)計(jì)不太合理、i2c 設(shè)備設(shè)計(jì)不標(biāo)準(zhǔn)導(dǎo)致總線故障的情況,并且通過分析現(xiàn)象,提出解決方案。對(duì)于在設(shè)備初始化中,沒有設(shè)置相應(yīng)的寄存器或者發(fā)送命令,而導(dǎo)致的無法獲取想要的數(shù)據(jù)情況,不作詳細(xì)介紹。
 
一、i2c 基本用法
 
i2c 總線是一種簡(jiǎn)單、雙向二線制同步串行總線。所有主機(jī)在 SCL 線上產(chǎn)生它們自己的時(shí)鐘來傳輸總線上的報(bào)文,SDA 線傳輸每個(gè)字節(jié)必須為 8 位,每次傳輸可以發(fā)送的字節(jié)數(shù)量不受限制,每個(gè)字節(jié)后必須跟一個(gè)響應(yīng)位。在空閑狀態(tài)時(shí),SCL 與 SDA 均為高電平。
 
通常一些低功耗 i2c 設(shè)備,芯片引腳使用上拉輸出即可滿足與其正常數(shù)據(jù)交互,還有一些 i2c 設(shè)備,則需要在總線上外加一個(gè)上拉電阻,此時(shí)相應(yīng)的 I/O 配置成開漏輸出,其他的按照芯片手冊(cè)進(jìn)行標(biāo)準(zhǔn)配置。
 
二、硬件問題匯總
 
2.1 無法正常拉高拉低引腳
 
首先確定 SDA 與SCL 引腳能夠被拉高、拉低,檢測(cè)方式直接軟件控制 I/O 口輸出引腳低電平/高電平,測(cè)量引腳電壓是否能夠隨著芯片引腳的設(shè)置輸出相應(yīng)的狀態(tài)。
如果不能被拉低,檢測(cè)虛焊、上拉電阻斷開、i2c 設(shè)備是否正常、芯片引腳是否損壞等問題,確保能夠正常被拉高或者拉低。
 
2.2 電氣特性無法滿足
 
如果正常拉高、拉低的情況下,依然無法正常讀取數(shù)據(jù)。通常建議,根據(jù)負(fù)載電流更換小阻值的電阻。
 
如果需要詳細(xì)知道原因,就具體查詢 i2c 設(shè)備電氣特性。大多數(shù) i2c 設(shè)備電氣特性,大致下圖所示
 
詳談:I2C設(shè)備導(dǎo)致死鎖怎么辦?
 
通常這塊內(nèi)容在 i2c 設(shè)備電氣特性這一塊,主要講解電平拉高拉低的最長(zhǎng)時(shí)間、最短時(shí)間,以及處于高電平與電平的閾值與持續(xù)時(shí)間等等內(nèi)容。
 
硬件設(shè)計(jì),為了降低單片機(jī)的功耗與保護(hù)芯片引腳,在滿足負(fù)載電流和負(fù)載電容相關(guān)要求的前提下,阻值設(shè)置通常比較大。如果同一個(gè)總線上掛載多個(gè) i2c 設(shè)備, 即使在 I/O 口配置正確的前提下,也會(huì)導(dǎo)致驅(qū)動(dòng)能力不足。
 
現(xiàn)象是拉高電壓不足,在拉高、拉低過程中消耗時(shí)間過長(zhǎng)。這兩個(gè)問題通常還引起數(shù)據(jù)線與時(shí)鐘線:拉高時(shí),高電壓持續(xù)時(shí)間過短;拉低時(shí),低電壓持續(xù)時(shí)間過短。用示波器抓取圖形:從波形上看,顯示是尖波、斜波、雜波等不符合 i2c 設(shè)備電氣特性的波形;從數(shù)據(jù)上看,數(shù)據(jù)線高電平持續(xù)時(shí)間過小 ,上升沿時(shí)間過長(zhǎng) ,下降沿時(shí)間過長(zhǎng)等等數(shù)據(jù)超出設(shè)備電氣特性的有效值。典型雜波圖,如下所示
 
詳談:I2C設(shè)備導(dǎo)致死鎖怎么辦?
 
如果出現(xiàn)此類異常,建議更換小一點(diǎn)的電阻,用來增強(qiáng)總線驅(qū)動(dòng)能力,提高電平轉(zhuǎn)換速度。應(yīng)當(dāng)注意的是每個(gè) MCU 的耐受電流不一樣,減小電阻應(yīng)避免超過相應(yīng)引腳承受電流的最大值。
 
3 SDA 死鎖
 
如果i2c 設(shè)備的數(shù)據(jù)偶爾能夠正確獲取,但是仍然會(huì)在總線發(fā)送數(shù)據(jù)或者命令的時(shí)候,爆出總線讀寫錯(cuò)誤,那么有可能遇到下面的死鎖問題,死鎖時(shí)候,就是數(shù)據(jù)線被拉低,主機(jī)無法拉高。死鎖一般發(fā)生在從機(jī)上,且為數(shù)據(jù)線死鎖。因?yàn)閕2c總線是共享的,如果需要確定,是否是從機(jī)死鎖,可以參照下面兩幅圖,串聯(lián)電阻進(jìn)行測(cè)試
 
詳談:I2C設(shè)備導(dǎo)致死鎖怎么辦?
 
如上圖所示,如果從機(jī)死鎖,即從機(jī)拉低電平,此時(shí)檢測(cè)到的電壓為1/3 Vcc。
 
詳談:I2C設(shè)備導(dǎo)致死鎖怎么辦?
 
如上圖所示,如果主機(jī)死鎖,即主機(jī)拉低電平,此時(shí)檢測(cè)到的電壓為 1/11 Vcc。依據(jù)這個(gè)原理,可以準(zhǔn)確判定死鎖的具體位置,多個(gè)傳感器依據(jù)類似方式進(jìn)行定位。
 
3.1 反復(fù)重啟導(dǎo)致死鎖
 
3.1.1 現(xiàn)象
 
如果設(shè)備需要反復(fù)重啟,很有可能在從機(jī)設(shè)備返回?cái)?shù)據(jù)的時(shí)候,SDA被鎖住。具體原因是從機(jī)設(shè)備在回?cái)?shù)據(jù),還沒有發(fā)送完成,主機(jī)時(shí)鐘消失,從機(jī)等待時(shí)鐘信號(hào), MCU重啟,如果從機(jī)設(shè)備的電源沒有復(fù)位,從機(jī)繼續(xù)等待 MCU 時(shí)鐘信號(hào),數(shù)據(jù)一直被鉗住,總線無法完成數(shù)據(jù)交互。
 
3.1.2 解決方式
 
解決重啟導(dǎo)致總線死鎖,一種方式可以如同 rt-thread 驅(qū)動(dòng)解決方式一樣,在系統(tǒng)復(fù)位的時(shí)候,提供9個(gè)時(shí)鐘信號(hào),解初總線死鎖;另一種是在按下復(fù)位鍵初始化的時(shí)候,給從機(jī)設(shè)備電源斷電重啟,這個(gè)需要引腳控制。
 
3.1.3 9 個(gè)時(shí)鐘信號(hào)
 
i2c 設(shè)備進(jìn)行讀寫操作的過程中,在從機(jī)鉗住總線的期間,MCU 異常復(fù)位,會(huì)導(dǎo)致 SDA 死鎖,異常產(chǎn)生出現(xiàn)在倆個(gè)階段:從機(jī)響應(yīng)階段、從機(jī)發(fā)送數(shù)據(jù)階段。下面將針對(duì)這兩種異常,對(duì)時(shí)鐘信號(hào)進(jìn)行解釋,并且總結(jié)其他原因,得出結(jié)論。
 
(a) 從機(jī)響應(yīng)階段
 
MCU 在開始信號(hào)后發(fā)送地址,得到從機(jī)設(shè)備響應(yīng),準(zhǔn)備開始返回?cái)?shù)據(jù),在這個(gè)時(shí)候,從機(jī)將 SDA 信號(hào)拉為低電平,如果 MCU 異常復(fù)位,會(huì)導(dǎo)致總線上 SCL 停止發(fā)送時(shí)鐘信號(hào),從機(jī)等待 MCU 的時(shí)鐘信號(hào),產(chǎn)生鉗住并且拉低 SDA 的現(xiàn)象。如果想要解鎖 SDA,從機(jī)需要 9 個(gè)時(shí)鐘信號(hào),使得從機(jī)完成響應(yīng),釋放 SDA 。
 
(b) 從機(jī)發(fā)送數(shù)據(jù)階段
 
如果從機(jī)響應(yīng)完成了,開始給 MCU 返回?cái)?shù)據(jù)。這個(gè)數(shù)據(jù)有八位,每一位都有可能為低,如果在數(shù)據(jù)低位,MCU 異常復(fù)位,停止發(fā)送時(shí)鐘信號(hào),從機(jī)就會(huì)等待 MCU 的時(shí)鐘信號(hào),產(chǎn)生鉗住并且拉低 SDA 的現(xiàn)象。如果想要解鎖 SDA,從機(jī)需要 1-8 個(gè)時(shí)鐘信號(hào),使得從機(jī)完成數(shù)據(jù)響應(yīng),釋放 SDA 。
 
(c)其他情況
 
在從機(jī)一個(gè) 8 位數(shù)據(jù)發(fā)送完成后,等待 MCU 響應(yīng), 即使屬于 MCU 的,從機(jī)不再鉗住 SDA,沒有時(shí)鐘,數(shù)據(jù)交互停止。
 
在主機(jī)發(fā)送數(shù)據(jù)階段,總線所有權(quán)在主機(jī),主機(jī)異常,數(shù)據(jù)交互停止,總線釋放。所以,這些情況下,不存在 SDA 死鎖的情況。
 
(d)結(jié)論
 
綜上所述,解鎖 SDA 從機(jī)最多需要 9 個(gè)時(shí)鐘信號(hào),也就是異常復(fù)位后,MCU 至少發(fā)送需要 9 個(gè)時(shí)鐘信號(hào),完成 i2c 總線的 SDA 解鎖。所以,RT_Thread 為了避免此類問題的產(chǎn)生,在 i2c 驅(qū)動(dòng)初始化,對(duì)總線進(jìn)行判斷,判斷是否需要解鎖,如果需要,就進(jìn)行解鎖,確保 i2c 設(shè)備不會(huì)因?yàn)檫@個(gè)問題導(dǎo)致數(shù)據(jù)交互失敗。
 
3.2 多個(gè) i2c 設(shè)備導(dǎo)致死鎖
 
多 i2c 設(shè)備除了異常復(fù)位導(dǎo)致死鎖,還會(huì)形成相互干擾的問題,一般情況下,不會(huì)把同種從機(jī)地址掛在同一條總線上,但除此之外,有些 i2c 設(shè)備設(shè)計(jì)不是按照標(biāo)準(zhǔn)的 i2c 總線協(xié)議設(shè)計(jì),在 i2c 總線共享的前提條件下,有的設(shè)備只要總線上從機(jī)地址就會(huì)有響應(yīng)。這樣由于從機(jī)的錯(cuò)誤響應(yīng),使得各個(gè) i2c 總線異常,甚至鉗住總線,導(dǎo)致 I2C 總線進(jìn)人一種死鎖狀態(tài)。
 
解決方式,這樣的不標(biāo)準(zhǔn)i2c設(shè)備,單獨(dú)使用一個(gè)總線,避免干擾,或者單獨(dú)一個(gè)獨(dú)立引腳,控制電源。
 
來源:RT-Thread
 
 
推薦閱讀:
 
選擇正確的加速度計(jì),以進(jìn)行預(yù)測(cè)性維護(hù)
大聯(lián)大推出數(shù)字化平臺(tái)【大大網(wǎng)】,獲行業(yè)媒體AspenCore兩項(xiàng)殊榮肯定
三極管和運(yùn)放構(gòu)成的幾種恒流源電路分析
掌握這些步驟,輕松分配FPGA引腳
功率密度與效率:如何權(quán)衡(二)
要采購(gòu)焊接么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索

關(guān)閉

?

關(guān)閉

主站蜘蛛池模板: 97婷婷狠狠成为人免费视频 | 久久强奷乱码老熟女网站 | 国产精品成人无码免费 | 国产成人无码av在线播放dvd | 国内精品久久人妻互换 | 久久精品国产亚洲精品2020 | 久久99久国产麻精品66 | 在线观看精品 | 久久久久人妻精品区一 | 久久精品人人做人人妻人人玩 | 色很久| 小优视频污 | 久久亚洲精品石原莉奈 | 精品一区二区三区波多野结衣 | 欧美 偷窥 清纯 综合图区 | 久久久久久久久久久久久av | 国产精口品美女乱子伦高潮 | 国产美女久久久久 | 亚洲欧美另类成人综合图片 | 欧美性狂猛bbbbbbxxxxxx精品 | 精品少妇一区二区三区视频免付费 | 在线精品国产成人综合 | 日韩人妻无码一区二区三区久久99 | av黄色免费 | 国产在线国偷精品产拍 | 青青草原伊人网 | 黄色网页免费 | 国产极品久久 | 国产aⅴ精品一区二区三区久久 | 欧美日产欧美日产国产精品 | 国产精品天干天干在线观看澳门 | 国产成人久久综合一区 | www.超碰97| 亚洲日本乱码一区二区产线一∨ | 99精品欧美一区二区蜜桃免费 | 久久久国产精品一区二区18禁 | 日韩精品一区二区三区四区 | 边喂奶边中出的人妻 | 免费看婬乱a欧美大片 | 在线免费观看你懂的 | 欧美日韩在大午夜爽爽影院 | 欧美大片在线看免费观看 | 中国少妇内射xxxx狠干 | 真实偷拍激情啪啪对白 | av高清 | 午夜性无码专区 | av鲁丝一区鲁丝二区鲁丝三区 | 国产啪亚洲国产精品无码 | 国产成人无码免费看片软件 | 亚洲日本乱码在线观看 | 久久人人爽爽人人片av | 超清制服丝袜无码av福利网 | 国产污片在线观看 | 国产成人精品一区二 | 丰满多毛少妇做爰视频爽爽和 | 天天操天天舔天天干 | 精品免费国产一区二区 | 国产高清成人久久 | 国产精品 高清 尿 小便 嘘嘘 | 伊人久久大香线蕉av五月天 | 99国产成人综合久久精品欧美 | 午夜色网站 | 亚洲色欲网熟女少妇 | 久久一卡二卡三卡四卡 | 午夜av网站| 亚洲乱码日产精品m | 狠狠干影视 | 人人人妻人人人妻人人人 | 日批国产| 国产精品久久久久一区二区三区 | 午夜在线一区二区 | 黄色av毛片| 成人精品视频在线观看不卡 | 久久国产视频一区 | 任你躁在线精品免费 | 免费大片在线观看www | 国产一区二区黄色 | 看av网站| 精品高潮呻吟99av无码视频 | 国产在线日韩拍揄自揄视频 | 国产乱来乱子视频 | 久久青草精品欧美日韩精品 | 精品日韩一区二区三区免费视频 | 国产高潮抽搐喷水高清 | 在线日韩av免费永久观看 | 国产亚洲欧美精品久久久www | 亚洲3atv精品一区二区三区 | 亚洲毛片久久 | 国产成人手机高清在线观看网站 | 色一情一伦一子一伦一区 | 黄色大片免费看 | 色屁屁www免费看欧美激情 | 最近日本中文字幕 | 国产精品18久久久久久vr | 男人女人做爽爽18禁网站 | 国产成人av一区二区在线观看 | 国产男女视频 | 久久人搡人人玩人妻精品 | 国产日韩一级 | 主站蜘蛛池模板: 99国产在线观看 | 中文字幕在线观看网站 | 国产粉嫩馒头无套内在线观看免费 | 精品美女久久久 | 狠狠亚洲超碰狼人久久 | 亚洲国产欧美国产第一区 | 美乳丰满人妻无码视频 | www.精品国产 | 免费成人av网址 | 一级片一区二区三区 | 伊人久久香| 成在线人av免费无码高潮喷水 | 精品无码国产污污污免费 | 免费精品国产自产拍在线观看图片 | 久久精品国产精品青草 | 91午夜视频 | 人人爽人人爽人人片a免费 日本成人免费视频 | 亚洲网址 | 久久国产精品99久久人人澡 | 99精产国品一二三产品香蕉 | 天天爽夜夜操 | 制服欧美激情丝袜综合色 | 日韩少妇内射免费播放18禁裸乳 | 欧美 偷窥 清纯 综合图区 | 亚洲 校园 欧美 国产 另类 | 日本一卡2卡3卡四卡精品网站 | 在线免费看av的网站 | 三级网站国产 | 小荡货奶真大水多好紧视频 | 九月婷婷人人澡人人添人人爽 | 亚洲日韩在线中文字幕综合 | 国产一区二区三四区 | 中文有码无码人妻在线短视频 | 中文字幕国产专区 | 男男19禁啪啪无遮挡免费 | 丁香视频在线观看 | 最新精品露脸国产在线 | 中文字幕伊人 | 中文无码成人免费视频在线观看 | 97xxx| av免费精品 | 亚洲国产制服丝袜高清在线 | 97国产人妻人人爽人人澡 | 日本熟妇色一本在线观看 | 人妻夜夜爽爽88888视频 | 亚洲精品乱码久久久久久按摩观 | 久久久国产一区二区三区四区小说 | 无码精品一区二区三区在线 | 久久精品人人做人人综合 | 国产一区二区黄色 | 午夜黄色在线 | 国产av一区二区三区无码野战 | 制服 丝袜 有码 无码 中文 | 国产亚洲日韩在线三区 | 亚洲一区二区三区在线看 | 精品玖玖玖视频在线观看 | 懂色av一区| 欧美日韩视频在线播放 | 亚洲性色av私人影院无码 | 99视频国产精品免费观看a | 亚洲精品无码鲁网午夜 | 在线伊人网 | 欧美人与禽猛交狂配 | 在线无码视频观看草草视频 | 99久久国产露脸国语对白 | 少妇高潮惨叫喷水正在播放 | 中文字幕在线视频网站 | 国产伦精品一区二区三区88av | 国产人久久 | 国产精品伊人久久 | 亚洲午夜精品久久久久久浪潮 | 欧美成人精品三级网站视频 | 人妻无码一区二区三区av | 波多野结衣高清一区二区三区 | 米奇7777狠狠狠狠视频影院 | 国产成人一区二区三区免费看 | 亚洲国产毛片 | 国产精品有码无码av在线播放 | 欧洲美女粗暴牲交免费观看 | 国产偷国产偷亚洲高清人乐享 | 五月婷婷六月激情 | 亚洲精品中文幕一区二区 | 国产精品区二区三区日本 | 国产精品视频久久久 | 性夜久久一区国产9人妻 | 久久人妻公开中文字幕 | 亚洲自拍偷拍精品视频 | 日本特级淫片 | 国产suv精品一区二区 | 无遮挡又黄又刺激的视频 | 人妻无码全彩里番acg视频 | 伊人久久大香线蕉av五月天 | 7777kkkk成人观看| 91精品毛片 | 久久精品无码午夜福利理论片 | 欧美人与动牲交免费观看网 | 免费看撕开奶罩揉吮奶头视频 | 国产精品7区 | 91精品国产自产91精品 | 主站蜘蛛池模板: 成人性做爰aaa片免费看不忠 | 国产成人啪精品 | 一级免费大片 | 日韩精品一区二区视频 | 青草伊人网 | 成人免费xxxxx在线观看 | 毛片完整版的免费观看 | 国内揄拍国内精品人妻 | 欧美亚洲色倩在线观看 | 人人妻人人澡人人爽人人精品97 | av中文字幕无码免费看 | 91国产精品一区 | 一区二区毛片 | 国内外成人免费视频 | 亚洲国产五月综合网 | 四虎成人欧美精品在永久在线 | 成人福利视频网 | 丰满少妇呻吟高潮经历 | 人人草在线观看 | 中文字幕无码家庭乱欲 | 激情福利网 | 韩国精品一卡2卡三卡4卡乱码 | 国产成人福利在线视频播放下载 | 亚洲精品www久久久久久广东 | 亚洲国产成人精品青青草原导航 | 日韩成人在线网站 | 自拍欧美日韩 | 国产精品青青青高清在线 | 国产精品秘入口18禁麻豆免会员 | 日日摸日日碰夜夜爽无 | 国精品午夜福利视频不卡757 | 夜夜添无码一区二区三区 | 伊久久| 欧美精品18| 国产精品igao视频网 | 狠狠色噜噜狠狠狠狠色综合久 | 噜噜噜久久,亚洲精品国产品 | 激情一区 | 800av凹凸| 无罩大乳的熟妇正在播放 | 久久这里只精品国产免费10 | 夜夜欢天天干 | 蜜乳av懂色av粉嫩av | 亚洲综合色aaa成人无码 | 亚洲国产精品无码一线岛国 | 91亚洲一区二区三区 | 探花av在线| 国产成人精品三级在线影院 | 亚洲黄色在线播放 | 97操碰| 日本精品视频在线 | 国产无遮挡18禁无码免费 | 成人奭片免费观看 | 欧洲熟妇色 欧美 | 白浆四溢 | 俄罗斯少妇性xxxx另类 | 免费观看欧美猛交视频黑人 | 国产老妇视频 | 少妇人妻系列无码专区视频 | 激情久久久 | 日本又黄又潮娇喘视频 | 三上悠亚亚洲一区 | 亚洲蜜桃精久久久久久久久久久久 | 99视频偷窥在线精品国自产拍 | 东京热无码国产精品 | 宅宅午夜无码一区二区三区 | 欧美成人综合网站 | 女同性做爰全过程 | 国产精品露脸国语对白 | 免费女人裸体视频无遮挡免费网站 | 国产精品进线69影院 | 成人欧美一区二区三区黑人 | 欧美性色网站 | 精品久久无码中文字幕 | 国产精品video | 夜夜撸av | 亚洲а∨天堂2014在线无码 | 国产一区二区三区精品毛片 | 男人天堂综合 | 性亚洲女人色欲色一www | 激情无码人妻又粗又大 | 国内精品自在拍精选 | 双乳奶水饱满少妇呻吟 | 日本中文字幕亚洲乱码 | 久久精品人人做人人爽97 | 五月婷久久综合狠狠爱97 | 亚洲精品无码高潮喷水在线 | 人妻熟人中文字幕一区二区 | 精品国产拍国产天天人 | 久久精品国产日本波多野结衣 | 久久一日本道色综合久久 | 天堂中文字幕在线观看 | 国产手机av片在线观看 | 日韩精品欧美 | 日韩综合在线视频 | 日本五十路 | 在线91视频| 日本黄色录像 | 18岁日韩内射颜射午夜久久成人 |