




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、http:/中國 MSP430 單片機專業(yè)MSP430F2 系列 16低功耗單片機模塊原理第 13 章 IIC (erface IC) 集成電路之間接口版本:日期:原文:翻譯:編輯:1.22007.6.TIMSP430 x2xxfamily.pdf中國計量學(xué)院DC微控技術(shù)總版主注:文章是翻譯 TI MSP430 x2xxfamily.pdf 文件中的部分內(nèi)容。由于足或錯誤;所以以下內(nèi)容只供參考.一切以原文為準。翻譯水平有限,有整理過程中難免有所不密切留意微控技術(shù)。Page 1 of 24通用串行通口的 I2C 模式第13章通用串行通口(USCI)支持在一個硬件模塊中的多種串行通信模式,本章I2
2、C 模式的操作。13.4USCI 概述USCI 介紹:I2C 模式 USCI 操作:I2C 模式 USCI 寄存器:I2C 模式13.1USCI 概述通信串行通口(USCI)模塊支持多種異步通信模式。不同的 USCI 模塊支持不同的模式。每一個 USCI 模塊以不同的字母命名。例如,USCI_A 不同于USCI_B 等等。如果不止一個相同的 USCI 模塊被安裝在一個設(shè)備上,這些模塊以遞增的數(shù)字命名。例如,一個設(shè)備上有兩個 USCI_A 模塊,它們可以命名為 USCI_A0 和USCI_BA1。如果有需要,可以通過查閱設(shè)備明細表確定那些 USCI 模塊可以那些設(shè)備上面。
3、USCI_Ax 模塊支持:UART 模式脈沖調(diào)制的 IRDA 通信自動波特率檢測的 LIN 通信SPI 模式USCI_Bx 模塊支持:I2C 模式SPI 模式13.2USCI 介紹:I2C 模式在 I2C 模式中,USCI 模塊提供一個能為 MSP430 和 I2C 兼容設(shè)備的互連接口。掛接在 I2C 總線上面的擴展器件通過兩線的 I2C 接口實現(xiàn)與 USCI 模塊的串行數(shù)據(jù)接收與發(fā)送。I2C 模塊的特性:遵循菲利浦半導(dǎo)體公司的 I2C 規(guī)范 v2.17 位和 10 位的設(shè)備尋址方式廣播模式開始/重新開始/停止多主設(shè)備收發(fā)模式從設(shè)備收發(fā)模式支持高達 100kbps 的標準方式和高達 400kb
4、ps 的高速方式在主設(shè)備模式中,UCxCLK 頻率可編程低功耗設(shè)計從設(shè)備根據(jù)檢測到開始信號將 MSP430 從 LPMx 模式喚醒在LPM4 模式可以進行從機操作圖 131 描述了USCI 在 I2C 模式中的配置。Page 2 of 2413.3USCI 操作:I2C 模式I2C 模式支持所有的主方式或從方式的 I2C 兼容設(shè)備。圖 132 描述了一個 I2C 總線的例子。每一個 I2C 設(shè)備都有接在 I2C唯一的地址可被識別,并且可以將該設(shè)備任意作為發(fā)送端或者接收端對其操作。進行數(shù)據(jù)傳輸?shù)臅r候,總線上面的設(shè)備可以視為主設(shè)備或者是從設(shè)備。主設(shè)備開始一個數(shù)據(jù)的傳輸并且產(chǎn)生時鐘信號 SCL。任何
5、被主設(shè)備尋址到的設(shè)備被認為是一個從設(shè)備。I2C 數(shù)據(jù)通過串行數(shù)據(jù)線(SDA)和串行時鐘線(SCL)進行傳輸。SDA 和 SCL 都是雙向的,它們必須通過上拉電阻連接到供電電壓的正端。Page 3 of 24注意:SDA 和SCL 標準MSP430 的SDA 和 SCL 管腳不允許拉高超過 MSP430 的Vcc 電壓。13.3.1USCI 初始化和復(fù)位通過 PUC 信號或者使 UCSWRST 位置 1 都可以復(fù)位 USCI。在一個 PUC 信號后,UCSWRST 位自動置 1,并使 USCI 復(fù)位。為了選擇 I2C 操作,UCMODEx 必須設(shè)置為 11。在模塊初始化之后,便可以進行發(fā)送和接收
6、的操作了。UCSWRST0 可以USCI,使其進入操作模式。的行為,當對 UCSWRST 被置 1 時應(yīng)該對 USCI 進行設(shè)置或者重新設(shè)置。在 I2C 模式中對為了避免不可UCSWRST置 1 會產(chǎn)生下面的影響:I2C 通信停止。SDA 和 SCL 處于高阻態(tài)。UCBxI2CS的 060。UCBxTXIE 和UCBxRXIE 清 0。 UCBxTXIFG 和UCBxRXIFG 清 0。其他位和寄存器保持不變。注釋:USCI 模塊初始化和重設(shè)置。USCI 初始化/重設(shè)置的步驟如下:UCSWRST 位置 1(BIS.B UCSWRST, &UCxCTL1)。在 UCSWRST1 時初始化所有的
7、USCI 寄存器。配置端口。4) 通過使UCSWRST0(BIC.B UCSWRST, &UCxCTL1)。5) 通過UCxRXIE 或UCxTXIE 或者兩者佳有,使能中斷。13.3.2I2C 串行數(shù)據(jù)主設(shè)備在傳輸每一個數(shù)據(jù)位時都會產(chǎn)生一個時鐘脈沖。I2C 模式操作是以字節(jié)為位如圖 133 所示。的。數(shù)據(jù)傳輸中最重要的起始在起始條件后面的第一個字節(jié)包含 7 位的從設(shè)備地址和一個 R/W 位。當 R/W0 時,主設(shè)備向從設(shè)備發(fā)送數(shù)據(jù)。當 R/W1 時,主設(shè)備從設(shè)備的數(shù)據(jù)。在每個字節(jié)的第 9 個SCL 時鐘,接收端發(fā)送一個 ACK 應(yīng)答信號。Page 4 of 24起始條件和停止條件都是由主設(shè)備
8、產(chǎn)生的,其時序如圖 133 所示。起始條件是在 SCL 信號為的時候,SDA產(chǎn)生一個由高變低的電平變化。停止條件是在 SCL 為的時候,SDA 產(chǎn)生一個由低變高的電平變化。USBBUSY位表示總線是否處于忙的狀態(tài),它在起始條件之后被置高,在停止條件之后被清 0。如圖 134 所示,數(shù)據(jù)在 SCL否則起始條件或者停止條件會被產(chǎn)生。期間必須保持穩(wěn)定。SDA 的高低狀態(tài)變化只能在 SCL 為低電平的時候改變。13.3.3I2C 的尋址方式I2C 模式支持 7 位和 10 位的尋址方式。7 位尋址方式7 位尋址方式的格式如圖 135 所示。第一個字節(jié)由 7 位從地址和 R/W 位組成。每個字節(jié)傳輸完畢
9、接收設(shè)備都會發(fā)送一個響應(yīng)位(ACK)。10 位尋址方式10 位尋址方式的格式如圖 136 所示。第一個字節(jié)有 11110b 加上 10 位從地址的高 2 位和R/W 位組成。每個字節(jié)傳輸完畢接收設(shè)備都會發(fā)送一個響應(yīng)位(ACK)。第二個字節(jié)是 10 位從地址剩下的 8 位數(shù)據(jù),在這之后是 ACK 應(yīng)答信號和 8 位數(shù)據(jù)。再次起始條件Page 5 of 24主設(shè)備可以在不停止傳輸?shù)那闆r下,通過再次發(fā)送起始信號改變 SDA 上傳輸數(shù)據(jù)流方向。這可以稱為再次開始。在再次起始產(chǎn)生之后,從設(shè)備的地址和標識數(shù)據(jù)流方向的 R/W 位需要重新發(fā)送。再次起始條件的格式如圖 137 所示。13.3.4I2C 模式中
10、的操作方式USIC 模塊中的 I2C 模式可以工作在主發(fā)送模式、主接收模式、從發(fā)送模式或者從接收模式。這里從下面幾個部分來 該模式??梢酝ㄟ^時序來闡述該模式。圖 138 解釋了時序描述中使用的一些圖例。主設(shè)備發(fā)送的數(shù)據(jù)用灰色的矩形塊表示,而從設(shè)備發(fā)送的數(shù)據(jù)用白色的矩形塊表示。USCI 模塊發(fā)送的數(shù)據(jù),主模式或這從模式也是用相應(yīng)的圖例表示,只不是其使用的矩形塊比其他設(shè)備所使用的大一點。USCI 模塊的行為用帶有箭頭的灰色矩形塊表示,其箭頭所指為數(shù)據(jù)流中行為發(fā)生的地方。必須通過行為用白色矩形塊表示,其箭頭指向數(shù)據(jù)流中行為必定發(fā)生的地方。來處理的從模式選擇在 I2C 模式并設(shè)置UCMODEx=11,
11、UCSYNC=1,同時將 UCMST0,可以將USCI 模塊配置為 I2C 從模式。0 配置為接收模式,使其可以接收 I2C 的地址。在這之后,根據(jù)剛開始的時候,USCI 模塊必須通過將 UCTR接收到從設(shè)備地址和 R/W 位可以自動進行發(fā)送和接收的操作。USCI 的從設(shè)備地址是通過對UCBxI2COA 寄存器編程得到的。當UCA10=0 時,選擇的是7 位尋址方式,當UCA10=1時,選擇的是 10 位尋址方式。如果需要響應(yīng)廣播,可以將 UCGCEN 位置 1。當在總線上監(jiān)測到一個起始條件之后,USCI 模塊將接收被傳輸?shù)牡刂?,并將該地址和地地址進行比較。如果該地址和 USCI 的從地址相匹
12、配,則 UCSTTIFG 標志位置 1。Page 6 of 24在 UCBxI2COA 中的本I2C 從發(fā)送模式當從設(shè)備發(fā)現(xiàn)主設(shè)備發(fā)送的從地址與本地地址匹配,并且 R/W 位為 1 的時候,該設(shè)備進入從發(fā)送模式。從發(fā)送端根據(jù)主設(shè)備產(chǎn)生的時鐘脈沖向 SDA 總線發(fā)送串行數(shù)據(jù)位。雖然從設(shè)備不產(chǎn)生時鐘信號,但是當一個字節(jié)發(fā)送完畢需要 CPU 干預(yù)時需要將 SCL 信號拉低。如果主設(shè)備向從設(shè)備請求數(shù)據(jù),則從設(shè)備的 USCI 模塊會自動的設(shè)置為發(fā)送端,同時 UCTR 位和 UCBxTXIFG 位置 1。SCL 線在第一個數(shù)據(jù)寫進發(fā)送寄存器 UCBxTXBUF 開發(fā)發(fā)送之前保持低電平。當?shù)刂繁豁憫?yīng)之后,U
13、CSTTIFG標志除,然后開始傳輸數(shù)據(jù)。一旦數(shù)據(jù)轉(zhuǎn)移到移位寄存器之后,UCBxTXIFG 位將重新置 1。當一個數(shù)據(jù)被主設(shè)備接收響應(yīng)之后,寫進 UCBxTXBUF 寄存器的下一個數(shù)據(jù)開始傳輸;或者這時候發(fā)送寄存器還處于空的狀態(tài),這種情況下,SCL 線會保持低電平將應(yīng)答周期延遲直到新的數(shù)據(jù)被寫進 UCBxTXBUF 寄存器。如果主設(shè)備發(fā)送一個 NACK 應(yīng)答信號后面是停止條件,則 UCSTPIFG 標志位置 1。如果 NACK 應(yīng)答信號后面是重新起始條件,則 USCI 的 I2C 狀態(tài)機重新回到地址接收狀態(tài)。從發(fā)送模式的控制如圖 139 所示。I2C 從接收模式Page 7 of 24當檢測到這
14、設(shè)備發(fā)送的從地址和本地地址匹配,并且 R/W 位為 0 時,設(shè)備進入從接收模式。在從接收模式中,主設(shè)備每產(chǎn)生一個時鐘脈沖,SDA 總線上就能接收到串行數(shù)據(jù)位。從設(shè)備不產(chǎn)生時鐘脈沖,但是當接收到一個字節(jié)后需要 CPU 干預(yù)的時候可以將 SCL 信號拉低。如果已經(jīng)接收的數(shù)據(jù)在接收結(jié)束時沒有被從 UCBxRXBUF 讀走,總線會通過保持 SCL 信號為低電平將總線延時。一旦UCBxRXBUF 接收到的新數(shù)據(jù)被的時候,一個應(yīng)答信號會發(fā)送給主設(shè)備,這時就可以開始接收下一個數(shù)據(jù)了。在下一個應(yīng)答周期中,設(shè)置 UCTXNACK 為會產(chǎn)生一個應(yīng)答信號發(fā)送給主設(shè)備。即使 UCBxRXBUF 還沒有準備接收最好的數(shù)
15、據(jù) NACK 信號也會發(fā)送。如果 SCL 信號保持低電平時 UCTXNACK 位被置位那么總線將會NACK 信號將馬上被發(fā)送,同時 UCBxRXBUF 將會裝載最后接收到的數(shù)據(jù)。由于先前的數(shù)據(jù)還沒有被。,一個,可能會使這些數(shù)據(jù)丟失。為了避免數(shù)據(jù)的丟失,在 UCTXNACK 被置位之前,UCBxRXBUF 需要被當主設(shè)備產(chǎn)生一個停止條件的時候,UCSTPIFG 標志被置位。如果主設(shè)備發(fā)送一個重復(fù)開始條件,USCI 的 I2C 狀態(tài)機返回到它的地址接收狀態(tài)。 I2C 從接收的操作如圖 1310 所示。Page 8 of 24I2C 從模式中的 10 位尋址方式當 UCA10=1 時,10 位尋址方
16、式被選擇,其過程如圖 1311 所示。在 10 位尋址方式中,在所有的地址接收完之后,從設(shè)備進入接收模式。USCI 模塊通過將 UCSTTIFG 標志置位,同時將 UCTR除來指示上面的尋址行為。主設(shè)備發(fā)送一個重新起始條件和地址的第一個字節(jié),在該字節(jié)中 R/W 位為 1,這樣可以將從設(shè)備切換到發(fā)送模式。如果 UCSTTIFG 以前被清除的話,這時會被置位,同時 USCI 模塊也會通過 UCTR=1 切換到發(fā)送模式。I2C 從模式 10 位尋址如圖 1311 所示。主模式I2C 主設(shè)備通過 UCMODEx=11 和 UCSYNC=1 選擇 I2C 模式,同時將 UCMST 置位可將 USCI 模
17、塊設(shè)置為 I2C 主模式。當該主設(shè)備時對主設(shè)備系統(tǒng)中的一部分時,UCMM 必須置位同時其本地地址必須通過 UCBxI2COA 寄存器編程指定。當 UCA10=0 時,選擇的是 7 位尋址方式。當 UCA10=1 時,選擇的是 10 位尋址方式。如果 USCI 模塊需要響應(yīng)廣播則UCGCEN 位需要置 1。I2C 主發(fā)送模式在初始化之后,主發(fā)送端模塊也需要做下面的一些初始化工作:將目標從地址寫進 UCBxI2CSA 寄存器,通過UCSLA10 位選擇從地址的大小,將 UCTR 置位是其工作在發(fā)送模式,將 USTXSTT 置位產(chǎn)生一個起始條件。USCI 模塊首先檢查總線是否可用,然后產(chǎn)生一個起始條
18、件和發(fā)送從地址。當起始條件產(chǎn)生,第一個寫進UCBxTXBUF 的數(shù)據(jù)被發(fā)送后,UCBxTXIFG 位置 1。一旦從設(shè)備響應(yīng)發(fā)送的地址之后,USTCSTT 位將清除。Page 9 of 24在傳輸從地址的過程中,如果總線仲裁沒有失效,則寫進 UCBxTXBUF 的數(shù)據(jù)會被發(fā)送。當要發(fā)送的數(shù)據(jù)從緩沖區(qū)轉(zhuǎn)移到移位寄存器中是 UCBxTXIFG 將再次置位。如果在響應(yīng)周期前沒有數(shù)據(jù)裝載進 UCBxTXBUF 時,SCL 總線將在應(yīng)答周期中保持低電平狀態(tài)直到有數(shù)據(jù)寫進 UCBxTXBUF。在數(shù)據(jù)傳輸或者總線占用時在 UCTXSTP 和 UCTXSTT位不會置 1。接收到從設(shè)備發(fā)來的響應(yīng)信號之后,如果將
19、UCTXSTP 置 1 則會產(chǎn)生一個停止條件。如果在發(fā)送從設(shè)備地址或者 USCI 模塊等待數(shù)據(jù)寫進 UCBxTXBUF 寄存器的過程中對 UCTXSTP 置位,即使沒有數(shù)據(jù)被發(fā)送也會產(chǎn)生一個停止條件。當傳輸單一的數(shù)據(jù)的時候,在數(shù)據(jù)傳輸?shù)臅r候必須將 UCTXSTP 置位,或者在數(shù)據(jù)開始發(fā)送之后不要將新的數(shù)據(jù)寫進進 UCBxTXBUF 寄存器。否則,只有地址信息被傳輸。當要發(fā)送的數(shù)據(jù)從緩沖區(qū)轉(zhuǎn)移到移位寄存器后,UCBxTXIFG位會置位指示數(shù)據(jù)的傳輸已經(jīng)開始,可以將 UCTXSTP 置位了。將 UCTXSTT 置位會產(chǎn)生一個起始條件。在這種情況下,UCTR 可能置位也可能被清除,從而將設(shè)備配置為發(fā)
20、送端或者時接收端。如果有需要,不同的從地址可以寫進 UCBxI2CSA 寄存器。如果從設(shè)備沒有響應(yīng)發(fā)送的數(shù)據(jù),則沒有響應(yīng)中斷標志 UCNACKIFG 位置 1。主設(shè)備必須通過一個停止條件或者一個重新起始條件來作出響應(yīng)。如果已經(jīng)有數(shù)據(jù)寫進 UCBxTXBUF 寄存器,則該數(shù)據(jù)將被拋棄。如果這個數(shù)據(jù)需要在一個重新起始條件之后被發(fā)送,那么該數(shù)據(jù)則需要重新寫進 UCBxTXBUF 寄存器。I2C 主發(fā)送操作如圖 1312 所示。Page 10 of 24gI2C 主接收模式在初始化之后,主接收端模塊也需要做下面的一些初始化工作:將目標從地址寫進 UCBxI2CSA 寄存器,通過UCSLA10 位選擇從
21、地址的大小,將 UCTR 置位是其工作在接收模式,將 USTXSTT 置位產(chǎn)生一個起始條件。USCI 模塊首先檢查總線是否可用,然后產(chǎn)生一個起始條件和發(fā)送從地址。當從設(shè)備響應(yīng)該地址之后,USTCSTT除。從設(shè)備對地址響應(yīng)之后發(fā)送的第一個數(shù)據(jù),該數(shù)據(jù)被接收后被主設(shè)備響應(yīng),同時 UCBxRXIFG 標志置位。在接收從設(shè)備的數(shù)據(jù)過程中,UCTXSTP 和 UCTXSTT 不會置位。在接收數(shù)據(jù)最末位的過程中,如果主設(shè)備沒有UCBxRXBUF,主設(shè)備則一直占用總線,直到 UCBxRXBUF 寄存器被。如果從設(shè)備沒有響應(yīng)發(fā)送的數(shù)據(jù),則沒有響應(yīng)中斷標志 UCNACKIFG 位置 1。主設(shè)備必須通過一個停止條
22、件或者一個重新起始條件來作出響應(yīng)。UCTXSTP 位置 1 會產(chǎn)生一個停止條件。如果 UCTXSTP 置位,在接收完從設(shè)備發(fā)送的數(shù)據(jù)之后,將會產(chǎn)生一個停止條件跟隨在 NACK 信號后面,或者如果 USCI 模塊正在等待 UCBxRXBUF 被,這時停止條件會立即產(chǎn)生。如果主設(shè)備只想接收單一的字節(jié)數(shù)據(jù),在字節(jié)數(shù)據(jù)正在接收的時候必須將 UCTXSTP 置位,這種情況下,UCTXSTP可能需要表決決定什么時候可以清除:BIS.B POLL_STTBIT.BJC BIS.B#UCTXSTT, &UCBOCTL1 #UCTXSTT, &UCBOCTL1 POLL_STT#UCTXSTP, &UCBOCT
23、L1;發(fā)送起始條件;表決 UCTXSTT 位;等待清除;發(fā)送起始條件將 UCTXSTT 置位會產(chǎn)生一個起始條件。在這中情況下,UCTR 可能置位也可能被清除,從而將設(shè)備配置為發(fā)送端或者時接收端。如果有需要,不同的從地址可以寫進 UCBxI2CSA 寄存器。I2C 主接收操作如圖 1313 所示。Page 12 of 24Page 13 of 24I2C 主模式中 10 位尋址方式通過設(shè)置UCSLA10=1 可以選擇 10 位尋址模式,其尋址模式如圖 1314 所示??偩€仲裁當兩個或者多個主發(fā)送設(shè)備在總線上同時開始發(fā)送數(shù)據(jù)時,總線仲裁過程被啟用。圖 1315 舉例說明了兩個設(shè)備之間的總線仲裁過程
24、。仲裁過程中使用的數(shù)據(jù)就是相互競爭的設(shè)備發(fā)送到 SDA 線上的數(shù)據(jù)。第一個主發(fā)送設(shè)備產(chǎn)生的邏輯被第二個主發(fā)送設(shè)備產(chǎn)生的邏輯低電平否決。在總線仲裁過程中,發(fā)送二進制數(shù)值最低的串行數(shù)據(jù)的設(shè)備將獲得總線的優(yōu)先權(quán)。失去仲裁的主發(fā)送設(shè)備轉(zhuǎn)變成從接收模式,并且設(shè)置仲裁失效中斷標志位 UCALIFG。如果兩個或者的設(shè)備發(fā)送的第一個字節(jié)的內(nèi)容相同,那么仲裁就發(fā)生在隨后的傳輸中。如果在仲裁進行過程中,SDA 上有重復(fù)起始條件或者停止條件被發(fā)送,那么包括在仲裁中的主發(fā)送設(shè)備都必須在格式幀中同樣的位置發(fā)送重復(fù)起始條件或者停止條件。仲裁不能發(fā)生在一下場合:Page 14 of 24重復(fù)起始位和數(shù)據(jù)位之間。停止位和數(shù)據(jù)
25、位時間。重復(fù)起始位和停止位之間。I2C 時鐘發(fā)生與同步13.3.5I2C 總線上面的 SCL 時鐘信號由主設(shè)備提供。當 USCI 模塊工作在主模式的時候,BITCLK 由USCI 模塊中的位時鐘發(fā)生器提供,同時通過 UCx 位選擇時鐘源。在從模式中,不需要位時鐘發(fā)生器,同時對 UCx 位也不關(guān)心。UCBxBR1 和 UCBxBR0J 寄存器中 UCBRx 的 16 位數(shù)值是 USCI 時鐘源 BRCLK 的除數(shù)。在單主模式中,能夠使用的最大位時鐘是 fBRCLK/4。在多主模式中,最大的位時鐘為 fBRCLK/8。BIRCLK 的頻率可以通過下面的公式得到:RCLK CBRx當 UCBRx 為
26、偶數(shù)的時候,產(chǎn)生的 SCL 最小和低電平周期為: UCRBRx / 2 ttLOW ,MINHIGH ,MINfBRCLK當 UCBRx 為奇數(shù)的時候,產(chǎn)生的 SCL 最小和低電平周期為: UCBRx / 2 ttLOW ,MINHIGH ,MINfBRCLKUSCI 時鐘源的頻率和設(shè)置 UCBRx 的比例因子必須要選擇,以便和 I2C 規(guī)范指定的最小高低電平周期時間相對應(yīng)。在仲裁過程中,需要對來自不同主設(shè)備的時鐘進行同步處理。在 SCL 上第一個產(chǎn)生低電平的主設(shè)備強制其他設(shè)備也發(fā)送低電平,SCL 會被總線上低電平周期最長的設(shè)備保持為低。其他設(shè)備必須等到 SCL 被以后才能開始發(fā)送高電平。其時
27、鐘的同步過程如圖 1316 所示。同步過程中某個快速設(shè)備的速度可能被其他低速的設(shè)備拉低。13.3.6在低功耗模式中使用 USCI 模塊中的 I2C 模式在使用低功耗模式時,USCI 模塊為 SMCLK 提供了自動時鐘激活。當 USCI 模塊使用 SMCLK 作為時鐘源,并且由于設(shè)備處于低功耗模式中而該時鐘被停止時,如果系統(tǒng)需要,不管時鐘源的控制位是否被設(shè)置,USCI 模塊都會自動激活該時鐘源。該時鐘會一直保持到 USCI 模塊恢復(fù)到理想的條件下。在 USCI 模塊恢復(fù)到理想條件之后,時鐘源的控制回到其控制位設(shè)置的控制狀態(tài)。這種自動時鐘激活并不提供給 ACLK。當 USCI 模塊激活一個停止的時
28、鐘源時,該時鐘源對整個設(shè)備和一切設(shè)置使用該時鐘源的例如,當 USCI 模塊強制激活 SMCLK 時,使用 SMCLK 作為時鐘源的定時器將開始工作。設(shè)備都會活動起來。在 I2C 從模式種,不需要的時鐘源,因為時鐘是由外部的主設(shè)備提供的。這樣,當設(shè)備處于 LPM4 低功耗模式中,所有的時鐘源都停止的情況下,在 I2C 從模式中控制 USCI 模塊。任何接收或者發(fā)送的中斷都能夠?qū)?CPU從任何的低功耗模式中喚醒。Page 15 of 2413.3.7I2C 模式中的USCI 中斷在中斷向量表中有兩個中斷向量是給 USCI 模塊中的 I2C 模式使用的。其中一個中斷向量分配給接收和發(fā)送中斷標志位產(chǎn)生
29、的中斷,而另一個中斷向量則分配給四種狀態(tài)切換產(chǎn)生的中斷使用。每個中斷標志都有他們自己的中斷使能位。當中斷被使能并且 GIE 位置 1 時,如果發(fā)送中斷請求該中斷標志將會產(chǎn)生。DMA 的傳輸由設(shè)備上面的 DMA 控制器通過 UCBxTXIFG 標志位和UCBxRXIFG 標志位進行控制的。I2C 發(fā)送中斷操作UCBxTXIFG 中斷標志位被發(fā)送端置 1 標志UCBxTXBUF 已經(jīng)準備好接收另一個數(shù)據(jù)了。這時候,如果 UCBxTXIE和 GIE 同時被置位的話,將會產(chǎn)生一個中斷請求。當有一個數(shù)據(jù)寫進 UCBxTXBUF 或者接收到一個 NACK 應(yīng)答信號時,UCBxTXIFG 中斷標志位會自動復(fù)
30、位。在 I2C 模式被選擇并且 UCSWRST=1 時,UCBxTXIFG 被置位。一在個 PUC信號之后或者當 UCSWRST=1 時,UCBxTXIE 將會復(fù)位。I2C 接收中斷操作當接收端接收到一個字符并裝載到 UCBxRXBUF 寄存器后,UCBcRXIFG 中斷標志位置 1。這時如果 UCBxRXIE和 CIE 同時 被置位,則產(chǎn)生一個中斷請求。在一個 PUC 信號之后或者時UCSWRST=1 時,UCBcRXIFG 和 UCBxRXIE將自動復(fù)位。當 UCBxRXBUF 寄存器被時,UCBcRXIFG 中斷標志自動復(fù)位。I2C 狀態(tài)切換中斷操作I2C 狀態(tài)切換中斷標志位的描述如表
31、131 所述。中斷向量的分配USCI_Ax 和 USCI_Bx 共享相同的中斷向量。I2C 模塊中狀態(tài)變化中斷標志位USCI_Bx中的 UCALIFG、UCNACKIFG、UCSTTIFG 、UCSTPIFG 和 USCI_Ax 中的 UCAxRXIFG 使用同一個中斷向量。I2C 模塊發(fā)送和接收中斷標志USCI_Bx 中的 UCBxTXIFG、UCBxRXIFG 和USCI_Ax 中的 UCAxTXIFG 共享另外一個中斷向量。中斷向量處理實例處理實例描述了一個從 USCI_A0 中產(chǎn)生的數(shù)據(jù)接收中斷的中斷服務(wù)程序的獲取和處理過程,該下面的這個數(shù)據(jù)的接收可以是在 UART 模式或SPI 模式
32、中,這個實例也包括 I2C 模式中從 USCI_B0 產(chǎn)生的狀態(tài)變化中斷。US0_RX_USCIB0_I2C_S BIT.B #UCA0RXIFG, &IFG2 JNB US0_RX_ISRUSCIB0_I2C_SE_ISRE_ISR;USCI_A0 是否是接收中斷Page 16 of 24中斷標志中斷條件UCALIFG仲裁失效。當兩個或多個設(shè)備同時開始發(fā)送數(shù)據(jù)時總線仲裁失效。當 USCI 模式作為主設(shè)備操作時被系統(tǒng)中的其他主設(shè)備作為從設(shè)備尋址時也會產(chǎn)生仲裁失效。當仲裁失效時該中斷標志位置位。當該標志位置位時,UCMST 位被清除,同時 I2C 控制器變?yōu)閺哪J?。UCNACKIFG沒有響應(yīng)中斷
33、。在需要響應(yīng)的時候,主設(shè)備沒有接收到從設(shè)備的響應(yīng),該標志位置位。當主設(shè)備收到一個起始條件時該位自動清除。UCSTTIFG起始信號檢測中斷標志。在從模式中,I2C 模塊檢測到一個起始信號,同時發(fā)送地址和本地地址匹配,該標志位置位。該標志只用于從模式。當該設(shè)備接收到一個停止條件時該位自動清除。UCSTPIFG停止條件檢測中斷標志。在從模式中,當 I2C 模塊檢測到一個停止條件時該標志位置位。該標志只用于從模式。當該設(shè)備接收到一個起始條件時該位自動清除。;I2C 狀態(tài)變化. RETIUS0_RX_ISR;RETIUCA0RXBUF 寄存器清除 UCA0RXIFG 位。下面的這個處理實例描述了一個從
34、USCI_A0 中產(chǎn)生的數(shù)據(jù)發(fā)送中斷的中斷服務(wù)程序的獲取和處理過程,該數(shù)據(jù)的接收可以是在 UART 模式或 SPI 模式中,這個實例也包括 I2C 模式中從USCI_B0 產(chǎn)生的數(shù)據(jù)發(fā)送中斷。US0_RX_USCIB0_I2C_DATA_ISRBIT.B #UCA0TXIFG, &IFG2;USCI_A0 是否有發(fā)送中斷JNB US0_TX_ISRUSCIB0_I2C_DATA_ISRBIT.B #UCB0RXIFG, &IFG2 JNZ USCIB0_I2C_RXUSCIB0_I2C_RX;UCB0RXBUF 寄存器清除 UCB0RXIFG 位。 RETIUS0_TX_ISR;寫UCA0RX
35、BUF 寄存器清除 UCA0RXIFG 位。 RETI13.4 USCI 寄存器:I2C 模式對于USCI_B0,I2C 模式中可以的 USCI 寄存器如表 132。表 132USCI_B0 中的控制寄存器和狀態(tài)寄存器注意:更改 SFR 位為了避免改變其他模式中的控制位,這里而不要使用MOV.B 或者 CLR.B 指令。使用BIS.B 或者 BIC.B 指令來進行對IEx 和 IFGx 位的置 1 和清 0 操作,對于USCI_B1,I2C 模式中可以的 USCI 寄存器如表 133。表 133USCI_B0 中的控制寄存器和狀態(tài)寄存器Page 17 of 24寄存器簡易格式類型地址初始狀態(tài)U
36、SCI_B1 控制寄存器 0UCB1CTL0讀/寫0D8H用 PUC 置 001H寄存器簡易格式類型地址初始狀態(tài)USCI_B0 控制寄存器 0UCB0CTL0讀/寫068H用 PUC 置 001HUSCI_B0 控制寄存器 1UCB0CTL1讀/寫069H用 PUC 置 001HUSCI_B0 位速率控制寄存器 0UCB0BR0讀/寫06AH用 PUC 復(fù)位USCI_B0 位速率控制寄存器 1UCB0BR1讀/寫06BH用 PUC 復(fù)位USCI_B0I2C 中斷使能寄存器UCB0I2CIE讀/寫06CH用 PUC 復(fù)位USCI_B0 狀態(tài)寄存器UCB0S讀/寫06DH用 PUC 復(fù)位USCI_
37、B0 接收緩存區(qū)UCB0RXBUF讀06EH用 PUC 復(fù)位USCI_B0 發(fā)送緩沖區(qū)UCB0TXBUF讀/寫06FH用 PUC 復(fù)位USCI_B0 本地地址寄存器UCB0I2COA讀/寫0118H用 PUC 復(fù)位USCI_B0 從地址寄存器UCB0I2CSA讀/寫011AH用 PUC 復(fù)位SFR 中斷使能寄存器 2IE2讀/寫001H用 PUC 復(fù)位SFR 中斷狀態(tài)寄存器 2IFG2讀/寫003H用PUC 置 00AHUCBxCTL0,USCI_Bx7控制寄存器 06543210rw-0rw-0rw-0rw-0rw-0rw-0rw-0r-1UCA10位 7本地地址模式選擇017 位本地地址1
38、0 位本地地址UUSLA10位 6從設(shè)備地址模式選擇017 位從設(shè)備地址10 位從設(shè)備地址UCMM位 5多主設(shè)備的環(huán)境選擇01單主設(shè)備環(huán)境。在這個系統(tǒng)中沒有其他主機,其地址匹配單元禁用。多主設(shè)備環(huán)境。Unused位 4未使用。UCMST位 3主設(shè)備模式選擇。在多主設(shè)備環(huán)境中(UCMM=1),當主設(shè)備仲裁為從設(shè)備。后,UCMST 位自動被清 0,同時其模式變01從設(shè)備模式。主設(shè)備模式。UCMODEx位 2 1USCI 模式。當 UCSYNC=1 時,UCMODEx 位用于選擇同步模式。00010203線SPI。線SPI(STE=1 時,主從模式使能)。4 線SPI(STE=0 時,主從模式使能)
39、。 I2C 模式。UCSYNC位 0同步模式使能。0異步模式。Page 18 of 24UCA10UUSLA10UCMMUnusedUCMSTUCMODEx=11UCSYNC=1USCI_B1 控制寄存器 1UCB1CTL1讀/寫0D9H用 PUC 置 001HUSCI_B1 位速率控制寄存器 0UCB1BR0讀/寫0DAH用 PUC 復(fù)位USCI_B1 位速率控制寄存器 1UCB1BR1讀/寫0DBH用 PUC 復(fù)位USCI_B1I2C 中斷使能寄存器UCB1I2CIE讀/寫0DCH用 PUC 復(fù)位USCI_B1 狀態(tài)寄存器UCB1S讀/寫0DDH用 PUC 復(fù)位USCI_B1 接收緩存區(qū)U
40、CB1RXBUF讀0DEH用 PUC 復(fù)位USCI_B1 發(fā)送緩沖區(qū)UCB1TXBUF讀/寫0DFH用 PUC 復(fù)位USCI_B1 本地地址寄存器UCB1I2COA讀/寫017CH用 PUC 復(fù)位USCI_B1 從地址寄存器UCB1I2CSA讀/寫017EH用 PUC 復(fù)位USCI_A1/B1 中斷使能寄存器UC1IE讀/寫006H用 PUC 復(fù)位USCI_A1/B1 中斷狀態(tài)寄存器UC1IFG讀/寫007H用PUC 置 00AH1同步模式。UCBxCTL1,USCI_Bx 控制寄存器 176543210rw-0位 76rw-0rw-0rw-0rw-0rw-0rw-0rw-1UCxUSCI 時
41、鐘源的選擇。這些位選擇 BRCLK 時鐘源。 00UCLKIACLKSMCLKSMCLKUnused位 5未使用。UCTR位 4發(fā)送/接收。01接收。發(fā)送。UCTXNACK 位 3發(fā)送一個 NACK 信號。該位在 NACK 信號發(fā)送后自動清 0。01正常響應(yīng)。產(chǎn)生 NACK 信號。UCTXSTP位 2在主設(shè)備模式中發(fā)送 STOP 條件,在從設(shè)備模式中該位被忽略。在主設(shè)備接收模式中,NACK 信號在 STOP 條件之前,當 STOP 條件產(chǎn)生后,該位自動清 0。01不產(chǎn)生 STOP 條件。產(chǎn)生 STOP 條件。UCTXSTT位 1在主設(shè)備模式中發(fā)送 START 條件,在從設(shè)備中該位被忽略。在主設(shè)
42、備接收模式中,NACK 信號在 START 條件重發(fā)之前。當 START 信號和地址信息被發(fā)送后,該位自動清 0。01不產(chǎn)生 START 條件。產(chǎn)生 START 條件。UCSWRST位 0復(fù)位使能。USCI 復(fù)位使操作01。使能。在復(fù)位狀態(tài)中,USCI 的邏輯被保持。UCBxBR0,USCI_Bx7波特率控制寄存器 06543210rwrwrwrwrwrwrwrwUCBxBR1,USCI_Bx7波特率控制寄存器 16543210rwrwrwrwrwrwrwrwPage 19 of 24UCBRxUCBRxUCxUnusedUCTRUCTXNACKUCTXSTPUCTXSTTUCSWRSTUCB
43、Rx波特率分頻因子。一個 16 位的(UCBR0+ UCBR1)形成分頻因子的數(shù)值。UCBxS,USCI_Bx 狀態(tài)寄存器76543210rw-0r-0rw-0r-0rw-0rw-0rw-0rw-0Unused UCSCLLOW位 7位 6未使用。SCL 低電平。01SCL 沒有被拉為低電平。 SCL 被拉為低電平。UCGC位 5廣播地址接收。接收到一個START 信號后,該位自動清 0。01沒有接收到廣播地址。接收到廣播地址。UCBBUSY位 4總線是否空閑。01總線空閑??偩€忙。UCNACKIFC位 3沒有響應(yīng)中斷標志位。接收到一個START 信號后,該位自動清 0。01沒有中斷請求。有中
44、斷請求。UCSTPIFG位 2停止條件中斷標志位。接收到一個START 條件后該位自動清 0。01無中斷請求。有中斷請求。UCSTTIFG位 1開始條件中斷標志位。接收到一個STOP 條件后該位自動清 0。01無中斷請求。有中斷請求。UCALIFG位 0仲裁失效中斷標志位。01無中斷請求。有中斷請求。UCBxRXBUF,USCI_Bx7接收緩存寄存器6543210rrrrrrrrUCRXBUFx位 70接收緩存存放從接收移位寄存器最后接收的字符,可由用戶。接收緩存可以復(fù)位Page 20 of 24UCRXBUFxUnusedUCSCLLOWUCGCUCBBUSYUCNACKIFCUCSTPIF
45、GUCSTTIFGUCALIFG接收時產(chǎn)生的 UCBxRXIFG。UCBxTXBUF,USCI_Bx 發(fā)送緩存寄存器76543210rwrwrwrwrwrwrwrwUCTXBUFx位 70發(fā)送緩存的內(nèi)容可以由用戶,并將數(shù)據(jù)保持到被傳送到移位寄存器進行數(shù)據(jù)傳輸。對發(fā)送緩存進行寫操作將 UCBxRXIFG 清 0。UCBxI2COA,USCI_Bx15本地地址寄存器8UCGCEN00000I2COAxrw-0r0r0r0r0r0rw-0rw-076543210I2COAxrw-0rw-0rw-0rw-0rw-0rw-0rw-0rw-0UCGCEN位 15廣播響應(yīng)使能。01不響應(yīng)廣播。響應(yīng)廣播。I2C 模式本地地址。I2COAx 包含了 USCI_Bx 中 I2C 控制器的本地地址。該地址應(yīng)該時正確合理的。在 7 位尋I2COAx位 90址方式中,第 6 位為最,9 到 7 位忽略。在 10 位尋址方式中,第 9 位為最。
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 結(jié)對創(chuàng)先協(xié)議書
- 留學(xué)委托協(xié)議書
- 電車保價協(xié)議書
- 男士入贅協(xié)議書
- 簽約養(yǎng)護協(xié)議書
- 簽訂退房協(xié)議書
- 菲俄派遣協(xié)議書
- 意難忘王母撕掉協(xié)議書
- 電腦合伙協(xié)議書
- 環(huán)境影響協(xié)議書
- 智能教育技術(shù)驅(qū)動的個性化學(xué)習路徑優(yōu)化研究
- 基層治理現(xiàn)代化視角下“楓橋經(jīng)驗”的實踐路徑與創(chuàng)新研究
- 通信光纜租用協(xié)議合同書
- 2024-2025部編版小學(xué)道德與法治一年級下冊期末考試卷及答案(三套)
- 醫(yī)療救助資金動態(tài)調(diào)整機制-洞察闡釋
- 籃球培訓(xùn)報名合同協(xié)議
- 自考00061國家稅收歷年真題及答案
- 公共組織績效評估-形考任務(wù)一(占10%)-國開(ZJ)-參考資料
- 冠狀動脈介入診斷治療
- 高效催化劑的開發(fā)與應(yīng)用-全面剖析
- 帝國的興衰:修昔底德戰(zhàn)爭史學(xué)習通超星期末考試答案章節(jié)答案2024年
評論
0/150
提交評論