




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、i2c specI I 打C3E master to slave匚 from alsvB' to masterSlave ADDRESSADATAWASri Slave addressRWAATApAl PIr fcytes(n bytes*act.freac or write read or write * 孔丄not ahad&cl because Transr Ei厝ction 少 data and ackrledge bi僅 depends on R.<W bits.蠱r = repeated START conditiondirection of trana
2、39;cr ffliay Charge a: this point.niJcSC?sSLAVE ADDRESSAataAdataA/APti3.t3 trapsferred(write)in bs + ackflOhtedgeJA = acknowledge (SDA LOW|S = rci 曲knew edge (宮DA HiOmJS = STAfT coTKjitiOTP* STOP conditionirbcS:fig 11. A master-transmitter addressing: a slave receiver with a 7-bit address (the t陽nsf
3、er direction is not changed)sSlave ADDRESS I fwADATAADATA SiP'aa圮時曲('H bytes + ackncw'edgej m&ceoeFig 12* A master reads a slave immediately after the first byteFig 13. Combinedl formatThe Ack no wledge sig nalis defi nedas follows:thetran smitter ?releases the SDA line (Wei: p ut SD
4、A at 1 state) duri ng the ack no wledge clock pu Ise so the receiver can p ull theSDA line LOW and it?remains stableLOW during the HIGH period of this clock pulse ?(Wei: if the high of clock is hold on, SDA is kept atLOW! ) (see Figure 4). Set-up and?hold times (sp ecified in Secti on 6) must also b
5、e take n into acco unt.Whe n SDA remai ns HIGH duri ng this nin th clock pu Ise, this is defined as the Not?Ack no wledge sig nal.我的波形:80C51, NAK波形。Whe n SDA remai ns HIGH duri ng this nin th clock pu Ise, this is defined as the Not?Ack no wledge sig nal.chg 2aemti最新在開發OLED屏驅動,TypePicture- I . iIM 1
6、60 jjsCHf<312riUM Posi£.45ins需要用到I2C總線,下面大體上講解一下I2C設備的調試及波形分析,為大家做一些參考,由于剛涉及這部分內容,因此有什么錯誤的,還請賜教、概要I2C總線只需要兩條線,一條SDA數據線,一條SCL時鐘線;根據這兩條線的高低電平、上升沿、下降沿就可以實現主機與I2C設備的通 訊;其中有:(1) I2C總線相關傳輸開始條件:SCL處于高電平,SDA下降沿時;傳輸接收條件:SCL處于高電平,SDA上升沿時;傳輸數據:開始傳輸后,SCL處于高電平時,SDA的數據為所傳輸的 數據;回應:當傳輸完一個字節后,I2C設備需要回應一個ACK這
7、樣主機 才繼續發送;因此回應信號是在傳輸完8bit后的下一個數據位(SDA 值),當SDA為0表示有回應,為1表示沒回應;正常 I2C 總線的數據是:Start + I2C devece id + R/W+ ACK+ Data(first byte )+ ACK + . + Data(n) + ACK + Stop(2) I2C設備相關設備地址:有7位和10位兩種,具體見I2C設備芯片的Datasheet, 由于目前用到的是7位,因此下面主要針對7位講述;在講I2C設備 地址是有可能有兩種說法,主要是用8位表示還是用7為表示,比如 對于我的OLED來說,當用8位表示時則為0x78地址,當用7位
8、時則 為0x3c (即0x78右移1為),在驅動中用0x78還是用0x3c要看具 體平臺的I2C總線驅動,我在 AMLOGI平臺上用的是0x78,而在MV平臺上用的是0x3c; 寄存器reg : 一般的I2C設備芯片都有帶reg,一般在傳輸正式的數 據之前需要先傳輸reg地址,比如我的OLED來說,在傳控制命令時 需要先發送0x00的reg地址,在傳輸數據時需要發送0x40的reg地 址;二、調試及波形分析般當我們拿到一個I2C設備時,就必須涉及到驅動的編寫,就比如 對于OLED來說,就要用編寫OLE驅動,這樣我們才能控制它,對于OLED屏來說,第一步也是最重要的一步就是點亮它;當我們做完這r
9、H步,那后面剩下的就只是細節問題了;”萬事開頭難“,這句話真 的不假,對于OLED來說,如何才能點亮,我們該怎么調試呢?當我 們寫完OLESE動,但OLEC屏還是不亮,可能問題會出現在哪?是硬件問題還是軟件問題?;若為軟件問題,那會是I2C總線驅動問題,還是我們I2C設備驅動有問題?那么我們該如何判斷問題出現位置 呢?這就需要我們對I2C總線上的數據進行分析;那么下面我將詳細 講述如何獲取和分析I2C總線上的數據;(1)示波器對于I2C總線的數據,我們要用到示波器,這樣我們才能抓取到信號, 而且必須同時采集SDA和SCL的數據;該如何抓取呢?我這邊的方式是將示波器調成邊下降沿觸發模式(因為開始
10、信號是SDA下降沿),并且設置成單次模式(這樣抓取完一次就會stop,便于我們數據分析);(2)波形由于我的OLED設備的地址是0x78(8位),而第一次我必須將 OLED設置成of狀態,通過命令表可以查到,必須發生0xAE,而剛剛有講到在發送命令前必須先發送寄存器reg地址,即0x00;于是我發送的數據為0x78+0x00+0xAE下面是我用示波器抓取到的波形:LeCra IHSAVE/REGCHI 500mUCUN 噲 1.00UCH1 >-0.GGmUr L 類型 :-«圉像彳錯存分析(其中黃色的為SDAB號,淺藍色為SCL信號):從上述波形中 我們可以讀取到數據依次是:
11、011110000 00000000 0; 即: 0111100(7位OLED設備地址)+ 0( 讀寫為,0為寫,1為讀)+0 (ACK回應)+00000000 (寄存器 reg)+ (0xAE OLED off 命令);(這里還有一點我還沒弄明白就是reg后沒有回應,還望大家不吝賜教)F面當我來隨便發送一個地址時,比如當我發送0x56(8位地址),LLjeCrorycsv一出廠謨晝-測到的波形如下:SAVE/KEC呻圏伽諸存 印雪i-K:iiIIWWr+CH1= SeSmLJ CHN= l.SQMO -C 1 SHnCHI sTo.eamUPv1 Pov 土S&.QS i_i V分析
12、:從波形可看出數據依次為:0即0101011 (設備地址)+0 (讀 寫位)+1 (NACK5應答),由于沒有相應的I2C設備因此無應答ACK 信號,于是就停止傳輸;三、總結 由以上可知,可以通過查看I2C總線數據來確認跟蹤I2C設備,已更 好地確定是軟件問題還是硬件問題;I2C的概念原理網上都有就不說了,這里只把我把兩個開發板通過I2C通訊的調試經驗記錄分享一下。I2C要求要有一個主設備,負責發起請求和控制時鐘;其它為從設備,通過設備ID地址來識別并響應主設備請求。主從設備要輪流控制SDA開始我沒搞明白這一點,直接加了寫I2C數據代碼,然后用示波器 在SDA和SCL腳測量,卻只能找到些凌亂的
13、波形,沒有預期的效果。后來把從設備接上,兩邊寫好代碼,互相有了響應,這才在示波器上 看到波形。這里我找了一個主設備往從設備寫數據的例子,代碼如下:char buf128;int len;Strep y(buf,".huz_hello_i2c/n");len二 strle n( buf);o-SSglent *1.迂訂玳:卜:;" rti 'iro 回應*肢據-O-ol 血 01110=” '碧宀n.- 劈廠7 .f ,-戶r >_1 nr 4- I;=D*心* _ r y:|< M Ml宀s屮i !f 豈ht n局i- t| I,
14、39; iII!IL-.y一用亡5 nbrbcre » : 0i L屛&箏fc煮申I*:IRD-ot燭據on nil ID回山r -5匚|心T< 7T時;:7丁的iW-I' I:I - illII: 1(傘呻TiTIt 3 布 i/HH- J"沖:第鑑聞I駄騷$忙世D t D t t,« *' ;!rEfCHi 二 20 亦OJ書言彌L 何 25.0p y)w < 1 dHz g''<-_r _-' <匚Hl Z152mV4M Pos:13h0pg號的ASCII碼,符合預期輸出;2.還有其它數據和最后的停止位,圖中被截掉了。從圖中可知,縱向一格是200mV則SDA和SCL的電平大概就是350mV 由于信號筆上設置了信號x10,因此實際
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 培訓招生策劃方案
- 鋼筋購銷合同協議書
- 銀行委托支付協議書
- 到診所兼職執業協議書
- 車間安全保密協議書
- 迪拜鋼琴轉讓協議書
- 高空吊繩安全協議書
- 車位物業代銷協議書
- 一方放棄房子權協議書
- 運輸公司買賣協議書
- 2025年公務員考試《行測》模擬題及答案(詳細解析)
- 2024員工質量意識培訓
- 塔吊定期檢查記錄表
- 信息系統監理師(基礎知識、應用技術)合卷軟件資格考試(中級)試題與參考答案(2024年)
- 上海市上寶中學新初一分班(摸底)語文模擬試題(5套帶答案)
- 河南省南陽市2023-2024學年高二下學期期終質量評估+物理試卷答案
- 食品安全與質量檢測技能大賽考試題庫400題(含答案)
- 2024年浙江省嘉興市初三中考三模科學試卷試題(含答案詳解)
- 核心素養-空間觀念
- 吉林省長春市2024年中考語文真題試卷【附真題答案】
- DZ/T 0462.3-2023 礦產資源“三率”指標要求 第3部分:鐵、錳、鉻、釩、鈦(正式版)
評論
0/150
提交評論