1. 程式人生 > >UART暫存器詳解

UART暫存器詳解

1.UART行控制暫存器ULCONn(ULCON0, R/W, Address = 0xEC00_0000) ULCONn的含義如表8-2所示。 表8-2  ULCONn的含義
ULCONn 描述 初始狀態
Reserved [7] 0
Infra-Red Mode [6] 是否使用紅外模式
0=正常模式
1=紅外模式
0
Parity Mode [5:3] 校驗方式
0XX=無奇偶校驗
100=奇校驗
101=偶校驗
110=校驗位強制為1
111=校驗位強制為0
000
Number of Stop Bit [2] 停止位數量
0=1個停止位
1=2個停止位
0
Word Length [1:0] 資料位個數
00=5bit 01=6bit
10=7bit 11=8bit
00
2.UART行控制暫存器UCONn(UCON0,R/W Address = 0xEC00_0004) 暫存器詳細說明如表8-3所示。 表8-3  UCONn
UCONn 描 述 初 始 值
Clock Selection [11:10] x0:PCLK 做位元率發生
01:UART_CLK
11 = SCLK_UART
0
Tx Interrupt Type [9] 0:Tx 中斷脈衝觸發
1:Tx 中斷電平觸發
0
Rx Interrupt Type [8] 0:Rx 中斷脈衝觸發
1: Rx 中斷電平觸發
0
Rx Time Out Enable [7] 0:接收超時中斷不允許
1: 接收超時中斷允許
0
續表
UCONn 描 述 初 始 值
Rx Error Status
Interrupt Enable
[6] 0:不產生接收錯誤中斷
1: 產生接收錯誤中斷
0
Loopback Mode [5] 0:正常模式
1: 傳送直接傳給接收方式(Loopback)
0
Reserved [4] 0:正常模式傳送
1: 傳送間斷訊號
0
Transmit Mode [3:2] 傳送模式選擇
00:不允許傳送
01:中斷或查詢模式
10:DMA0 請求
11: DMA1 請求
00
Receive Mode [1:0] 接收模式選擇
00:不允許接收
01:中斷或查詢模式
10:DMA0請求
11:DMA1請求
00
3.UART FIFO 控制暫存器UFCONn(UFCON0,R/W,ADDRESS = 0xEC00_0008) 暫存器詳細說明如表8-4所示。 表8-4  UFCONn的含義
UFCONn 描 述 初 始 值
Tx FIFO Trigger Level [7:6] 決定傳送FIFO的觸發位置
00=0個位元組時觸發
01=16個位元組時觸發
10=32個位元組時觸發
11=48個位元組時觸發
00
Rx FIFO Trigger Level [5:4] 決定接收FIFO的觸發位置
00=1個位元組時觸發
01=8個位元組時觸發
10=16個位元組時觸發
11=32個位元組時觸發
00
Reserved [3] 保留 0
Tx FIFO Reset [2] Tx FIFO復位後是否清零
0=不清零 1=清零
0
Rx FIFO Reset [1] Rx FIFO復位後是否清零
0=不清零 1=清零
0
FIFO Enable [0] 使能FIFO功能
0=不使能 1=使能
0
4.UART MODEM控制暫存器UMCONn(UMCON0,R/W,ADDRESS = 0xEC00_000C) 暫存器詳細說明如表8-5所示。 表8-5  UMCONn的含義
UMCONn 描 述 初 始 值
RTS trigger Level [7:5] 如果自動流控制位使能,
則以下位將決定失效nRTS訊號:
000 = RX FIFO 填充63位元組
001 = RX FIFO 填充56位元組
010 = RX FIFO 填充48位元組
011 = RX FIFO 填充40位元組
100 = RX FIFO 填充32位元組
101 = RX FIFO 填充24位元組
110 = RX FIFO 填充16位元組
111 = RX FIFO 填充8 位元組
000
Auto Flow Control (AFC) [4] 0:不允許使用AFC模式
1:允許使用AFC 模式
0
Reserved [3:1] 保留,必須全為0 00
Request to Send [0] 0:不啟用nRTS
1:啟用nRTS
0
5.傳送暫存器UTXHn和接收暫存器URXHn 這兩個暫存器存放著傳送和接收的資料,在關閉FIFO的情況下只有一個位元組8位資料。需要注意的是,在發生溢位錯誤時,接收的資料必須被讀出來,否則會引發下次溢位錯誤。 6.位元率分頻暫存器UBRDIVn 用於串列埠位元率的設定。S5PC100引入了UDIVSLOTn,使得波特率的設定比早期處理器更加精確。下面以設定波特率為115200為目標,介紹設定方法。 DIV_VAL = (PCLK / (bps*16 ) ) -1 =66.75M/115200*16 - 1      //PCLK由系統時鐘提供,此為設定66.75M =35.214 UBRDIVn = 35(DIV_VAL的整數部分)。 (UDIVSLOTn中1的數量)/16 = 0.2。 (UDIVSLOTn中1的數量) = 3。 根據手冊中的建議3 0x0888(0000_1000_1000_1000b)11 0xDDD5(1101_1101_1101_0101b)選擇"UDIVSLOTn = 0x0888; "。 7.串列埠狀態暫存器UTRSTATn(UTRSTAT0,R,ADDRESS = 0xEC00_0010) 暫存器詳細說明如表8-6所示。 表8-6  UTRSTATn的含義
UTRSTATn 描 述 初 始 值
Transmitter empty [2] 傳送緩衝和傳送移位暫存器是否都為空
0=否
1=是
1
Transmit buffer empty [1] 關閉FIFO的情況下,傳送緩衝是否為空
0=不為空
1=空
1
Receive buffer data ready [0] 關閉FIFO的情況下,接收緩衝是否為空
0=空
1=不為空
0