




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、本文為翻譯的MSP430x1xx Family User's Guide家庭用戶指南,且只有寄存器的翻譯比較準(zhǔn)確,其他地方閱讀時請自行判斷語句的準(zhǔn)確性本文為翻譯的MSP430x1xx Family User's Guide家庭用戶指南,且只有寄存器的翻譯比較準(zhǔn)確,其他地方閱讀時請自行判斷語句的準(zhǔn)確性本文為翻譯的MSP430x1xx Family User's Guide家庭用戶指南,且只有寄存器的翻譯比較準(zhǔn)確,其他地方閱讀時請自行判斷語句的準(zhǔn)確性 USART外圍接口,I2C模式通用同步/異步接收/傳輸(USART)外設(shè)接口支持USART0 I2C通信。本章介紹I2C模式
2、。在I2C模式在MSP430x15x和MSP430x16x器件上實現(xiàn)。專題頁面15.1 I2C模塊簡介.15-215.2 I2C模塊操作.15-415.3 I2C模塊寄存器.15-2015.3 I2C模塊寄存器I2C模塊寄存器如表15-4。表15-4.I2C寄存器注冊 簡稱 注冊類型 地址 初始狀態(tài)I2C中斷使能 I2CIE 讀/寫 050h I2C中斷標(biāo)志 I2CIFG 讀/寫 051h I2C數(shù)據(jù)計數(shù) I2CNDAT 讀/寫 052h USART控制 U0CTL 讀/寫 070hI2C傳輸控制 I2CTCTL 讀/寫 071hI2C數(shù)據(jù)控制 I2CDCTL 只讀 072hI2C預(yù)分頻器 I
3、2CPSC 讀/寫 073hI2C SCL高 I2CSCLH 讀/寫 074hI2C SCL低 I2CSCLL 讀/寫 075hI2C數(shù)據(jù) I2CDRW/ I2CDRB 讀/寫 076hI2C自己的地址 I2COA 讀/寫 0118hI2C從地址 I2CSA 讀/寫 011AhI2C中斷向量 I2CIV 只讀 011ChU0CTL,UART0控制寄存器,I2C模式76543210RXDMAENTXDMAENI2CXALISTENSYNCMSTI2CENrw0rw0rw0rw0rw0rw0rw0rw1RXDMAEN 第7位 接收DMA能。該位使DMA控制器用于傳輸數(shù)據(jù)的I2C模塊 后I2C模塊接
4、收數(shù)據(jù)。當(dāng)RXDMAEN=1,RXRDYIE被忽略。0禁止1啟用TXDMAEN 位6 發(fā)送DMA能。該位使DMA控制器可以用于提供數(shù)據(jù)給用于 傳輸?shù)腎2C模塊。當(dāng)TXDMAEN = 1,TXRDYIE, 被忽略。0禁止1啟用I2C 位5 I2C模式使能。該位選擇I2C或SPI操作時, SYNC = 1。0 SPI模式1 I2C模式XA 位4 擴(kuò)展尋址0 7位尋址1 10位尋址LISTEN 位3 收聽。此位選擇回送模式。 當(dāng)MST = 1和I2CTRX = 1(主 發(fā)射器)LISTEN才有效,。0正常模式1 SDA在內(nèi)部反饋到接收器(回環(huán))。SYNC 2位 同步模式使能0 UART模式1 SPI
5、或I2C模式MST 1位 該位選擇主或從模式。當(dāng)仲裁失敗或產(chǎn)生一個STOP信號, MST位自動清零。0從模式1主模式I2CEN 位0 I2C使能。該位允許或禁止I2C模塊。初始狀態(tài)此位被置 位,并為UART或SPI SWRST功能。當(dāng)I2C和SYNC位在PUC 后被置位,此位為I2CEN功能,且自動清零。0 I2C操作被禁止1 I2C操作已啟用I2CTCTL,I2C發(fā)送控制寄存器76543210I2CWORDI2CRMI2CSSELxI2CTRXI2CSTBI2CSTPI2CSTTrw0rw0rw0rw0rw0rw0rw0rw0I2CWORD 第7位 I2C字模式。選擇用于I2C數(shù)據(jù)寄存器字節(jié)
6、或字模式。0字節(jié)模式1字模式I2CRM 第6位 I2C重復(fù)模式0 I2CNDAT限定傳輸?shù)淖止?jié)的數(shù)目。1發(fā)送的字節(jié)數(shù)由軟件控制。 I2CNDAT是未使用的。I2CSSELx 5-4位 I2C時鐘源選擇。當(dāng)MST=1和仲裁丟失,外部SCL 信號自動使用。00無時鐘 - I2C模塊無效01 ACLK10 SMCLK11 SMCLKI2CTRX 第3位 I2C傳輸。當(dāng)MST = 1時,該位選擇發(fā)送或接收功能。當(dāng)MST = 0時,地址字節(jié)的R/W位定義數(shù)據(jù)的方向。從機(jī)模式,I2CTRX必須復(fù)位。0接收模式。SDA引腳上接收數(shù)據(jù)。1發(fā)送模式。SDA引腳上傳輸?shù)臄?shù)據(jù)。I2CSTB 2位 起始字節(jié)。當(dāng)MST
7、=1,I2CSTT=1啟動一個起始字節(jié)時,設(shè)置I2CSTB位。起始字節(jié)開始后,I2CSTB自動清零。0:無動作1:發(fā)送啟動條件和起始字節(jié)(01H),但沒有停止條件。I2CSTP 1位 停止位。此位是用來生成停止條件。在啟動STOP信號后, I2CSTP自動清零。0:無動作1:發(fā)送停止條件I2CSTT 位0 START位。此位是用來產(chǎn)生一個啟動條件。在啟動START信號后之后,I2CSTT自動清零。0:無動作1:發(fā)送啟動條件I2CDCTL, I2C數(shù)據(jù)控制寄存器76543210UnusedUnusedI2CBUSYI2C SCLLOWI2CSBDI2CTXUDFI2CRXOVRI2CBBr0r0
8、r0r0r0r0r0r0Unused 7-6位 沒用過??偸亲x為0。I2CBUSY 位5 I2C忙0 I2C模塊空閑1 I2C模塊不閑著I2C SCLLOW 4位 I2C SCL低。該位指示,從機(jī)保持SCL線為低,MSP430的是主 機(jī)和從機(jī)模式下使用。0 SCL沒有被保持低1 SCL被保持低電平I2CSBD 位3 I2C單字節(jié)數(shù)據(jù)。該位指示接收寄存器I2CDRW持有一 個字或一個字節(jié)。 I2CWORD=1時,I2CSBD才有效0一個完整的字接收1只有在I2CDR的低字節(jié)有效I2CTXUDF 2位 I2C發(fā)送下溢0未發(fā)生溢1發(fā)送下溢發(fā)生I2CRXOVR 位1 I2C接收溢出0未收到發(fā)生溢出1接
9、收器溢出發(fā)生I2CBB 位0 I2C總線忙位。 I2C總線忙位。START條件設(shè)置I2CBB為1。 I2CBB由STOP條件或當(dāng)I2CEN=0復(fù)位。0 I2C總線不忙1 I2C總線忙I2CDRW, I2CDRB,I2C數(shù)據(jù)寄存器15141312111098I2CDRW High Byterw0rw0rw0rw0rw0rw0rw0rw076543210I2CDW LowByte I2CDRBrw0rw0rw0rw0rw0rw0rw0rw0I2CDRW/ I2CDRB 15-8位 I2C數(shù)據(jù)。當(dāng)I2CWORD=1,登記的名字是 I2CDRW。當(dāng)I2CWORD=0,名稱是I2CDRB。
10、當(dāng)I2CWORD=1,任何試圖修改一個字節(jié)指 令寄存器將失敗,寄存器不會被更新。I2CNDAT, I2C傳輸字節(jié)計數(shù)寄存器76543210 I2CNDATxrw0rw0rw0rw0rw0rw0rw0rw0I2C數(shù)據(jù)位 7-0 字節(jié)數(shù)I2C。該寄存器支持主模式下自動數(shù)據(jù)字節(jié)計數(shù)。 在字模式下,I2C數(shù)據(jù)必須是偶數(shù)值。I2CPSC,I2C時鐘預(yù)注冊76543210I2CPSCxrw0rw0rw0rw0rw0rw0rw0rw0I2CPSCx位 7-0 I2C時鐘分頻器。 I2C時鐘輸入I2CIN由輸入時鐘除以I2CPSCx值產(chǎn)生內(nèi)部I2C時鐘頻率。分頻率I2CPSCx+1。 不推薦I2CPSCx值&
11、gt;4。的I2CSCLL和I2CSCLH寄存 器應(yīng)被用于設(shè)置將SCL頻率。1000H分頻12001H分頻2:0FFh 分頻256I2CSCLH,I2C移位時鐘寄存器高I2CSCLHx 位7-0 I2C移位時鐘高。這些位定義當(dāng)I2C控制器處 于主模式時SCL高電平的時間,SCL高電平的時間是(I2CSCLH+2)×(I2CPSC+ 1)。000H SCL高周期=5×(I2CPSC+1)001H SCL高周期=5×(I2CPSC+1)002H SCL高周期=5×(I2CPSC+1)003H SCL高周期=5×(I2CPSC+1)004H SCL高
12、周期=6×(I2CPSC+1)0FFh的SCL高周期=257×(I2CPSC+1)I2CSCLL, I2C移位時鐘寄存器低I2CSCLLx位 7-0 I2C移位時鐘低。這些位定義當(dāng)I2C控制器處于主模式時SCL低電平的時間, SCL低電平的時間是(I2CSCLL+2)×(I2CPSC+ 1)。000H SCL低周期=5×(I2CPSC+1)001H SCL低周期=5×(I2CPSC+1)002H SCL低周期=5×(I2CPSC+1)003H SCL低周期=5×(I2CPSC+1)004H SCL低周期=6×(I2
13、CPSC+1):0FFh的SCL低周期=257×(I2CPSC+1)I2COA,I2C自己的地址寄存器,7位尋址模式1514131211109800000000r0r0r0r0r0r0r0r0765432100I2COAxr0rw0rw0rw0rw0rw0rw0rw0只有當(dāng)I2CEN = 0,修改有效I2COAx 位15-0 I2C自己的地址。該I2COA寄存器包含MSP430 I2C 控制器的本地地址。該I2COA寄存器為右對齊。位6 是MSB。比特15-7總是為0。I2COA,I2C自己的地址寄存器,10位尋址模式15141312111098000000I2COAxr0r0r0r
14、0r0r0rw0rw076543210I2COAxrw0rw0rw0rw0rw0rw0rw0rw0只有當(dāng)I2CEN = 0,修改有效I2COAx 位15-0 I2C自己的地址。該I2COA寄存器包含MSP430 I2C控 制器的本地地址。該I2COA寄存器為右對齊。位9是 MSB。 15-10位始終為0。I2CSA,I2C從地址寄存器,7位尋址模式1514131211109800000000r0r0r0r0r0r0r0r0765432100I2CSAxr0rw0rw0rw0rw0rw0rw0rw0I2CSAx 15-0位 I2C從地址。該I2CSA寄存器包含外部設(shè)備的從地 址由MSP430來解
15、決。它僅在主模式下使用。該 I2CSA寄存器為右對齊。位9是MSB。 15-7位始 終為0。I2CSA,I2C從地址寄存器,10位尋址模式15141312111098000000I2CSAxr0r0r0r0r0r0rw0rw076543210I2CSAxrw0rw0rw0rw0rw0rw0rw0rw0I2CSAx 15-0位 I2C從地址。該I2CSA寄存器包含外部設(shè)備的從地 址由MSP430來解決。它僅在主模式下使用。該 I2CSA寄存器為右對齊。位9是MSB。 15-10位始 終為0。I2CIE,I2C中斷使能寄存器76543210STTIEGCIETXRDYIERXRDYIEARDYIE
16、OAIENACKIEALIErw0rw0rw0rw0rw0rw0rw0rw0STTIE 位7 START檢測中斷使能0中斷禁止1允許中斷GCIE 第6位 廣播呼叫中斷使能0中斷禁止1允許中斷TXRDYIE 第5位 發(fā)送就緒中斷使能。當(dāng)TXDMAEN=1,TXRDYIE 被忽略,TXRDYIFG不會產(chǎn)生中斷。0中斷禁止1允許中斷RXRDYIE 位4 接收就緒中斷使能。當(dāng)RXDMAEN=1,RXRDYIE 被忽略,RXRDYIFG不會產(chǎn)生中斷。0中斷禁止1允許中斷ARDYIE 第3位 訪問就緒中斷使能0中斷禁止1允許中斷OAIE 2位 自己的地址,中斷使能0中斷禁止1允許中斷NACKIE 位1 不
17、應(yīng)答中斷使能0中斷禁止1允許中斷ALIE 位0 仲裁丟失中斷使能0中斷禁止1允許中斷I2C IFG,I2C中斷標(biāo)志寄存器76543210STTIFGGCIFGTXRDYIFGRXRDYIFGARDYIFGOAIFGNACKIFGALIFGrw0rw0rw0rw0rw0rw0rw0rw0STTIFG 第7位 開始檢測中斷標(biāo)志0無中斷1待處理的中斷GCIFG 第6位 廣播呼叫中斷標(biāo)志0無中斷1待處理的中斷TXRDYIFG 第5位 發(fā)送就緒中斷標(biāo)志0無中斷1待處理的中斷RXRDYIFG 位4 接收就緒中斷標(biāo)志0無中斷1待處理的中斷ARDYIFG 第3位 訪問準(zhǔn)備好中斷標(biāo)志0無中斷1待處理的中斷OAI
18、FG 2位 自己的地址,中斷標(biāo)志0無中斷1待處理的中斷NACKIFG 位1 無應(yīng)答中斷標(biāo)志0無中斷1待處理的中斷ALIFG 位0 仲裁丟失中斷標(biāo)志0無中斷1待處理的中斷I2CIV,I2C中斷向量寄存器1514131211109800000000r0r0r0r0r0r0r0r076543210000I2CIVx0r0r0r0r0r0r0r0r0I2CIVx位 15-0 I2C中斷矢量值I2CIV內(nèi)容 中斷源 中斷標(biāo)志 打斷優(yōu)先000H 沒有中斷 - 002H 仲裁丟失 ALIFG 最高004H 沒有確認(rèn) NACKIFG006H 自己的地址 OAIFG008H 寄存器訪問準(zhǔn)備 ARDYIFG00A
19、h 接收數(shù)據(jù)就緒 RXRDYIFG00CH 發(fā)送數(shù)據(jù)準(zhǔn)備 TXRDYIFG00Eh 通用調(diào)用 GCIFG010H START條件接收 STTIFG 最低15.1 I2C模塊簡介的互連芯片的控制(I2C)模塊提供了由兩線I2C串行總線連接的MSP430與I2C兼容設(shè)備之間的接口。連接到I2C總線的外部組件串行發(fā)送和/或從USART通過2線I2C接口接收串行數(shù)據(jù)。I2C模塊具有以下特點:þ符合飛利浦半導(dǎo)體I2C規(guī)范V2.1字節(jié)/字格式轉(zhuǎn)換7位和10位器件尋址模式一般通話啟動/重新啟動/停止多主機(jī)發(fā)送/從機(jī)接收模式多主機(jī)接收/從機(jī)發(fā)送模式聯(lián)合主發(fā)送/接收和接收/發(fā)送模式標(biāo)準(zhǔn)模式下可達(dá)至10
20、0 kbps和快速模式下可達(dá)400 kbps的支持þ內(nèi)置FIFO為緩沖讀寫þ可編程時鐘發(fā)生器þ16位寬的數(shù)據(jù)的訪問以最大化總線吞吐量þ自動數(shù)據(jù)字節(jié)計數(shù)þ專為低功耗þ從接收器開始檢測從LPMx模式自動喚醒þ廣泛的中斷功能þ上實現(xiàn)僅USART0I2C模塊框圖如圖15-1所示。15.2 I2C模塊操作I2C模塊支持任何從屬或主I2C兼容設(shè)備。圖15-2示出了I2C總線的一個例子。每個I2C器件都通過一個唯一的地址識別,可以作為發(fā)射機(jī)或接收機(jī)操作。連接到I2C總線上的設(shè)備可以進(jìn)行數(shù)據(jù)傳輸時被認(rèn)為是船長或奴隸。主機(jī)啟動數(shù)據(jù)傳
21、輸,并首先產(chǎn)生一個時鐘信號SCL。主機(jī)尋址的任何設(shè)備被認(rèn)為是一個奴隸。I2C數(shù)據(jù)使用串行數(shù)據(jù)引腳(SDA)和串行時鐘引腳(SCL)連通。 SDA和SCL是雙向的,并且必須被連接到使用上拉電阻器的正電源電壓。注:SDA和SCL等級MSP430的SDA和SCL引腳不得在上述MSP430拉起VCC的變化。15.2.1 I2C模塊初始化I2C模塊是USART外設(shè)的一部分。在I2C模式下使用時,USART0個別位的定義是從,在SPI或UART模式不同。為U0CTL寄存器的缺省值是UART模式。要選擇I2C操作SYNC和I2C位必須進(jìn)行設(shè)置。模塊初始化后,I2C模塊即可發(fā)送或接收操作。設(shè)置I2CEN釋放操
22、作I2C模塊。配置和重新配置I2C模塊必須完成時I2CEN =0,以避免不可預(yù)知的行為。設(shè)置I2CEN = 0具有以下效果:þI2C通信站þSDA和SCL為高阻抗þI2CTCTL,位3-0被清零,位7-4不變þI2CDCTL和I2CDR寄存器清零個發(fā)射和接收移位寄存器清零þU0CTL,I2CNDAT,I2CPSC,I2CSCLL,I2CSCLH寄存器的內(nèi)容不變þI2COA,I2CSA,I2CIE,I2CIFG和I2CIV寄存器的內(nèi)容不變當(dāng)重新配置I2C從模式,UART或SPI模式下I2C,SYNC和I2CEN位必須先清除,則SWRST
23、必須設(shè)置與UART或SPI初始化程序的USART必須遵守。不按照此過程可以導(dǎo)致不可預(yù)知的操作。注:配置USART模塊用于I2C操作復(fù)位后所需的I2C配置過程:1)用SWRST = 1(BIS.BI2C +同步,與U0CTL選擇I2C模式)2)禁止I2C模塊(BIC.BI2CEN,與U0CTL)3)I2CEN = 0配置I2C模塊4)通過軟件設(shè)定I2CEN(BIS.BI2CEN,與U0CTL)如果不遵循這一過程可能會導(dǎo)致不可預(yù)測的USART行為。注:重新配置USART模塊的UART和SPI操作當(dāng)重新配置從I2C UART或SPI操作USART模塊操作時,所要求的工藝過程是:1)清除I2C,SYN
24、C和I2CEN(CLR.BU0CTL)2)設(shè)置SWRST(MOV.BSWRST,與U0CTL)3)UART或SPI初始化程序繼續(xù)。如果不遵循這一過程可能會導(dǎo)致不可預(yù)測的USART行為。15.2.2 I2C串行數(shù)據(jù)一個時鐘脈沖由主裝置產(chǎn)生的每一個數(shù)據(jù)位傳送。 I2C模塊用字節(jié)數(shù)據(jù)進(jìn)行操作。數(shù)據(jù)傳輸時最顯著位,如圖15-3。啟動條件后的第一個字節(jié)由7位從機(jī)地址和R / W位。當(dāng)R / W = 0,主到從傳輸數(shù)據(jù)。當(dāng)R / W = 1,主從機(jī)接收數(shù)據(jù)。 ACK位從接收第9個SCL時鐘每個字節(jié)后發(fā)送。圖15-3。 I2C模塊數(shù)據(jù)傳輸START和STOP條件由主機(jī)產(chǎn)生,并在圖15-3所示。 START條
25、件是SDA線上高到低的過渡而SCL為高。 STOP條件是SDA線上低到高的轉(zhuǎn)變,而SCL為高。繁忙位,I2CBB,是START之后設(shè)置和停止后清零。SDA上的數(shù)據(jù)必須在SCL的高電平期間保持穩(wěn)定,如圖15-4所示。 SCL為低電平時SDA的高和低狀態(tài)才能改變,否則啟動或停止將生成的條件。圖15-4。在I2C總線位傳輸15.2.3 I2C尋址模式I2C模塊支持7位和10位尋址模式。7位尋址在7位尋址格式,如圖15-5所示,第一個字節(jié)為7位從地址和R / W位。 ACK位從接收機(jī)每個后發(fā)送字節(jié)。圖15-5。 I2C模塊7位尋址格式1 7 1 1 8 1 8 1 1S 從機(jī)地址 R/W ACK 數(shù)據(jù)
26、 ACK 數(shù)據(jù) ACK P10位尋址在10位尋址格式,如圖15-6所示,第一個字節(jié)由11110b加10位從機(jī)地址的兩個MSB和R / W位。 ACK位是從每個字節(jié)后接收發(fā)送。下一個字節(jié)是10位從地址的其余8位,其次是ACK位,8位數(shù)據(jù)。圖15-6。 I2C模塊10位尋址格式1 7 1 1 8 1 8 1 1S 從機(jī)地址第一個字節(jié) R/W ACK 從機(jī)地址第二個字節(jié) ACK 數(shù)據(jù) ACK P 1 1 1 1 0 X X重復(fù)啟動條件SDA上的數(shù)據(jù)流的方向可以由主變了,不先停止傳輸,通過發(fā)出一個重復(fù)起始條件。這就是所謂的重新啟動。一個RESTART發(fā)出后,從機(jī)地址再次由R / W位指定的新數(shù)據(jù)方向發(fā)
27、送出去。重新啟動狀態(tài)示于圖15-7。圖15-7。與重復(fù)啟動條件I2C模塊地址格式1 7 1 1 8 1 1 7 1 1 8 1 1S 從機(jī)地址 R/W ACK 數(shù)據(jù) ACK S 從機(jī)地址 R/W ACK 數(shù)據(jù) ACK P 1 所有數(shù) 1 任意數(shù)量15.2.3 15.2.4 I2C模塊操作模式I2C模塊在主發(fā)送器,主接收器,從發(fā)送器或從機(jī)接收模式。主模式在主控模式下,發(fā)射和接收操作與控制,如表15-1中描述的I2CRM,I2CSTT和I2CSTP位。主發(fā)送器和主接收器模式如圖15-8和圖15-9。 SCL是當(dāng)一個字節(jié)的發(fā)送或接收后需要CPU的干預(yù)保持為低電平。表15-1.Master操作I2CR
28、M I2CSTP I2CSTT 條件或總線活動 X 0 0I2C 模塊在主模式,但處于閑置狀態(tài)。沒 有啟動或生成停止條件。 0 0 1 設(shè)置I2CSTT發(fā)起的活動。 I2CNDAT用 于確定傳輸?shù)拈L度。 STOP條件是不 I2CNDAT后自動生成字節(jié)數(shù)已被轉(zhuǎn)移。 軟件必須設(shè)置I2CSTP產(chǎn)生在最后一個 停止條件的傳輸。這是用于重起條件。 0 1 1 I2CNDAT用于確定傳輸?shù)拈L度。設(shè)置 I2CSTT發(fā)起的活動。 STOP條件是后 I2CNDAT數(shù)量自動生成字節(jié)已被轉(zhuǎn)移。 1 0 1 I2CNDAT不用于確定的長度傳輸。軟件 必須控制的長度傳輸。設(shè)置I2CSTT位 發(fā)起的活動。軟件必須設(shè)置I2
29、CSTP位 發(fā)起STOP條件和停止活動。這種模式 是有用的,如果> 255字節(jié)要傳送。這 種模式可能并不需要重新啟動時使用。 I2CRM必須重置產(chǎn)生重啟條件。 0 1 0 設(shè)置I2CSTP位上產(chǎn)生一個停止條件之 后的字節(jié)數(shù)I2CNDAT總線已送出,或者, 如果立即字節(jié)I2CNDAT數(shù)有已經(jīng)被發(fā) 送。 1 1 0 設(shè)置I2CSTP位上產(chǎn)生一個停止條件總 線之后當(dāng)前的傳輸完成后,或者如果沒 有立即傳輸是目前活躍,一個停止尚未 生成。設(shè)置一個停止后I2CSTP已經(jīng)生 成會不會導(dǎo)致另一個STOP條件。 1 1 1 保留,沒有總線活動。15圖15-8。主機(jī)發(fā)送模式 *當(dāng)I2RM=1,I2CSTP必
30、須是最后一個I2CDR值之前設(shè)置寫入。否則,將不會發(fā)生正確停止發(fā)電。圖15-9。主接收器模式仲裁如果兩個或多個主發(fā)射器同時在總線上開始傳輸,仲裁程序被調(diào)用。圖15-10說明了兩個設(shè)備之間的仲裁程序。仲裁過程使用的發(fā)射機(jī)競爭SDA上顯示的數(shù)據(jù)。產(chǎn)生邏輯高電平的第一個主發(fā)射器由相對主產(chǎn)生一個邏輯低駁回。仲裁程序優(yōu)先于發(fā)送具有最低二進(jìn)制值的串行數(shù)據(jù)流的設(shè)備。失去仲裁的主發(fā)送切換到從機(jī)接收模式,并且設(shè)置仲裁丟失標(biāo)志ALIFG。如果兩個或多個設(shè)備發(fā)送相同的第一字節(jié),仲裁繼續(xù)對后續(xù)字節(jié)。圖15-10。仲裁程序之間有兩個主變送器如果在SDA上傳輸重復(fù)起始條件或停止條件的仲裁程序正在進(jìn)行中,參與仲裁的主發(fā)射器
31、必須在格式幀中的相同位置發(fā)送重復(fù)起始條件或停止條件。仲裁是不允許的:þ重復(fù)啟動條件和數(shù)據(jù)位þ一個STOP狀態(tài)與一個數(shù)據(jù)位þ重復(fù)START和STOP條件自動數(shù)據(jù)字節(jié)計數(shù)自動數(shù)據(jù)字節(jié)計數(shù)在主機(jī)模式與I2CNDAT寄存器支持。當(dāng)I2CRM= 0,要被接收或發(fā)送的寫入I2CNDAT字節(jié)數(shù)。 STOP條件后自動生成字節(jié)數(shù)I2CNDAT已轉(zhuǎn)移時I2CSTP=1。注:I2CNDAT注冊設(shè)置I2CSTT后的字節(jié)數(shù)I2CNDAT已發(fā)送之前,請勿更改I2CNDAT寄存器。否則,可能會出現(xiàn)無法預(yù)料的后果。如果I2CNDAT內(nèi)容必須為RESTART更新,等待ARDYIFG成為修改I2CN
32、DAT的內(nèi)容之前設(shè)置。從模式在從模式,發(fā)送和接收操作由I2C模塊自動控制。從機(jī)發(fā)送和從接收器模式如圖15-11和圖15-12。在從機(jī)接收模式,在SDA接收串行數(shù)據(jù)位與由主設(shè)備產(chǎn)生的時鐘脈沖移入。從設(shè)備不產(chǎn)生時鐘,但如果一個字節(jié)已經(jīng)收到后需要CPU的干預(yù),它可以保持SCL為低電平。在從機(jī)接收模式,收到的每個字節(jié)將被確認(rèn)。有沒有辦法為奴隸產(chǎn)生接收數(shù)據(jù)的NACK條件。當(dāng)主機(jī)發(fā)送從機(jī)地址字節(jié)是一樣的它自己的地址和一組R / W位已發(fā)送指示將數(shù)據(jù)發(fā)送到主機(jī)的請求進(jìn)入從機(jī)發(fā)送模式。從機(jī)發(fā)送與由主設(shè)備產(chǎn)生的時鐘脈沖移位串行數(shù)據(jù)出來SDA。從設(shè)備不產(chǎn)生時鐘,但在一個字節(jié)后需要CPU的干預(yù),它會保持SCL為低電
33、平已經(jīng)被發(fā)送。注:I2CTRX位在從模式該I2CTRX位必須正確從屬模式操作被清除。圖15-11.Slave變送器圖15-12。從接收器15.2.5在I2C數(shù)據(jù)寄存器I2CDR該I2CDR寄存器可以由I2CWORD位選擇8位或16位寄存器來訪問。如表15-2中描述的I2CDR寄存器的功能。當(dāng)I2CWORD = 1,任何試圖修改一個字節(jié)指令寄存器將失敗,寄存器不會被修改。表15-2.I2CDR寄存器功能I2CWORD I2CTRX I2CDR功能 0 1 字節(jié)模式發(fā)送:僅低字節(jié)。字節(jié)為雙緩沖。 如果一個新的字節(jié)之前事先書面字節(jié)已經(jīng) 發(fā)送,則新的字節(jié)是在保持被鎖存到I2CDR 低前臨時緩沖區(qū)字節(jié)。
34、當(dāng)I2CDR準(zhǔn)備訪問 TXRDYIFG設(shè)置。I2CSTT設(shè)置I2CDR后應(yīng)寫。 0 0 字節(jié)模式接收:僅低字節(jié)。字節(jié)為雙緩沖。 如果一個新的字節(jié)前,之前接收字節(jié)已被讀 出,新的字節(jié)在臨時緩沖器中保持之前被鎖 存到I2CDR低字節(jié)。 RXRDYIFG是當(dāng)I2CDR 是準(zhǔn)備好被讀取設(shè)置。 1 0 字模式發(fā)射:字的低字節(jié)首先發(fā)送,然后是 高字節(jié)。寄存器為雙緩沖。如果新的字是寫 上一個字以前一直傳播,新的字是在臨時緩 沖區(qū)之前舉行被閂鎖到I2CDR寄存器。 TXRDYIFG設(shè)置當(dāng)I2CDR準(zhǔn)備進(jìn)行訪問。 I2CDR應(yīng)I2CSTT設(shè)置之后寫的。 1 0 字模式得到:字的低字節(jié)是第一次收到,然 后高字節(jié)。
35、寄存器為雙緩沖。如果一個收到 新詞前面的詞已經(jīng)前讀,新詞在臨時緩沖區(qū) 是之前舉行鎖存到I2CDR寄存器。 RXRDYIFG時設(shè)置I2CDR已準(zhǔn)備好進(jìn)行訪問。發(fā)送下溢在主控模式下,當(dāng)發(fā)送移位寄存器并且發(fā)送緩沖區(qū)為空時發(fā)生下溢。在從模式下,當(dāng)發(fā)送移位寄存器和發(fā)送緩沖器是空的,在外部I2C主仍請求數(shù)據(jù)時發(fā)生下溢。當(dāng)發(fā)送下溢發(fā)生時,I2CTXUDF位被設(shè)置。寫數(shù)據(jù)到I2CDR寄存器或重置I2CEN位復(fù)位I2CTXUDF。I2CTXUDF在僅發(fā)送模式使用。接收溢出當(dāng)接收接收移位寄存器滿和接收緩沖區(qū)已滿發(fā)生溢出。該I2CRXOVR位被設(shè)置時收到溢出發(fā)生。因為SCL在這種狀態(tài)下,停止進(jìn)一步的總線活動保持低不
36、丟失數(shù)據(jù)。讀取I2CDR寄存器或重置I2CEN重置I2CRXOVR。該I2CRXOVR位只用在接收模式。15.2.6 I2C時鐘發(fā)生器和同步I2C模塊是由I2CSSELx位選擇的時鐘源工作。預(yù)分頻器,I2CPSC和I2CSCLH和I2CSCLL寄存器確定主SCL時鐘信號的頻率和占空比模式在圖15-13所示。注:I2CCLK最大頻率I2CIN必須至少10倍的SCL頻率乘以兩個主從模式的I2CPSC分率。例如,對于02H的I2CPSC值,I2CIN必須>3千赫×3×10,或>90千赫的3千赫SCL注:I2CPSC值當(dāng)I2CPSC>4,可能導(dǎo)致無法預(yù)料的后果。該
37、I2CSCLL和I2CSCLH寄存器應(yīng)被用于設(shè)置將SCL頻率。圖15-13。 I2C模塊SCL代在仲裁過程從不同主人的時鐘必須同步。首先在SCL低周期的設(shè)備否決其他設(shè)備迫使他們開始自己的小周期。 SCL然后由該設(shè)備具有最長低周期保持低電平。其它設(shè)備必須等待SCL開始他們的高周期之前被釋放。圖15-14所示的時鐘同步。這使得從緩慢到快速掌握放緩。圖15-14。兩個I2C時鐘發(fā)生器同步仲裁事項15.2.7使用低功耗模式I2C模塊I2C模塊可與MSP430低功耗模式下使用。當(dāng)I2C模塊內(nèi)部時鐘源存在,模塊通常不管MSP430操作模式運行。當(dāng)I2C模塊內(nèi)部時鐘源不存在,提供了自動時鐘激活。當(dāng)I2C模塊
38、處于空閑狀態(tài)時,I2CBUSY = 0,I2C時鐘源I2CIN從I2C模塊狀態(tài)機(jī)斷開,省電。當(dāng)I2C時鐘源是無效的,需要的時候I2C模塊會自動激活所選的時鐘源,不管時鐘源控制位的設(shè)置。直到I2C模塊返回到空閑狀態(tài)的時鐘源仍然有效。 I2C模塊返回空閑狀態(tài)后,時鐘源的控制回復(fù)到其控制位的設(shè)置。發(fā)生自動I2C時鐘激活時:TH均主控模式下,當(dāng)I2CSTT = 1,直到傳輸完成和I2C模塊返回到空閑狀態(tài)保持有效的時鐘發(fā)生激活。TH均從模式,當(dāng)檢測到啟動條件時,會出現(xiàn)時鐘激活,直到傳輸完成和I2C模塊返回到空閑狀態(tài)保持有效。檢測到啟動條件之后,STTIFG標(biāo)志設(shè)置,模塊保持SCL線為低直到時鐘源變得活躍。一旦源處于活動狀態(tài),I2C模塊釋放SCL線到主。當(dāng)I2C模塊激活非活動的時鐘源,時鐘源對于整個設(shè)備被激活,任何外圍配置為使用的時鐘源可能會受到影響。例如,使用SMCLK定時器將增加而I2C模塊力SMCLK活性。15.2.8 I2C中斷I2C模塊具有表所列八個中斷標(biāo)志一個中斷
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 如何培養(yǎng)藏區(qū)中職校幼教專業(yè)學(xué)生的彈唱能力
- 2024年山西省特崗教師招聘考試真題
- 生物炭應(yīng)用研究-洞察及研究
- 記賬實操-照明行業(yè)的會計分錄實例
- 微生物控制方法-洞察及研究
- 遼寧省撫順市順城區(qū)2025屆七年級英語第二學(xué)期期中檢測試題含答案
- 學(xué)校教育中的性別角色干預(yù)-洞察及研究
- 13.1 第2課時 命題與證明 教案
- 江蘇省泰興市濟(jì)川中學(xué)2025屆英語七下期中質(zhì)量檢測試題含答案
- 海外倉運營效率-洞察及研究
- 2023年鍍層和化學(xué)覆蓋層技術(shù)要求規(guī)范(鋁合金化學(xué)導(dǎo)電氧化)
- 南寧市信息化大樓工程建設(shè)項目可行性研究報告
- 管 制 刀 具課件
- 生物多樣性保護(hù)與建設(shè)項目可行性研究報告
- 健康減肥調(diào)脂降糖
- LaTeX科技排版課件
- 2023年河北交通投資集團(tuán)有限公司招聘筆試題庫及答案解析
- 反向傳播算法課件
- 企業(yè)質(zhì)量安全主體責(zé)任
- 南模自招試卷-2012年自主招生
- 數(shù)據(jù)倉庫開發(fā)規(guī)范
評論
0/150
提交評論