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 |