UART暫存器詳解
阿新 • • 發佈:2019-01-01
1.UART行控制暫存器ULCONn(ULCON0, R/W, Address = 0xEC00_0000)
ULCONn的含義如表8-2所示。
表8-2 ULCONn的含義
2.UART行控制暫存器UCONn(UCON0,R/W Address = 0xEC00_0004)
暫存器詳細說明如表8-3所示。
表8-3 UCONn
續表
3.UART FIFO 控制暫存器UFCONn(UFCON0,R/W,ADDRESS = 0xEC00_0008)
暫存器詳細說明如表8-4所示。
表8-4 UFCONn的含義
4.UART MODEM控制暫存器UMCONn(UMCON0,R/W,ADDRESS = 0xEC00_000C)
暫存器詳細說明如表8-5所示。
表8-5 UMCONn的含義
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的含義
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 |
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 |
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 |
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 |
UTRSTATn | 位 | 描 述 | 初 始 值 |
Transmitter empty | [2] |
傳送緩衝和傳送移位暫存器是否都為空 0=否 1=是 |
1 |
Transmit buffer empty | [1] |
關閉FIFO的情況下,傳送緩衝是否為空 0=不為空 1=空 |
1 |
Receive buffer data ready | [0] |
關閉FIFO的情況下,接收緩衝是否為空 0=空 1=不為空 |
0 |