久久午夜影院,91精品国产调教在线观看,日韩午夜免费,伊人久久大香线蕉av不卡

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

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

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

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

關(guān)閉

?

關(guān)閉

久久午夜影院,91精品国产调教在线观看,日韩午夜免费,伊人久久大香线蕉av不卡
伊人成人在线视频| 欧美日韩国产一区二区三区不卡| 久久影院午夜精品| 麻豆高清免费国产一区| 蜜桃久久久久| 蜜臀av一区二区三区| 蜜桃tv一区二区三区| 美腿丝袜亚洲三区| 黄色在线观看www| 四虎影视精品| 99综合视频| 亚洲久久一区| 老司机精品视频网| 久久久久国产| 蜜臀va亚洲va欧美va天堂| 青青国产91久久久久久| 国产精品麻豆久久| 不卡中文一二三区| 亚洲乱码一区| 老牛国内精品亚洲成av人片| 国产精品亚洲一区二区在线观看| 国产精久久久| 久久久久免费av| 亚洲精品美女91| 精品国产不卡一区二区| 欧美丝袜一区| 日韩精品一区二区三区免费视频| 国产精品毛片视频| 亚洲网站视频| 久久国产视频网| 久久精品国产亚洲夜色av网站| 日韩影院在线观看| 视频在线在亚洲| 韩国三级一区| 国产精品丝袜xxxxxxx| 综合日韩在线| 国产 日韩 欧美 综合 一区| 99re国产精品| 国产精品mm| 尤物网精品视频| 国产精品香蕉| 久久最新视频| 国语精品一区| 日本一区二区中文字幕| 蜜臀国产一区| 欧美日韩亚洲国产精品| 久久五月天小说| 国产精品传媒麻豆hd| 91精品观看| 成人国产精品一区二区网站| 99pao成人国产永久免费视频| 国产精品一区免费在线| 夜夜嗨av一区二区三区网站四季av| 精品国产成人| 久久国产婷婷国产香蕉| 蜜桃视频在线观看一区| 欧美成人精品三级网站| 日韩激情啪啪| 欧美日韩亚洲在线观看| 国产精品久久乐| 亚洲在线观看| 日韩欧美一区二区三区在线视频| 日韩国产一二三区| 亚洲调教视频在线观看| 成人国产精品一区二区免费麻豆| 蜜桃免费网站一区二区三区| 久久精品影视| 国产欧美一区二区三区精品酒店| 久久国内精品自在自线400部| 亚洲综合日本| 视频小说一区二区| 麻豆精品新av中文字幕| 综合亚洲视频| 蜜桃久久av| 国产精品7m凸凹视频分类| 日本在线高清| 国产一区日韩| 美女毛片一区二区三区四区最新中文字幕亚洲 | 青青草91视频| 国产精品外国| 亚洲精品大片| 久久av影院| 国产日韩免费| 日本中文字幕一区二区| 天堂成人国产精品一区| 欧美一级精品| 色黄视频在线观看| 免费日韩成人| 国产精品一线天粉嫩av| 亚洲精品激情| 亚洲午夜免费| 黄色在线一区| 欧美日韩国产高清电影| 欧洲av一区二区| yellow在线观看网址| 国产不卡一区| 国产色播av在线| 成人国产精品久久| 亚洲人成在线网站| 日韩毛片在线| 欧美日韩国产在线观看网站 | 91麻豆精品激情在线观看最新 | 婷婷综合激情| 激情综合激情| 视频在线观看一区| 久久人人97超碰国产公开结果| 午夜精品成人av| 久久国产小视频| 国产婷婷精品| 日韩在线a电影| 少妇精品在线| 国产精品夜夜夜| 美女av在线免费看| 欧美日韩国产免费观看视频| 亚洲激情国产| 日韩在线电影| 免费精品一区| 日韩欧美精品一区| 午夜久久美女| 亚州av一区| 国产亚洲高清在线观看| 黄色欧美在线| 亚洲伦乱视频| 日韩av有码| 国产精品xxx在线观看| 亚洲2区在线| 91久久黄色| 999久久久亚洲| 国产成人精品一区二区三区在线| 久久青草久久| 久久人人97超碰国产公开结果| 久久精品国产99| 国产一区二区三区国产精品| 久久久久免费av| 伊人久久成人| 欧美日韩一视频区二区| 老司机免费视频一区二区三区| 五月激情久久| 日韩激情网站| 日韩精品一卡| 久久精品99国产国产精| 色婷婷精品视频| 国产欧美日韩| 欧美特黄一级大片| 日本色综合中文字幕| 久久亚洲国产精品尤物| 视频一区视频二区中文字幕| 国产亚洲精aa在线看| 日韩在线观看| 少妇精品在线| 久久97久久97精品免视看秋霞| 欧美影院三区| 国产美女亚洲精品7777| 精品欧美久久| 久久99精品久久久久久园产越南| 婷婷亚洲综合| 欧美激情日韩| 日韩视频在线一区二区三区| 国产精品日本一区二区不卡视频| 香蕉久久精品| 婷婷视频一区二区三区| 日韩精品麻豆| 国产精品一页| 久久先锋影音| 91精品国产91久久久久久黑人| 欧美性www| 99综合视频| 色黄视频在线观看| 国产精品一区二区av交换 | 成人在线丰满少妇av| 视频国产精品| 亚洲精品极品少妇16p| 成人污污视频| 亚洲一区二区动漫| 久久国产日本精品| 国产精品成人自拍| 亚洲精品高潮| 国产午夜精品一区二区三区欧美| 亚洲国产成人二区| 国产日韩欧美三区| 亚洲精品国产精品粉嫩| 亚洲一区亚洲| 欧美成人日韩| 亚洲综合在线电影| 国产高潮在线| 国产91在线精品| 精品资源在线| 久久av综合| 日韩在线麻豆| 在线精品观看| 日韩精品一区第一页| 日韩午夜高潮| 美女被久久久| 国产一级一区二区| 中文一区二区| 亚洲综合精品四区| 蜜芽一区二区三区| 蜜臀av性久久久久蜜臀aⅴ流畅 | 久久婷婷一区| 久久国产毛片|