煉獄傳奇系列課件40篇-iic之戰(zhàn)_第1頁
煉獄傳奇系列課件40篇-iic之戰(zhàn)_第2頁
煉獄傳奇系列課件40篇-iic之戰(zhàn)_第3頁
煉獄傳奇系列課件40篇-iic之戰(zhàn)_第4頁
煉獄傳奇系列課件40篇-iic之戰(zhàn)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、-IIC 之戰(zhàn)要學(xué)習(xí)的內(nèi)容,簡單來說,就是一種串行的通信協(xié)議,IIC 的通信本節(jié)協(xié)議和通口在很多工程中有廣泛的應(yīng)用,如領(lǐng)域的串行 AD,圖像處理領(lǐng)域的頭配置,工業(yè)控制領(lǐng)域的 X 射線管配置等等。除此之外,由于 IIC協(xié)議占用的 IO 資源特別少,連接方便,所以工程中也常選用 IIC 接口做為不同間的通信協(xié)議。IIC 協(xié)議的完成靠的是的時序,一個周期都不能錯,這也正是設(shè)置本實驗的目的。通過 IIC 的學(xué)習(xí),鍛煉自己的時序?qū)崿F(xiàn)技巧和方法,可以說最佳的案例之一。本實驗的學(xué)習(xí),采用的外部接口為 EEPROM,其封裝圖如下:接下來,梳理一下各引腳定義:1.A0,A1,A2 為 24LC64 的片選信號,

2、由于 IIC 總線可以掛載多個 IIC 接口器件,所以每個器件都應(yīng)該有自己的“標(biāo)識”,通過對 A0,A1,A2輸入不同的高低電平,就可以設(shè)置該 EEPROM 的片選信號。2.WP 為讀寫使能信號,當(dāng) WP 懸空或者接地,EEPROM 可讀可寫,當(dāng) WP 接電源,EEPROM 只能讀不能寫。3.SCL 為 IIC 接口的時鐘線4.SDA 為 IIC 接口的數(shù)據(jù)線得到了上面的配置信息,那么接下來,看一下開發(fā)板的配置原理圖由此可以看出的位選信號為“000”,EEPROM 可讀寫。原理圖分析完畢,接下來看一下 IIC 接口的具體時序是什么。IIC讀寫時序分為隨機(jī)讀寫和頁面讀寫,也就是常說的Byte W

3、rite/Read 和PageWrite/Read。首先來學(xué)習(xí) Byte Write/Read 時序Byte Write 時序如下:由時序圖可以看出,如果要向 EEPROM 寫入一個字節(jié),那么必須經(jīng)過以下步驟:1.發(fā)送啟動信號2.發(fā)送控制字3.接收并檢測 EEPROM 發(fā)來的應(yīng)答信號 ACK4.發(fā)送高字節(jié)地址位5.接收并檢測 EEPROM 發(fā)來的應(yīng)答信號 ACK6.發(fā)送低字節(jié)地址位7.接收并檢測 EEPROM 發(fā)來的應(yīng)答信號 ACK8. 發(fā)送 8bit 有效數(shù)據(jù)9. 接收并檢測 EEPROM 發(fā)來的應(yīng)答信號 ACK10.發(fā)送停止信號Byte Read 時序如下:由時序圖可以看出,如果要從 EE

4、PROM 讀出一個字節(jié),那么必須經(jīng)過以下步驟:1.發(fā)送啟動信號2.發(fā)送控制字 1010_00003.接收并檢測 EEPROM 發(fā)來的應(yīng)答信號 ACK4.發(fā)送高字節(jié)地址位5.接收并檢測 EEPROM 發(fā)來的應(yīng)答信號 ACK6.發(fā)送低字節(jié)地址位7.接收并檢測 EEPROM 發(fā)來的應(yīng)答信號 ACK8.發(fā)送啟動信號9.發(fā)送控制字 1010_000110. 接收并檢測 EEPROM 發(fā)來的應(yīng)答信號 ACK11.一個字節(jié)數(shù)據(jù)12. 發(fā)送 NO ACK 信號13. 發(fā)送停止信號那么現(xiàn)在就變成了每個步驟的意義到底是什么呢?各位且聽我慢慢道來。1.啟動信號在 SCL 保持期間,如果 SDA 出現(xiàn)由高到低的跳變沿

5、,代表啟動信號2.控制字的控制字為 1010_0000,其中 1010 為 EEPROM 的型號標(biāo)識,為一組固定的序列,緊接著 A2,A1,A0 就是的片選信號,最后一位為讀寫控制位,低電平代表寫,代表讀,這里首先需要對 EEPROM寫入地址位,所以最后一位為 0。3.高/低位地址由于 24LC64Kbit 的空間,所以需要 13 位的地址位寬才能尋址所有的空間,由于 IIC 協(xié)議規(guī)定只能以字節(jié)形式寫入,所以必須將 13 位的地址擴(kuò)展為 16 位的地址,分為高八位和低八位,多出來的前三位填充任意數(shù)據(jù)即可,對的尋址地址沒有影響。4.停止信號在 SCL 保持期間,如果 SDA 出現(xiàn)由低到高的跳變沿

6、,代表停止信號5. 應(yīng)答信號 ACK應(yīng)答信號是由數(shù)據(jù)接收方發(fā)出的,當(dāng) SCL 為期間,如果監(jiān)測到 SDA 為低電平,說明有應(yīng)答信號。6. 非應(yīng)答信號 ACK非應(yīng)答信號也是由數(shù)據(jù)接收方發(fā)出的,當(dāng) SCL 為期間,如果 SDA 為高電平,說明有非應(yīng)答信號。由于 IIC 總線協(xié)議啟動和停止信號都是在 SCL期間發(fā)生跳變,這就決定了其他數(shù)據(jù)的改變只能發(fā)生在 SCL 低電平期間,在 SCL 為期間,數(shù)據(jù)必須保持穩(wěn)定。即在 SCL 低電平改變數(shù)據(jù),在 SCL數(shù)據(jù)。接下來,分析項目需求如下:用兩個按鍵控制 EEPROM 讀寫,當(dāng)寫按鍵按下時,向 EEPROM 某一固定地址寫入一個字節(jié)數(shù)據(jù),當(dāng)讀按鍵按下時,將

7、該地址數(shù)據(jù)讀出,并顯示到數(shù)碼管。設(shè)計頂層架構(gòu)如下:說明:LED 燈是一個標(biāo)志信號,LED 亮說明數(shù)據(jù)寫入完畢由于讀時序和寫時序一直到低字節(jié)地址的寫入都是相同的,因此設(shè)置IIC 控制器流程圖如下:clkseg7:0rst_nsdakey wrledsel2:0key_rdresult7:0scl sda led數(shù)碼管顯示模塊IIC 驅(qū)動模塊clkscl具體代碼如下:NoYes寫按鍵讀按鍵發(fā)送停止信號發(fā)送 NO ACK數(shù)據(jù)檢測應(yīng)答發(fā)送停止信號發(fā)送控制字檢測應(yīng)答發(fā)送啟動信號寫入數(shù)據(jù)檢測應(yīng)答發(fā)送低字節(jié)地址檢測應(yīng)答發(fā)送高字節(jié)地址檢測應(yīng)答發(fā)送控制字發(fā)送啟動信號檢測是否有按鍵按下接下來,編寫數(shù)碼管驅(qū)動模塊如

8、下:編寫頂層模塊如下:接下來,可以編寫簡單的測試代碼,驗證邏輯是否正確,測試代碼如下:這個簡單的測試,發(fā)現(xiàn)這個測試真的很簡單,簡單到連反饋的 ACK信號都沒有了,的 IIC 控制器,必須要檢測到 ACK 信號,狀態(tài)才會向下跳轉(zhuǎn),怎么辦呢?我這里教給大家一個最簡單的辦法,那就是在測試的時候掉 ACK 檢測,狀態(tài)直接向下跳轉(zhuǎn),當(dāng)然有的同學(xué),可以編寫較復(fù)雜的測試,加上反饋信號,這樣是最完美的。的代碼就可以改成如下形式:所有檢測 ACK 的狀態(tài)修改完畢以后,仿真如下由仿真圖可以看出當(dāng)讀寫按鍵按下時,電路都會產(chǎn)生對應(yīng)的動作,寫時序如下:讀時序如下:這里有一些需要注意的點:,數(shù)據(jù)的改變、數(shù)據(jù)總線的放開都是在 SCL 低電平的中間位置實現(xiàn)的。通過上面的學(xué)習(xí),實現(xiàn)了頁面讀寫,由于數(shù)碼管前面的章節(jié)中已經(jīng)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論