詳細(xì)開(kāi)發(fā)2新唐單片機(jī)cortexm032位numicro an1009sc how to access24c64via iic_第1頁(yè)
詳細(xì)開(kāi)發(fā)2新唐單片機(jī)cortexm032位numicro an1009sc how to access24c64via iic_第2頁(yè)
詳細(xì)開(kāi)發(fā)2新唐單片機(jī)cortexm032位numicro an1009sc how to access24c64via iic_第3頁(yè)
詳細(xì)開(kāi)發(fā)2新唐單片機(jī)cortexm032位numicro an1009sc how to access24c64via iic_第4頁(yè)
詳細(xì)開(kāi)發(fā)2新唐單片機(jī)cortexm032位numicro an1009sc how to access24c64via iic_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

ApplicationNoteofNUVOTON32-bitNuMicro?ApplicationApplication32-bitCortex?-M0MCUNuMicro?Family March11,-i Rev.TOC\o"1-2"\h\z\u簡(jiǎn) I2C性 I2C功能描 地址寄存器 數(shù)據(jù)寄存器 控制寄存器 狀態(tài)寄存器 I2C波特率控制寄存器 I2C時(shí)間溢出計(jì)數(shù)寄存器 電 示例代 版本歷 I2CP通過(guò)如下IO口相連:O()ISTT(),IT,IR,),ILKE)IOC,BF)IIC口通過(guò)設(shè)置ES為高而使能時(shí),內(nèi)部狀態(tài)將被IO和I硬件邏輯控制。當(dāng)一個(gè)新的狀態(tài)碼被產(chǎn)生并到ISTT中時(shí),I中斷標(biāo)志(SI)自動(dòng)置位,如果I此時(shí)為高,I中斷將會(huì)產(chǎn)生,ITTS的高位保存內(nèi)部狀態(tài)碼,低位總是,這些內(nèi)容一直保持到軟件清除SI位,I在xx址是和x地址寄存器I口支持“全呼"功能,如果I硬件GC位置位,硬件將響應(yīng)全呼地址(),清除G位全呼功能。當(dāng)GC位置位,IC在從模式可以接收到總線上主機(jī)發(fā)出的地址為(H)的全呼信號(hào)。主模式I位BitI2C地址ADDR0.6~I2C地址ADDR1.6~I2C地址ADDR2.6~I2C地址ADDR3.6~I2C0ADRM0.6~I2C1ADRM1.6~I2C2ADRM2.6~I2C3ADRM3.6~數(shù)據(jù)寄存器這個(gè)寄存器保存了8位要發(fā)送的數(shù)據(jù)或剛收到的數(shù)據(jù),U可以在該寄存器沒(méi)有移位操作的時(shí)候?qū)ζ渲監(jiān)SI)IT保持到I位被清零。當(dāng)數(shù)據(jù)被移出的時(shí)候總線上的數(shù)據(jù)被同時(shí)移入,IAT總是保存總線上最后一次出IT和應(yīng)答位組成一個(gè)9位移位寄存器,應(yīng)答位由O硬件控制U不能讀寫(xiě),串行數(shù)據(jù)在L時(shí)鐘脈沖上升沿移入IT。當(dāng)1個(gè)字節(jié)數(shù)據(jù)被移入IAT,應(yīng)答位(K或AK)在第9個(gè)時(shí)鐘脈沖返SIAIT I2CDATAI2DAT.7~控制寄存器 I2C開(kāi)始標(biāo)志,設(shè)置STA=1進(jìn)入主模式,當(dāng)總線空閑時(shí)I2C硬件發(fā)送一個(gè)START I2C停止標(biāo)志,在主模式中設(shè)置STO可以發(fā)送STOP條件到總線上,I2C硬件將檢測(cè)總線,如果一個(gè)STOP條件被檢測(cè)到,STO位被硬件自動(dòng)清零。在從模式中,設(shè)置STO可以復(fù)位 Bit5Bit4Bit3 I2CCONTROL--狀態(tài)寄存器ITTS是一個(gè)8位只讀寄存器,低3位總是0,高5位包含了狀態(tài)碼,共有6種可能的狀態(tài)碼,當(dāng)ITTF時(shí),沒(méi)有中斷產(chǎn)生,所有其他ITS值對(duì)應(yīng)于定義的IO(I=)。一個(gè)有效的狀態(tài)碼將在硬件將I置位后一個(gè)機(jī)器周期進(jìn)入ISTTSI此外,狀態(tài)0表示總線錯(cuò)誤,在幀格式的錯(cuò)誤位置出現(xiàn)STAT或O條件將產(chǎn)生總線錯(cuò)誤。錯(cuò)誤位置例如:正在傳輸一個(gè)地址字節(jié),數(shù)據(jù)字節(jié)或者應(yīng)答位的時(shí)候。要想從IC總線錯(cuò)誤中恢復(fù)過(guò)來(lái),需要設(shè)置TO,清除IT程中I Bit8 8bitstatusI2C波特率控制寄存器當(dāng)IO在主模式時(shí),I數(shù)據(jù)波特率取決于IK寄存器,O在從模式時(shí)自動(dòng)與主IC設(shè)備時(shí)鐘同步,最高到Kz。I2C設(shè)定數(shù)據(jù)波特率為:I2C數(shù)據(jù)波特率=PCLK/(4x(I2CLK+1)),如果PCLK=16MHz,I2CLK=40(28H),所以I2C數(shù)據(jù)波特率=16MHz/(4X(40+1))=97.5K位/秒,如下表所示 Bit8 I2CCLOCKI2CLK.7~I2C一個(gè)4位時(shí)間溢出計(jì)數(shù)器可以用來(lái)處理IC總線掛起,如果時(shí)間溢出計(jì)數(shù)器被使能,計(jì)數(shù)器立即開(kāi)始計(jì)數(shù)直到溢出(I=1)并產(chǎn)生IC中斷請(qǐng)求,I清零停止計(jì)數(shù)。當(dāng)時(shí)間溢出計(jì)數(shù)使能時(shí),設(shè)置標(biāo)志SII總線掛起,將導(dǎo)致IAT和I4位計(jì)數(shù)器可能溢出并通過(guò)I中斷通知U,請(qǐng)參考下圖,用戶可以對(duì)TIF位寫(xiě)1清 Bit2 #include<stdio.h>#include<stdio.h>#include"Driver\DrvI2C.h"#include"Driver\DrvSYS.h"intmain{u32HCLK=DrvSYS_GetHCLK()*/*SetI2CI/O/*OpenI2C0andsetclock=100Kbps//sendi2cstartDrvI2C_Ctrl(I2C_PORT0,1,0,0,0);while(I2C0->CON.SI==0);//sendwritercommandI2C0->DATA=0XA0;while(I2C0->CON.SI==0//set//pollsi//sendwriter//clrsi//pollsi//sendaddresshighI2C0->DATA=0X00;DrvI2C_Ctrl(I2C_PORT0,0,0,1,1); //clrsiandsetackwhile(I2C0->CON.SI==0); //pollsiflag//sendaddresslowI2C0->DATA=0X01;DrvI2C_Ctrl(I2C_PORT0,0,0,1,1); //clrsiandsetackwhile(I2C0->CON.SI==0); //pollsiflag//sendI2C0->DATA=0X55; //writedatatoDrvI2C_Ctrl(I2C_PORT0,0,0,1,1); //clrsiandsetackwhile(I2C0->CON.SI==0); //pollsiflag//sendi2cDrvI2C_Ctrl(I2C_PORT0,0,1,1,0); //sendstop/*OpenI2C0andsetclock=100Kbps*///sendi2c //setwhile(I2C0->CON.SI== //pollsi//sendwritercommandI2C0->DATA=0XA0; //clrwhile(I2C0->CON.SI==0 //pollsi//sendaddresshighI2C0->DATA=0X00;DrvI2C_Ctrl(I2C_PORT0,0,0,1,1); //clrsiandsetackwhile(I2C0->CON.SI==0); //pollsiflag//sendaddressI2C0->DATA=0X01;DrvI2C_Ctrl(I2C_PORT0,I2C0->DATA=0X01;DrvI2C_Ctrl(I2C_PORT0,0,0,1,1);while(I2C0->CON.SI==0//clrsiandset//pollsi//sendstartDrvI2C_Ctrl(I2C_PORT0,1,0,1,0);while(I2C0->CON.SI==0);//clrsiandsend//pollsiI2C0->DATA=while(I2C0->CON.SI==0//clr//pollsi//resiveI2C0->DATA=DrvI2C_Ctrl(I2C_PORT0,0,0,1,0);while(I2C0->CON.SI==0);//clr//pollsi//sendi2cstopDrvI2C_Ctrl(I2C_PORT0,0,1,1,0);//clrsiandset}March11,1.InitiallyImportantNuvotonproductsarenotdesigned,intended,authorizedorwarrantedforuseascomponentsinsystemsorequipmentintendedforsurgicalimntation,atomicenergycontrolinstruments,airneorspaceshipinstruments,transportationinstruments,trafficsignalinstruments,combustioncontrolinstruments,orforotherapplicationsintendedtosupportorsustainlife.Furthermore,NuvotonproductsarenotintendedforapplicationswhereinfailureofNuvotonproductscouldresultorleadtoasituationwherein alinjury,deathorseverepropertyorenvironmentaldamagecouldoccur.NuvotoncustomersusingorsellingtheseproductsforuseinsuchapplicationsdosoattheirownriskandagreetofullyindemnifyNuvotonforanydamagesres

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論