欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2433|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

I2C總線之教科書中的一個錯誤

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:266429 發(fā)表于 2020-1-30 12:35 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
應(yīng)該是這樣的:
      在主器件向從器件發(fā)送數(shù)據(jù)時,一旦從器件收到一個有效完整字節(jié)后,則從器件立即將SDA拉低,根本不需要主器件再向從器件發(fā)送任何信號 ,也就是說應(yīng)答信號并不是在第9個時鐘位出現(xiàn)。這時SDA線將處于低電平狀態(tài),如果從器件的該端口一直處于低電平狀態(tài),則SDA線將一直處于低電平狀態(tài),主器件將無法操作SDA線,后面的事就做不成了,于是,主器件再發(fā)一次脈沖,從器件在該脈沖期讀取SDA狀態(tài),若為零,則判斷主器件已收到應(yīng)答信號,于是,從器件向其SDA端口發(fā)送高電平信號以釋放對SDA線的控制權(quán),這樣才能繼續(xù)以后的工作。
    具體實驗,可以將SDA端口的電平送入另一接有LED指示燈的端口,在程序中先寫完發(fā)送一字節(jié)的程序,然后寫一條程序?qū)DA狀態(tài)送入LED端口,運(yùn)行程序以觀測LED的亮滅;然后再寫一條將SDA拉高的程序,再運(yùn)行并觀測;然后再寫一段SCL的脈沖程序,然后再運(yùn)行觀測,就很清楚了。
    這一做法,也可以拿來檢驗?zāi)愕木幊淌欠裾_,第二次運(yùn)行后,LED應(yīng)該滅,第三次運(yùn)行后,應(yīng)該亮。
    程序運(yùn)行中,每一步,你都可以加1S的延時,結(jié)合各端口用LED來觀測程序運(yùn)行過程。

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:351097 發(fā)表于 2020-1-30 16:59 | 只看該作者
I2C通信,如果是主機(jī)發(fā)給從機(jī),從機(jī)一定會做接收回應(yīng)。主機(jī)在每輪數(shù)據(jù)通信都需要完整提供9個時鐘信號,從機(jī)會在第8個時鐘信號下降沿之后拉低SDA,在第9個時鐘信號下降沿之后,從機(jī)會釋放SDA。如果從機(jī)一直沒有釋放SDA,應(yīng)該是主機(jī)提供時鐘信號不完整導(dǎo)致的。
回復(fù)

使用道具 舉報

板凳
ID:266429 發(fā)表于 2020-1-31 16:05 | 只看該作者
I2C通訊時,不管是主機(jī)還是從機(jī),數(shù)據(jù)接收方在收到完整的一字節(jié)數(shù)據(jù)后,都應(yīng)立即發(fā)出一個信號,就是拉低SDA,而不是如教材中所說“先要判斷SDA處于高電平后再去拉低SDA”,它不作這個判斷;發(fā)送方在發(fā)送完一字節(jié)數(shù)據(jù)后,則會拉高SDA然后檢測SDA是否處于低電平狀態(tài),如果檢測到是低電平,則認(rèn)為對方收到了這一字節(jié)。也就是雙方都要進(jìn)行確認(rèn)。
所以說,I2C的時序圖,應(yīng)該是六條線,主、從器件共四個端口每個端口一條線,然后是兩條線上的合成圖,F(xiàn)在的教材上面基本都只畫了合成圖。
所謂的應(yīng)答信號、非應(yīng)答信號之稱,并不合適。可以稱之為主機(jī)發(fā)應(yīng)答、主機(jī)收應(yīng)答、從機(jī)發(fā)應(yīng)答、從機(jī)收應(yīng)答。
回復(fù)

使用道具 舉報

地板
ID:266429 發(fā)表于 2020-1-31 16:09 | 只看該作者
本帖最后由 慢慢思考 于 2020-1-31 18:08 編輯
沒有你 發(fā)表于 2020-1-30 16:59
I2C通信,如果是主機(jī)發(fā)給從機(jī),從機(jī)一定會做接收回應(yīng)。主機(jī)在每輪數(shù)據(jù)通信都需要完整提供9個時鐘信號,從機(jī) ...

從機(jī)在第8個時鐘下降沿才剛剛讀取SDA,所以,從機(jī)一定是在這個下降沿之后才拉低SDA。
回復(fù)

使用道具 舉報

5#
ID:266429 發(fā)表于 2020-1-31 16:53 | 只看該作者
這個驗證試驗蠻簡單,先向從機(jī)發(fā)送10100001B,程序只寫到這里,不寫應(yīng)答程序,然后運(yùn)行,運(yùn)行完成后,如果這時從機(jī)沒有將SDA拉低,SDA將處于高電位,因為最后一位是1。但實際上,如果我們檢測一下的話,會發(fā)現(xiàn)SDA是處于低電位的。
檢測方法可以用萬用表,可以用邏輯分析儀。另外,也可以用我另外一個貼子里的方法,我用這個方法已經(jīng)檢測過了。
PS:象這種試驗,編程時建議有些數(shù)據(jù)不要用十六進(jìn)制十進(jìn)制神馬的,直接用二進(jìn)制,直觀且便于按你的意圖修改。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表