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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論