




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
單片微型計算機原理及接口技術(shù)(24)1/31內(nèi)容提綱二STC8H8K64U單片機I2C接口的寄存器一STC8H8K64U單片機I2C接口的簡介三STC8H8K64U單片機I2C接口的應用2/31STC8H8K64U單片機I2C接口的簡介一3/31I2C接口簡介STC8H8K64U單片機內(nèi)部集成了一個I2C串行總線控制器。使用SCL(時鐘線)和SDA(數(shù)據(jù)線)兩線進行同步通信。通過相關(guān)特殊功能寄存器的設置,可將SCL和SDA切換到不同的I/O口上,以方便用戶將一組I2C總線當作多組進行分時復用。STC8H8K64U單片機的I2C總線提供了兩種操作模式:主機模式(SCL為輸出口,發(fā)送同步時鐘信號)和從機模式(SCL為輸入口,接收同步時鐘信號)。4/31與標準I2C協(xié)議相比較,STC8H8K64U單片機的I2C總線忽略了如下兩種機制:發(fā)送起始信號(START)后不進行仲裁。時鐘信號(SCL)停留在低電平時不進行超時檢測。I2C串行總線控制器工作在從機模式時,SDA管腳的下降沿信號可以喚醒進入掉電模式的MCU。(注意:由于I2C傳輸速度比較快,MCU喚醒后第一包數(shù)據(jù)一般是不正確的)5/31STC8H8K64U單片機I2C接口的寄存器二6/31與I2C接口有關(guān)的特殊功能寄存器如表所示。符號描述地址位符號復位值b7b6b5b4b3b2b1b0I2CCFGI2C配置寄存器FE80HENI2CMSSLMSSPEED[5:0]0000,0000I2CMSCRI2C主機控制寄存器FE81HEMSI---MSCMD[3:0]0xxx,0000I2CMSSTI2C主機狀態(tài)寄存器FE82HMSBUSYMSIF----MSACKIMSACKO00xx,xx10I2CSLCRI2C從機控制寄存器FE83H-ESTAIERXIETXIESTOI--SLRSTx000,0xx0I2CSLSTI2C從機狀態(tài)寄存器FE84HSLBUSYSTAIFRXIFTXIFSTOIFTXINGSLACKISLACKO0000,0000I2CSLADRI2C從機地址寄存器FE85HI2CSLADR[7:1]MA0000,0000I2CTXDI2C數(shù)據(jù)發(fā)送寄存器FE86H
0000,0000I2CRXDI2C數(shù)據(jù)接收寄存器FE87H
0000,0000I2CMSAUXI2C主機輔助控制寄存器FE88H-------WDTAxxxx,xxx07/311)ENI2C:I2C功能使能控制位0:禁止I2C功能1:允許I2C功能2)MSSL:I2C工作模式選擇位0:從機模式1:主機模式(1)I2C配置寄存器(I2CCFG)符號地址b7b6b5b4b3b2b1b0I2CCFGFE80HENI2CMSSLMSSPEED[5:0]8/311、I2C主機模式1、I2C主機模式3)MSSPEED[5:0]:I2C總線速度(等待時鐘數(shù))控制,I2C總線速度=SYSclk/2/(MSSPEED*2+4)(1)I2C配置寄存器(I2CCFG)符號地址b7b6b5b4b3b2b1b0I2CCFGFE80HENI2CMSSLMSSPEED[5:0]MSSPEED[5:0]對應的時鐘數(shù)041628……x2x+4……62128631309/31只有當I2C模塊工作在主機模式時,MSSPEED參數(shù)設置的等待參數(shù)才有效。此等待參數(shù)主要用于主機模式的以下幾個信號:TSSTA:起始信號的建立時間(SetupTimeofSTART)THSTA:起始信號的保持時間(HoldTimeofSTART)TSSTO:停止信號的建立時間(SetupTimeofSTOP)THSTO:停止信號的保持時間(HoldTimeofSTOP)THCKL:時鐘信號的低電平保持時間(HoldTimeofSCLLow)THCKH:時鐘信號的高電平保持時間(HoldTimeofSCLHigh)I2C總線速度=SYSclk/2/(MSSPEED*2+4)例:當24MHz的工作頻率下需要400K的I2C總線速度時,MSSPEED=(24M/400K/2-4)/2=1310/311)EMSI:主機模式中斷使能控制位0:關(guān)閉主機模式的中斷1:允許主機模式的中斷2)MSCMD[3:0]:主機命令0000:待機,無動作。0001:起始命令。發(fā)送START信號。如果當前I2C控制器處于空閑狀態(tài),即MSBUSY(I2CMSST.7)為0時,寫此命令會使控制器進入忙狀態(tài),硬件自動將MSBUSY狀態(tài)位置1,并開始發(fā)送START信號;若當前I2C控制器處于忙狀態(tài),寫此命令可觸發(fā)發(fā)送START信號。發(fā)送START信號的波形如下圖所示:(2)I2C主機控制寄存器(I2CMSCR)符號地址b7b6b5b4b3b2b1b0I2CMSCRFE81HEMSI---MSCMD[3:0]11/310010:發(fā)送數(shù)據(jù)命令。寫此命令后,I2C總線控制器會在SCL管腳上產(chǎn)生8個時鐘,并將I2CTXD寄存器里面數(shù)據(jù)按位送到SDA管腳上(先發(fā)送高位數(shù)據(jù))。發(fā)送數(shù)據(jù)的波形如下圖所示:(2)I2C主機控制寄存器(I2CMSCR)0011:接收ACK命令。寫此命令后,I2C總線控制器會在SCL管腳上產(chǎn)生1個時鐘,并將從SDA端口上讀取的數(shù)據(jù)保存到MSACKI(I2CMSST.1)。接收ACK的波形如下圖所示:12/310100:接收數(shù)據(jù)命令。寫此命令后,I2C總線控制器會在SCL管腳上產(chǎn)生8個時鐘,并將從SDA端口上讀取的數(shù)據(jù)依次左移到I2CRXD寄存器(先接收高位數(shù)據(jù))。接收數(shù)據(jù)的波形如下圖所示:(2)I2C主機控制寄存器(I2CMSCR)0101:發(fā)送ACK命令。寫此命令后,I2C總線控制器會在SCL管腳上產(chǎn)生1個時鐘,并將MSACKO(I2CMSST.0)中的數(shù)據(jù)發(fā)送到SDA端口。發(fā)送ACK的波形如下圖所示:13/310110:停止命令。發(fā)送STOP信號。寫此命令后,I2C總線控制器開始發(fā)送STOP信號。信號發(fā)送完成后,硬件自動將MSBUSY狀態(tài)位清零。STOP信號的波形如下圖所示:(2)I2C主機控制寄存器(I2CMSCR)0111:保留。1000:保留。1001:起始命令+發(fā)送數(shù)據(jù)命令+接收ACK命令。此命令為命令0001、命令0010、命令0011三個命令的組合,下此命令后控制器會依次執(zhí)行這三個命令。14/311010:發(fā)送數(shù)據(jù)命令+接收ACK命令。此命令為命令0010、命令0011兩個命令的組合,下此命令后控制器會依次執(zhí)行這兩個命令。1011:接收數(shù)據(jù)命令+發(fā)送ACK(0)命令。此命令為命令0100、命令0101兩個命令的組合,下此命令后控制器會依次執(zhí)行這兩個命令。注意:此命令所返回的應答信號固定為ACK(0),不受MSACKO位的影響。1100:接收數(shù)據(jù)命令+發(fā)送NAK(1)命令。此命令為命令0100、命令0101兩個命令的組合,下此命令后控制器會依次執(zhí)行這兩個命令。注意:此命令所返回的應答信號固定為NAK(1),不受MSACKO位的影響。(2)I2C主機控制寄存器(I2CMSCR)15/31(3)I2C主機輔助控制寄存器(I2CMSAUX)符號地址b7b6b5b4b3b2b1b0I2CMSAUXFE88H-------WDTAWDTA:主機模式時I2C數(shù)據(jù)自動發(fā)送允許位0:禁止自動發(fā)送1:使能自動發(fā)送若自動發(fā)送功能被使能,當MCU執(zhí)行完成對I2CTXD數(shù)據(jù)寄存器的寫操作后,I2C控制器會自動觸發(fā)“1010”命令,即自動發(fā)送數(shù)據(jù)并接收ACK信號。16/31(4)I2C主機狀態(tài)寄存器(I2CMSST)符號地址b7b6b5b4b3b2b1b0I2CMSSTFE82HMSBUSYMSIF----MSACKIMSACKOMSBUSY:主機模式時I2C控制器狀態(tài)位(只讀位)0:控制器處于空閑狀態(tài)1:控制器處于忙碌狀態(tài)當I2C控制器處于主機模式時,在空閑狀態(tài)下,發(fā)送完成START信號后,控制器便進入到忙碌狀態(tài),忙碌狀態(tài)會一直維持到成功發(fā)送完成STOP信號,之后狀態(tài)會再次恢復到空閑狀態(tài)。MSIF:主機模式的中斷請求位(中斷標志位)。當處于主機模式的I2C控制器執(zhí)行完成寄存器I2CMSCR中MSCMD命令后產(chǎn)生中斷信號,硬件自動將此位1,向CPU發(fā)請求中斷,響應中斷后MSIF位必須用軟件清零。MSACKI:主機模式時,發(fā)送“0011”命令到I2CMSCR的MSCMD位后所接收到的ACK數(shù)據(jù)。(只讀位)MSACKO:主機模式時,準備將要發(fā)送出去的ACK信號。當發(fā)送“0101”命令到I2CMSCR的MSCMD位后,控制器會自動讀取此位的數(shù)據(jù)當作ACK發(fā)送到SDA。17/312、I2C從機模式ESTAI:從機模式時接收到START信號中斷允許位0:禁止從機模式時接收到START信號時發(fā)生中斷1:使能從機模式時接收到START信號時發(fā)生中斷ERXI:從機模式時接收到1字節(jié)數(shù)據(jù)后中斷允許位0:禁止從機模式時接收到數(shù)據(jù)后發(fā)生中斷1:使能從機模式時接收到1字節(jié)數(shù)據(jù)后發(fā)生中斷ETXI:從機模式時發(fā)送完成1字節(jié)數(shù)據(jù)后中斷允許位0:禁止從機模式時發(fā)送完成數(shù)據(jù)后發(fā)生中斷1:使能從機模式時發(fā)送完成1字節(jié)數(shù)據(jù)后發(fā)生中斷ESTOI:從機模式時接收到STOP信號中斷允許位0:禁止從機模式時接收到STOP信號時發(fā)生中斷1:使能從機模式時接收到STOP信號時發(fā)生中斷SLRST:復位從機模式(1)I2C從機控制寄存器(I2CSLCR)符號地址b7b6b5b4b3b2b1b0I2CSLCRFE83H-ESTAIERXIETXIESTOI--SLRST18/31(2)I2C從機狀態(tài)寄存器(I2CSLST)SLBUSY:從機模式時I2C控制器狀態(tài)位(只讀位)0:控制器處于空閑狀態(tài)1:控制器處于忙碌狀態(tài)當I2C控制器處于從機模式時,在空閑狀態(tài)下,接收到主機發(fā)送START信號后,控制器會繼續(xù)檢測之后的設備地址數(shù)據(jù),若設備地址與當前I2CSLADR寄存器中所設置的從機地址相同時,控制器便進入到忙碌狀態(tài),忙碌狀態(tài)會一直維持到成功接收到主機發(fā)送STOP信號,之后狀態(tài)會再次恢復到空閑狀態(tài)。符號地址b7b6b5b4b3b2b1b0I2CSLSTFE84HSLBUSYSTAIFRXIFTXIFSTOIF-SLACKISLACKO19/31(2)I2C從機狀態(tài)寄存器(I2CSLST)STAIF:從機模式時接收到START信號后的中斷請求位。從機模式的I2C控制器接收到START信號后,硬件會自動將此位置1,并向CPU發(fā)請求中斷,響應中斷后STAIF位必須用軟件清零。STAIF被置1的時間點如下圖所示:符號地址b7b6b5b4b3b2b1b0I2CSLSTFE84HSLBUSYSTAIFRXIFTXIFSTOIF-SLACKISLACKO20/31(2)I2C從機狀態(tài)寄存器(I2CSLST)RXIF:從機模式時接收到1字節(jié)的數(shù)據(jù)后的中斷請求位。從機模式的I2C控制器接收到1字節(jié)的數(shù)據(jù)后,在第8個時鐘的下降沿時硬件會自動將此位置1,并向CPU發(fā)請求中斷,響應中斷后RXIF位必須用軟件清零。RXIF被置1的時間點如下圖所示:符號地址b7b6b5b4b3b2b1b0I2CSLSTFE84HSLBUSYSTAIFRXIFTXIFSTOIF-SLACKISLACKO21/31(2)I2C從機狀態(tài)寄存器(I2CSLST)TXIF:從機模式時發(fā)送完成1字節(jié)的數(shù)據(jù)后的中斷請求位。從機模式的I2C控制器發(fā)送完成1字節(jié)的數(shù)據(jù)并成功接收到1位ACK信號后,在第9個時鐘的下降沿時硬件會自動將此位置1,并向CPU發(fā)請求中斷,響應中斷后TXIF位必須用軟件清零。TXIF被置1的時間點如下圖所示:符號地址b7b6b5b4b3b2b1b0I2CSLSTFE84HSLBUSYSTAIFRXIFTXIFSTOIF-SLACKISLACKO22/31(2)I2C從機狀態(tài)寄存器(I2CSLST)STOIF:從機模式時接收到STOP信號后的中斷請求位。從機模式的I2C控制器接收到STOP信號后,硬件會自動將此位置1,并向CPU發(fā)請求中斷,響應中斷后STOIF位必須用軟件清零。STOIF被置1的時間點如下圖所示:符號地址b7b6b5b4b3b2b1b0I2CSLSTFE84HSLBUSYSTAIFRXIFTXIFSTOIF-SLACKISLACKO23/31(2)I2C從機狀態(tài)寄存器(I2CSLST)SLACKI:從機模式時,接收到的ACK數(shù)據(jù)。SLACKO:從機模式時,準備將要發(fā)送出去的ACK信號。符號地址b7b6b5b4b3b2b1b0I2CSLSTFE84HSLBUSYSTAIFRXIFTXIFSTOIF-SLACKISLACKO24/31(3)I2C從機地址寄存器(I2CSLADR)I2CSLADR[7:1]:從機設備地址當I2C控制器處于從機模式時,控制器在接收到START信號后,會繼續(xù)檢測接下來主機發(fā)送出的設備地址數(shù)據(jù)以及讀/寫信號。當主機發(fā)送出的設備地址與I2CSLADR[7:1]中所設置的從機設備地址相同時,控制器才會向CPU發(fā)出中斷求,請求CPU處理I2C事件;否則若設備地址不同,I2C控制器繼續(xù)監(jiān)控,等待下一個起始信號,對下一個設備地址繼續(xù)比較。MA:從機設備地址比較控制(MAtch)0:設備地址必須與I2CSLADR[7:1]相同1:忽略I2CSLADR[7:1]中的設置,接受所有的設備地址符號地址b7b6b5b4b3b2b1b0I2CSLADRFE85HI2CSLADR[7:1]MA25/31I2C總線協(xié)議規(guī)定I2C總線上最多可掛載128個I2C設備(理論值),不同的I2C設備用不同的I2C從機設備地址進行識別。I2C主機發(fā)送完成起始信號后,發(fā)送的第一個數(shù)據(jù)(DATA0)的高7位即為從機設備地址(DATA0[7:1]為I2C設備地址),最低位為讀寫信號。當I2C設備從機地址寄存器MA(I2CSLADR.0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年公司廠級安全培訓考試試題附參考答案(鞏固)
- 2024-2025工廠員工安全培訓考試試題含答案(能力提升)
- 25年公司、項目部、各個班組安全培訓考試試題附答案(滿分必刷)
- 2025店鋪雇傭合同模板
- 框架協(xié)議委托代理
- 民宿拍攝合同范本
- 2025綜合承包建設合同
- 2025租房轉(zhuǎn)讓合同范本協(xié)議書
- 2025年鋼材:一級鋼項目建議書
- 2025店鋪買賣合同樣本
- 2024-2029年中國電泳電子紙顯示器行業(yè)市場現(xiàn)狀供需分析及市場深度研究發(fā)展前景及規(guī)劃戰(zhàn)略投資分析研究報告
- 中考一模質(zhì)量分析數(shù)學
- (正式版)JBT 6434-2024 輸油齒輪泵
- 化工和危險化學品生產(chǎn)經(jīng)營單位二十條重大隱患判定標準釋義(中化協(xié))
- 2023《住院患者身體約束的護理》團體標準解讀PPT
- 建筑工地節(jié)前停工安全檢查表
- 蘇科版八年級數(shù)學下冊題型突破提高類型五、反比例函數(shù)與一次函數(shù)結(jié)合求不等式解集與面積(原卷版+解析)
- 問題解決過程PSP-完整版
- 山西醫(yī)藥投資價值分析報告
- 《影視藝術(shù)鑒賞》課件
- 動態(tài)血糖管理-動態(tài)血糖監(jiān)測CGM
評論
0/150
提交評論