一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

GPIO模擬I2C操作調(diào)試注意事項(xiàng)

 dwlinux_gs 2017-04-18

I2C作為板級(jí)串行數(shù)據(jù)總線,其規(guī)格相對(duì)簡(jiǎn)單,但調(diào)試過程中的一些細(xì)節(jié)問題容易被忽視,產(chǎn)生意想不到的時(shí)序錯(cuò)誤。寫這邊文章為了記錄我在調(diào)試I2C過程中遇到的問題,以便今后查閱并作為經(jīng)驗(yàn)與大家分享。


關(guān)于I2C總線的規(guī)格可以參考I2C的規(guī)格書,描述準(zhǔn)確詳細(xì),此不贅述。

使用MCU等SoC芯片中的I2C模塊,一般不會(huì)出現(xiàn)問題,因?yàn)殛P(guān)于I2C的操作時(shí)序都經(jīng)過芯片設(shè)計(jì)公司封裝成功能完好的IP。但通過GPIO來模擬I2C操作時(shí),所有的時(shí)序需由用戶自己把握,因此,對(duì)于I2C的時(shí)序和操作要有深刻的認(rèn)識(shí)。以下是使用GPIO模擬I2C調(diào)試時(shí)需要重點(diǎn)關(guān)注的問題:


(1)I2C總線信號(hào)引腳開漏輸出特性。Specification中明確規(guī)定SCL,SDA需使用開漏引腳,這一規(guī)定是與I2C總線特性相關(guān)的,因此,GPIO的選用要滿足這一特性。


(2)I2C總線信號(hào)引腳上拉。I2C總線空閑時(shí),信號(hào)線需處于高電平狀態(tài),總線無(wú)驅(qū)動(dòng)時(shí)由電阻上拉到電源。MCU或其他SoC芯片可以使能內(nèi)部上拉或使用外部電阻上拉。


(3)SCL時(shí)鐘速度。標(biāo)準(zhǔn)速度SCL通常為100KHz,高速SCL可達(dá)400KHz,根據(jù)I2C設(shè)備時(shí)鐘特性,調(diào)試時(shí)需合理設(shè)置delay time。


(4)SDA數(shù)據(jù)線釋放(取消驅(qū)動(dòng))。I2C總線的SDA是單工雙向的數(shù)據(jù)線,同一時(shí)間只能由一方提供驅(qū)動(dòng)(主機(jī)或是設(shè)備),否則會(huì)出現(xiàn)驅(qū)動(dòng)沖突,導(dǎo)致數(shù)據(jù)出錯(cuò)或時(shí)序錯(cuò)誤。以下幾種情況SDA要及時(shí)釋放:

1)主機(jī)發(fā)送1字節(jié)數(shù)據(jù),check ack之前要及時(shí)釋放SDA。主機(jī)發(fā)送數(shù)據(jù)時(shí)SDA由主機(jī)驅(qū)動(dòng),check ack時(shí)主機(jī)檢測(cè)由設(shè)備驅(qū)動(dòng)的1bit數(shù)據(jù)。如果主機(jī)驅(qū)動(dòng)SDA未及時(shí)釋放,SCL為低時(shí)產(chǎn)生沖突,SCL為高時(shí)檢測(cè)ack出錯(cuò),甚至?xí)霈F(xiàn)SCL為高時(shí)SDA的跳變產(chǎn)生錯(cuò)誤Start/Stop標(biāo)志,尤其是在主機(jī)發(fā)送數(shù)據(jù)最后1bit為高的情況下。
2)主機(jī)接收1字節(jié)數(shù)據(jù)(非最后1字節(jié)),send ack之后要及時(shí)釋放SDA。主機(jī)接收數(shù)據(jù)時(shí)SDA由設(shè)備驅(qū)動(dòng),之后設(shè)備會(huì)釋放SDA,由主機(jī)驅(qū)動(dòng)SDA發(fā)送ack,發(fā)送ack之后要及時(shí)釋放SDA,驅(qū)動(dòng)權(quán)交給設(shè)備。如果主機(jī)send ack之后未及時(shí)釋放SDA,在SCL為低時(shí)產(chǎn)生驅(qū)動(dòng)沖突,SCL為高時(shí)主機(jī)采樣數(shù)據(jù)會(huì)出現(xiàn)SDA跳變產(chǎn)生錯(cuò)誤Stop標(biāo)志,尤其是在接收下一字節(jié)數(shù)據(jù)的第1bit位為高的情況下。
這種情況下調(diào)試eeprom讀寫現(xiàn)象:數(shù)據(jù)高bit位為0時(shí)讀寫正常,數(shù)據(jù)高bit位為1時(shí),讀數(shù)據(jù)全0xFF。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    日本欧美视频在线观看免费| 欧美日韩一级黄片免费观看| 欧美日韩精品一区二区三区不卡| 国产传媒欧美日韩成人精品| 在线免费看国产精品黄片| 欧美亚洲另类久久久精品| 中日韩美一级特黄大片| 国产在线观看不卡一区二区| 黄片免费播放一区二区| 粉嫩国产美女国产av| 欧美精品亚洲精品日韩专区| 日韩精品人妻少妇一区二区| 中文字幕精品一区二区年下载| 91久久国产福利自产拍| 亚洲人午夜精品射精日韩| 国产一级内射麻豆91| 久久国产精品熟女一区二区三区| 国产又大又硬又粗又湿| 黑鬼糟蹋少妇资源在线观看| 九九九热在线免费视频| 日本美国三级黄色aa| 日韩成人动画在线观看| 国产午夜精品美女露脸视频| 成人免费观看视频免费| 欧美一级特黄大片做受大屁股| 欧美成人一区二区三区在线| 日韩特级黄片免费在线观看 | 麻豆精品视频一二三区| 国产内射在线激情一区| 一区二区三区日韩在线| 国产不卡在线免费观看视频| 国产精品成人一区二区三区夜夜夜| 亚洲最新中文字幕在线视频| 欧美偷拍一区二区三区四区| 久久精品国产一区久久久| 蜜臀人妻一区二区三区| 欧美六区视频在线观看| 欧美日韩最近中国黄片| 国产一级不卡视频在线观看| 黑丝国产精品一区二区| 欧美日韩亚洲国产av|