在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

I2C地址跳變問題的調(diào)試案例

CHANBAEK ? 來(lái)源:硬件系統(tǒng)架構(gòu)師 ? 作者:Timothy ? 2023-11-22 10:51 ? 次閱讀

引言:I2C作為使用最為廣泛的通訊接口,調(diào)試各類I2C器件,大家應(yīng)該都很輕車熟路。一般對(duì)于外掛電阻配置器件的I2C地址,例如電阻上拉之后,器件的地址就會(huì)固定下來(lái)不再變動(dòng),但是今天給大家分享一個(gè)自己的調(diào)試案例,即I2C地址跳變問題。

1.問題背景

該器件對(duì)外一起只有四個(gè)引腳:SDA、SCL、INT、RESET,其中對(duì)外輸出中斷引腳INT兼具器件地址設(shè)定功能,將INT上拉至VDDIO,地址為0X8A,INT無(wú)上拉,地址為0X88。

圖片

圖3-1:控制線部分原理圖

在上電啟動(dòng)之后,連續(xù)運(yùn)行Linux地址查詢命令,如圖3-2所示,查詢地址為0X45(7位地址,按8位即0X8A)。

圖片

圖3-2:讀取地址為0X45

斷電再重啟,然后運(yùn)行查詢命令,如圖3-3所示,會(huì)偶發(fā)檢測(cè)到地址跳變?yōu)?X44(0X88)。

圖片

圖3-3:重新下電上電后讀取地址

此時(shí)正確地址應(yīng)該是0X45,所以偶發(fā)檢測(cè)地址跳變?yōu)?X44說(shuō)明器件上電初始對(duì)INT處的配置發(fā)生了誤判。

2.懷疑點(diǎn)和排除過程

前端設(shè)備的高低電平影響

因?yàn)镮NT引腳是兼具I2C地址配置,如果INT存在初始拉低等情況,就會(huì)影響器件判斷地址,在Application里面講到:TP2912A通過在復(fù)位期間捆扎INT引腳來(lái)提供兩個(gè)設(shè)備地址,0x88或0x8A。引腳上的上拉電阻器使設(shè)備地址為0x8A,如果電阻器不存在,則內(nèi)部下拉電阻器的設(shè)備地址將為0x88。在選擇設(shè)備地址時(shí)要注意,在判斷復(fù)位期間,一些前端芯片可以強(qiáng)制驅(qū)動(dòng)INT信號(hào)的邏輯低或高。在這種情況下,設(shè)備地址的檢測(cè)可能是錯(cuò)誤的,因?yàn)榍岸诵酒?qū)動(dòng)的邏輯電平與上拉或下拉電阻器無(wú)關(guān),如果無(wú)法避免這些情況,則如果設(shè)備地址選擇正確,則可以通過讀取寄存器0xfe中的設(shè)備ID來(lái)實(shí)現(xiàn)軟件工作。

圖片

圖3-4:推薦INT Mode下讀取地址程序

最開始測(cè)量INT點(diǎn)的電平,大約1.4V,所以其實(shí)INT引腳一直是高電平?jīng)]有問題,然后斷開INT與SOC的連接,繼續(xù)上下電讀地址,依然有I2C地址跳變問題存在,并且斷開后單獨(dú)測(cè)量SOC端的INT,為低電平0V,說(shuō)明SOC沒有配置這個(gè)引腳,沒有使用到INT功能(軟件端也確認(rèn)過),所以排除前端設(shè)備影響INT的配置。

引腳耦合

引腳耦合這個(gè)理論上存在,但是實(shí)際中很難遇到,并且高達(dá)1.8V和0V的壓差,耦合能量達(dá)到這么多幾乎不可能,所以理論上排除引腳耦合問題。

上拉閾值臨界

手冊(cè)上的VDDIO是3.3V,并沒有標(biāo)注1.8V可以使用,使用1.8V是FAE的建議,也為了和前端SOC電平適配,所以是否1.8V處于一個(gè)臨界上拉閾值導(dǎo)致器件判斷失真。為了驗(yàn)證這一疑點(diǎn),將INT上拉電阻取消,此時(shí)INT處于懸空(同時(shí)斷開前級(jí)),地址應(yīng)該固定為0X44,但依然存在地址跳變,說(shuō)明也不是上拉閾值臨界,注意這里的INT懸空并不等同于下拉到GND。

時(shí)序排查

考慮到是上下電過程中觸發(fā)地址誤判,不斷電情況下地址不會(huì)變動(dòng),所以會(huì)不會(huì)存在這樣一種時(shí)序情況:在VDDIO還在上電的過程中,器件就開始讀INT的配置,此時(shí)電壓臨界。測(cè)量器件上電時(shí)序如下圖3-5 ,其中C1是DVDD(1.2V),C2是RESET,C3是1.8V,C4是XTI(27MHz晶振輸入)。

圖片

圖3-5:關(guān)鍵信號(hào)上電時(shí)序

從圖中可以看到,在XTI還在起振時(shí),DVDD還處于上升階段,此時(shí)芯片邏輯核心可能還沒有開始工作,邏輯核心影響了器件讀I2C地址。Application里面也提到了這一時(shí)序要求:由于POC(上電序列)功能在上電/斷電事件期間在芯片內(nèi)部操作,因此對(duì)每個(gè)電源樹的上電和斷電序列沒有要求,復(fù)位應(yīng)在晶體振蕩器穩(wěn)定后至少10個(gè)周期保持低電平,如圖3-6所示:

圖片

圖3-6:Application推薦Reset操作

為了驗(yàn)證這一猜想,首先觸發(fā)一次0X44地址,然后不斷電,給RESET一個(gè)復(fù)位拉低,然后再讀地址,看地址是否會(huì)恢復(fù)到0X45,當(dāng)然這里也可以使用手動(dòng)復(fù)位,將RESET引腳手動(dòng)接一下GND。

圖片

圖3-7:不斷電驗(yàn)證地址恢復(fù)

如圖3-7所示,觸發(fā)之后0X44變?yōu)?X45,驗(yàn)證有效,說(shuō)明和猜想一致,最終確定是時(shí)序的問題。

3.如何修正

修正也很簡(jiǎn)單,如圖3-8所示,前端SOC在上電之后10ms將Reset拉低,拉低時(shí)間≥10us。

圖片

圖3-8:復(fù)位時(shí)間預(yù)估

4.總結(jié)

I2C地址跳變的問題比較難遇到,因?yàn)榇蠖鄶?shù)器件是獨(dú)立配置地址,如果是GND配置,自然不會(huì)考慮時(shí)序問題,但如果是上拉配置,就需要注意電壓時(shí)序問題,在系統(tǒng)起來(lái)之前,配置電壓就應(yīng)該完全到位,如果有類似的情況或者電壓無(wú)法調(diào)整,此時(shí)Reset不失為一種可靠的方法,不斷電的情況下復(fù)位系統(tǒng)邏輯,器件就會(huì)重新去讀地址然后寫入寄存器,另外這一步需要放置主程序運(yùn)行之前,否側(cè)運(yùn)行中地址變化會(huì)發(fā)生通訊中斷。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 調(diào)試
    +關(guān)注

    關(guān)注

    7

    文章

    600

    瀏覽量

    34371
  • 引腳
    +關(guān)注

    關(guān)注

    16

    文章

    1433

    瀏覽量

    51761
  • 通訊接口
    +關(guān)注

    關(guān)注

    2

    文章

    80

    瀏覽量

    16389
  • I2C器件
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    6628
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    MM32F013x上實(shí)現(xiàn)I2C地址的功能應(yīng)用

    I2C中,通信是借助設(shè)備地址尋址實(shí)現(xiàn)的,大致可以分為兩類:一對(duì)多、多對(duì)多通信。在多主機(jī)通信時(shí),從機(jī)如果想接收多個(gè)主機(jī)的數(shù)據(jù),就需要使用到從機(jī)多地址的功能。 本文是針對(duì)在MM32F013x上實(shí)現(xiàn)
    發(fā)表于 01-05 11:43 ?2252次閱讀

    無(wú)法讀取I2C地址調(diào)試案例

    引言:調(diào)試I2C從器件的第一步就是嘗試去讀它的地址,如果無(wú)法讀取地址或者向其發(fā)送讀寫命令卻沒有收到ACK回饋,都說(shuō)明與器件通訊失敗。常規(guī)發(fā)生無(wú)法讀取
    的頭像 發(fā)表于 11-02 18:24 ?2603次閱讀
    無(wú)法讀取<b class='flag-5'>I2C</b><b class='flag-5'>地址</b>的<b class='flag-5'>調(diào)試</b>案例

    I2C Guid I2C指南

    I2C Guid  I2C指南 The I2C bus is used in a wide rangeof applications because it is simpleand
    發(fā)表于 04-23 13:55 ?36次下載

    I2C地址切換電路

    I2C地址切換電路
    發(fā)表于 02-22 11:15 ?1572次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>地址</b>切換電路

    arduino讀取I2C總線上連接設(shè)備的地址

    這兩天研究了一下I2C總線,發(fā)現(xiàn)有好多I2C設(shè)備的地址并不知道,當(dāng)然有的可以在網(wǎng)上查的到,但是如果遇到用過的I2C器件,設(shè)備地址被修改過,那
    發(fā)表于 11-23 16:58 ?11.3w次閱讀

    mpu6050對(duì)應(yīng)i2c地址是什么_如何讀取數(shù)據(jù)

    本文主要介紹了mpu6050對(duì)應(yīng)i2c地址是什么,并通過stm32的硬件讀取mpu6050的數(shù)據(jù)。MPU6050 的 I2C 地址是 0xD0H(11010000B)。
    發(fā)表于 12-11 16:04 ?2.5w次閱讀
    mpu6050對(duì)應(yīng)<b class='flag-5'>i2c</b><b class='flag-5'>地址</b>是什么_如何讀取數(shù)據(jù)

    如何將I2C地址左移1位

      I2C總線讀寫中,新人會(huì)比較困惑,為什么I2C地址要左移1位?這是i2c協(xié)議決定的,i2c地址
    發(fā)表于 08-05 17:34 ?4次下載
    如何將<b class='flag-5'>I2C</b>從<b class='flag-5'>地址</b>左移1位

    I2C/SMBus地址轉(zhuǎn)換器

    I2C/SMBus地址轉(zhuǎn)換器
    發(fā)表于 04-20 10:44 ?5次下載
    <b class='flag-5'>I2C</b>/SMBus<b class='flag-5'>地址</b>轉(zhuǎn)換器

    嵌入式linux應(yīng)用讀寫i2c示例

    long arg);cmd有I2C_SLAVE,I2C_SLAVE_FORCE,I2C_TENBIT,I2C_SET_SPEED幾個(gè)選項(xiàng);I2C
    發(fā)表于 11-01 16:57 ?12次下載
    嵌入式linux應(yīng)用讀寫<b class='flag-5'>i2c</b>示例

    硬件I2C與模擬I2C

    硬件I2C對(duì)應(yīng)芯片上的I2C外設(shè),有相應(yīng)I2C驅(qū)動(dòng)電路,其所使用的I2C管腳也是專用的,因而效率要遠(yuǎn)高于軟件模擬的I2C;一般也較為穩(wěn)定,但
    發(fā)表于 12-28 19:14 ?81次下載
    硬件<b class='flag-5'>I2C</b>與模擬<b class='flag-5'>I2C</b>

    I2C掃描儀之如何在Arduino上查找I2C地址

    電子發(fā)燒友網(wǎng)站提供《I2C掃描儀之如何在Arduino上查找I2C地址.zip》資料免費(fèi)下載
    發(fā)表于 01-31 10:19 ?2次下載
    <b class='flag-5'>I2C</b>掃描儀之如何在Arduino上查找<b class='flag-5'>I2C</b><b class='flag-5'>地址</b>

    如何提高I2C調(diào)試效率?

    一般情況下,我們想要調(diào)試這類 I2C 器件,都需要先找一塊主控 MCU 板卡,用杜邦線將 I2C 器件連接到板卡上,然后編寫 MCU 代碼,需包含 I2C 軟件驅(qū)動(dòng)以及測(cè)試用例,最后將
    發(fā)表于 06-08 13:00 ?1646次閱讀
    如何提高<b class='flag-5'>I2C</b><b class='flag-5'>調(diào)試</b>效率?

    Android Things I2C地址掃描器

    電子發(fā)燒友網(wǎng)站提供《Android Things I2C地址掃描器.zip》資料免費(fèi)下載
    發(fā)表于 06-13 17:02 ?0次下載
    Android Things <b class='flag-5'>I2C</b><b class='flag-5'>地址</b>掃描器

    I2CI3C的區(qū)別有哪些

    線。 I2C 傳輸速度最高 3.4MHz,I3C 可以 12.5MHz +。 I3C 向下兼容 I2C,但不兼容 10bit 的 I2C 擴(kuò)
    的頭像 發(fā)表于 07-22 16:20 ?7942次閱讀
    <b class='flag-5'>I2C</b>和<b class='flag-5'>I3C</b>的區(qū)別有哪些

    I2C總線設(shè)備地址設(shè)置方法

    I2C總線是一種廣泛使用的串行通信協(xié)議,它允許多個(gè)設(shè)備在兩條線上(數(shù)據(jù)線SDA和時(shí)鐘線SCL)進(jìn)行通信。每個(gè)設(shè)備都有一個(gè)唯一的地址,以確保數(shù)據(jù)能夠正確地發(fā)送到目標(biāo)設(shè)備。 I2C地址概述
    的頭像 發(fā)表于 01-17 15:17 ?2304次閱讀
    主站蜘蛛池模板: 综综综综合网 | 免费国产99久久久香蕉 | 91久久婷婷国产综合精品青草 | 黄色三级免费网站 | 国产精品九九久久一区hh | 久久成人国产精品青青 | 亚洲区视频在线观看 | 天堂免费在线视频 | 色黄视频网站 | 欧美亚洲综合图区在线 | 麻豆三级在线播放 | 伊人久久精品成人网 | 高清欧美性xxxx成熟 | 天天操天天干天天舔 | 免费一级特黄 欧美大片 | 性色爽爱性色爽爱网站 | 激情综合婷婷 | 亚洲国产成人久久一区久久 | 国产自在自线午夜精品视频在 | 国模无水印一区二区三区 | 国内一级特黄女人精品毛片 | 亚洲色五月 | 噜噜噜噜私人影院 | 国内精品久久久久影院免费 | 激情综合网五月婷婷 | 欧美大片国产在线永久播放 | 8050网午夜一级毛片免费不卡 | 在线天堂中文有限公司 | 国产成+人+综合+亚洲欧美丁香花 | 日本三级黄 | 成人国产在线24小时播放视频 | 天堂影院jav成人天堂免费观看 | 日本三级香港三级人妇99 | 欧洲精品不卡1卡2卡三卡四卡 | 麻豆三级在线播放 | 张柏芝三级无删减在线观看 | aa在线视频 | 一级毛片一级毛片一级毛片 | 色偷偷91综合久久噜噜 | 天堂8中文在线最新版在线 天堂8资源8在线 | 老湿司午夜爽爽影院榴莲视频 |