Other Parts Discussed in Post:MSP430FR2311
MSP430FR2311是一款FRAM數字控制器,可以實現超低功耗,并且集成了豐富的外設模塊,可以滿足工業(yè)和消費等多種應用。MSP430FR2311中的eUSCI_A0支持UART通訊,本文對此UART模塊的寄存器配置進行了詳細的分析和計算,以幫助工程師對此UART模塊進行深入理解和靈活配置。
UART通訊模塊介紹
UART屬于異步通信模式,MSP430FR2311通過UCA0RXD和UCA0TXD與其它芯片相連,芯片之間并沒有時鐘信號CLK連接。
在工程應用中,首先根據工程需要選擇合適的波特率(Baud Rate),在MSP430FR2311中成為BITCLK,然后選擇UART模塊的時鐘源BRCLK,根據選擇的波特率和時鐘源頻率,進行合適的寄存器配置,便可實現UART通訊。在MSP430FR2311中,UCA0CTLW0中的UCSSELx用來選擇時鐘源,波特率通過UCOS16, UCBRx, UCBRFx和 UCBRSx來設定。
低頻波特率配置
如果BRCLK是BITCLK的整數倍,即BRCLK/BITCLK=N,這時比較容易理解,在UART傳輸時,每個數據bit時長包含了N個BRCLK。
但往往BRCLK不是BITCLK的整數倍,這時要實現UART通訊就需要進行合適的調制(modulation),以避免累積誤差導致UART通訊失敗。在MSP430FR2311中,UCBRSx用來實現合理調制。
以傳輸一個8bit數據為例,在發(fā)送的bit位中包含start bit,8bit數據,parity bit和stop bit。
在SLAA049中,用圖標明了UCBRSx的modulation模式,如圖二所示,它是以8bit為一個循環(huán)進行調制。
以時鐘源頻率BRCLK 32768Hz,波特率BITCLK 2400Hz為例,32768/2400=13.6533,所以UCOS16=0,UCBRx=13,modulation的作用主要是用來消除累積誤差,所以如下表所示,當累積誤差大于等于0.5時,UCBRSx對應的位置1,否則清零。經過計算,UCBRSx=0xB6.
表1 UCBRSx的生成說明
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 |
所以調制后的Timing如圖3所示,圖中13代表13個BRCLK時長,14代表14個BRCLK時長。
再以時鐘源頻率BRCLK 1048576Hz,波特率BITCLK 115200為例,1048576/115200=9.1022,所以UCOS16=0,UCBRx=9,對于m5,雖然小數部分大于0.5,但是由于在m4的位置已經增加了1個BRCLK的時長,所以需要小數部分累積到大于1.5后,UCBRSx的位才會設置為1。經過計算,UCBRSx=0x08.
表2 UCBRSx的生成說明
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的調制數據,方便快速獲得正確的UCBRSx值。如圖4所示。
高頻波特率配置
MSP430FR2311中包含了一個過采樣波特率模式(oversampling baud-rate mode),用來支持高頻時鐘源。UCA0MCTLW中UCOS16用來使能過采樣波特率模式。當UCOS16=1時,過采樣波特率模式使能,此時UCBRx中1對應16個BRCLK時長,UCBRFx中1對應1個BRCLK時長。
以時鐘源頻率BRCLK 4000000Hz,波特率BITCLK 57600為例,4000000/57600=69.4444,再將69除以16,商為4,余數為5,所以UCOS16=1,UCBRx=4,UCBRFx=5. UCBRSx的設置如前面的討論,不再贅述,UCBRSx=0x55.
在過采樣波特率模式中,數值判定(majority votes)時,總是以1/16的數據bit時長(1/BITCLK)來分段。MSP430FR2311 User Guide中提供了UCBRFx的調制表格,如表3所示。
審核編輯:何安
-
嵌入式處理
+關注
關注
0文章
341瀏覽量
10071
發(fā)布評論請先 登錄
相關推薦
擴展您的串口設備 EU104數據轉發(fā)芯片可獨立設置通訊速率和參數 將1個UART接口擴展為4個
UART通信協議介紹和數據傳輸工作流程
![<b class='flag-5'>UART</b>通信協議<b class='flag-5'>介紹</b>和數據傳輸工作流程](https://file1.elecfans.com/web2/M00/0B/07/wKgaomcZ50CAYI-NAAE4rJC_jSo997.jpg)
NXP FRDM-MCXA153 RT-Thread實踐指南之UART介紹
![NXP FRDM-MCXA153 RT-Thread實踐指南之<b class='flag-5'>UART</b><b class='flag-5'>介紹</b>](https://file1.elecfans.com/web2/M00/0A/A3/wKgaomcRwrCAdQ8tAACBHLcQwbg308.png)
uart波特率和傳輸頻率的關系 UART串口的常用波特率為多少
![<b class='flag-5'>uart</b>波特率和傳輸頻率的關系 <b class='flag-5'>UART</b>串口的常用波特率為多少](https://file1.elecfans.com/web2/M00/06/B3/wKgaombercuAAGgbAAA7NTFkU2k687.png)
UART串口通訊協議解析
![](https://file1.elecfans.com/web2/M00/06/B6/wKgaombevOaAAHXOAAMMZXzJZKo060.jpg)
雙模藍牙模塊UART串口和RS232在通訊領域的優(yōu)勢
控制模塊通訊總線關閉怎么修
簡單認識UART通信協議
HT7017 是一顆帶 UART 通訊接口的高精度單相多功能計量芯片
![HT7017 是一顆帶 <b class='flag-5'>UART</b> <b class='flag-5'>通訊</b>接口的高精度單相多功能計量芯片](https://file1.elecfans.com/web2/M00/F0/6F/wKgZomZynZCAVGq-AABbXKbNkGw202.png)
西門子PLC與IO模塊如何通訊
藍牙模塊、WiFi模塊等無線通信模塊使用規(guī)范
![藍牙<b class='flag-5'>模塊</b>、WiFi<b class='flag-5'>模塊</b>等無線通信<b class='flag-5'>模塊</b>使用規(guī)范](https://file1.elecfans.com/web2/M00/E9/8B/wKgZomZUIIeAd3deAAA9AEa0DY0575.png)
評論