Other Parts Discussed in Post:MSP430FR2311
MSP430FR2311是一款FRAM數(shù)字控制器,可以實(shí)現(xiàn)超低功耗,并且集成了豐富的外設(shè)模塊,可以滿(mǎn)足工業(yè)和消費(fèi)等多種應(yīng)用。MSP430FR2311中的eUSCI_A0支持UART通訊,本文對(duì)此UART模塊的寄存器配置進(jìn)行了詳細(xì)的分析和計(jì)算,以幫助工程師對(duì)此UART模塊進(jìn)行深入理解和靈活配置。
UART通訊模塊介紹
UART屬于異步通信模式,MSP430FR2311通過(guò)UCA0RXD和UCA0TXD與其它芯片相連,芯片之間并沒(méi)有時(shí)鐘信號(hào)CLK連接。
在工程應(yīng)用中,首先根據(jù)工程需要選擇合適的波特率(Baud Rate),在MSP430FR2311中成為BITCLK,然后選擇UART模塊的時(shí)鐘源BRCLK,根據(jù)選擇的波特率和時(shí)鐘源頻率,進(jìn)行合適的寄存器配置,便可實(shí)現(xiàn)UART通訊。在MSP430FR2311中,UCA0CTLW0中的UCSSELx用來(lái)選擇時(shí)鐘源,波特率通過(guò)UCOS16, UCBRx, UCBRFx和 UCBRSx來(lái)設(shè)定。
低頻波特率配置
如果BRCLK是BITCLK的整數(shù)倍,即BRCLK/BITCLK=N,這時(shí)比較容易理解,在UART傳輸時(shí),每個(gè)數(shù)據(jù)bit時(shí)長(zhǎng)包含了N個(gè)BRCLK。
但往往BRCLK不是BITCLK的整數(shù)倍,這時(shí)要實(shí)現(xiàn)UART通訊就需要進(jìn)行合適的調(diào)制(modulation),以避免累積誤差導(dǎo)致UART通訊失敗。在MSP430FR2311中,UCBRSx用來(lái)實(shí)現(xiàn)合理調(diào)制。
以傳輸一個(gè)8bit數(shù)據(jù)為例,在發(fā)送的bit位中包含start bit,8bit數(shù)據(jù),parity bit和stop bit。
在SLAA049中,用圖標(biāo)明了UCBRSx的modulation模式,如圖二所示,它是以8bit為一個(gè)循環(huán)進(jìn)行調(diào)制。
以時(shí)鐘源頻率BRCLK 32768Hz,波特率BITCLK 2400Hz為例,32768/2400=13.6533,所以UCOS16=0,UCBRx=13,modulation的作用主要是用來(lái)消除累積誤差,所以如下表所示,當(dāng)累積誤差大于等于0.5時(shí),UCBRSx對(duì)應(yīng)的位置1,否則清零。經(jīng)過(guò)計(jì)算,UCBRSx=0xB6.
表1 UCBRSx的生成說(shuō)明
Start Bit | Data Bit0 (LSB) | Data Bit1 | Data Bit2 | Data Bit3 | Data Bit4 | Data Bit5 | Data Bit6 | |
UCBRSx |
m0 1 |
m1 0 |
m2 1 |
m3 1 |
m4 0 |
m5 1 |
m6 1 |
m7 0 |
Fractional |
0.6533*1 =0.6533 |
0.6533*2 =1.3066 |
0.6533*3 =1.9599 |
0.6533*4 =2.6132 |
0.6533*5 =3.2665 |
0.6533*6 =3.9198 |
0.6533*7 =4.5731 |
0.6533*8 =5.2264 |
所以調(diào)制后的Timing如圖3所示,圖中13代表13個(gè)BRCLK時(shí)長(zhǎng),14代表14個(gè)BRCLK時(shí)長(zhǎng)。
再以時(shí)鐘源頻率BRCLK 1048576Hz,波特率BITCLK 115200為例,1048576/115200=9.1022,所以UCOS16=0,UCBRx=9,對(duì)于m5,雖然小數(shù)部分大于0.5,但是由于在m4的位置已經(jīng)增加了1個(gè)BRCLK的時(shí)長(zhǎng),所以需要小數(shù)部分累積到大于1.5后,UCBRSx的位才會(huì)設(shè)置為1。經(jīng)過(guò)計(jì)算,UCBRSx=0x08.
表2 UCBRSx的生成說(shuō)明
Start Bit | Data Bit0 (LSB) | Data Bit1 | Data Bit2 | Data Bit3 | Data Bit4 | Data Bit5 | Data Bit6 | |
UCBRSx |
m0 0 |
m1 0 |
m2 0 |
m3 0 |
m4 1 |
m5 0 |
m6 0 |
m7 0 |
Fractional |
0.1022*1 =0.1022 |
0.1022*2 =0.2044 |
0.1022*3 =0.3066 |
0.1022*4 =0.4088 |
0.1022*5 =0.5110 |
0.1022*6 =0.6132 |
0.1022*7 =0.7154 |
0.1022*8 =0.8176 |
MSP430FR2311 User’s Guide中提供了UCBRSx的調(diào)制數(shù)據(jù),方便快速獲得正確的UCBRSx值。如圖4所示。
高頻波特率配置
MSP430FR2311中包含了一個(gè)過(guò)采樣波特率模式(oversampling baud-rate mode),用來(lái)支持高頻時(shí)鐘源。UCA0MCTLW中UCOS16用來(lái)使能過(guò)采樣波特率模式。當(dāng)UCOS16=1時(shí),過(guò)采樣波特率模式使能,此時(shí)UCBRx中1對(duì)應(yīng)16個(gè)BRCLK時(shí)長(zhǎng),UCBRFx中1對(duì)應(yīng)1個(gè)BRCLK時(shí)長(zhǎng)。
以時(shí)鐘源頻率BRCLK 4000000Hz,波特率BITCLK 57600為例,4000000/57600=69.4444,再將69除以16,商為4,余數(shù)為5,所以UCOS16=1,UCBRx=4,UCBRFx=5. UCBRSx的設(shè)置如前面的討論,不再贅述,UCBRSx=0x55.
在過(guò)采樣波特率模式中,數(shù)值判定(majority votes)時(shí),總是以1/16的數(shù)據(jù)bit時(shí)長(zhǎng)(1/BITCLK)來(lái)分段。MSP430FR2311 User Guide中提供了UCBRFx的調(diào)制表格,如表3所示。
審核編輯:何安
-
嵌入式處理
+關(guān)注
關(guān)注
0文章
341瀏覽量
10012
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論