寄存器描述
0x000 UART_RBR
默认值:0x00000000 |
UART 数据接收寄存器 (Receive Buffer) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
- |
7:0 |
R |
0x0 |
RBR Receive Buffer Register,数据接收寄存器 串行输入端口接收到的数据,仅当线路状态寄存器 (LSR) 中的数据就绪位 (DR bit) 被设为 1 时,该寄存器中的数据才有效。 在 FIFO 模式中(FCR[0] 设为 1)读取该寄存器则访问接收 FIFO 的顶部(先进先出)。如果接收 FIFO 已满,并且在下一个数据到达之前没有读取该寄存器,FIFO 中已经存在的数据将被保留,但任何传入的数据都会丢失并发生溢出错误。 |
0x000 UART_THR
0x000 UART_DLL
默认值:0x00000000 |
UART 低位除数寄存器 (Divisor Latch Low) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
- |
7:0 |
R/W |
0x0 |
DLL Divisor Latch Low,低位除数寄存器 16 位 UART 波特率除数的低 8 位。仅当 DLAB 位 (LCR[7]) 为 1 并且 UART 空闲 (USR[0]) 时,该寄存器才能被访问。 输出波特率等于串行时钟频率除以波特率除数的 16 倍,如下: Baudrate = SCLK / (CMU_divisor * 16 * UART_divisor) |
0x004 UART_DLH
默认值:0x00000000 |
UART 高位除数寄存器 (Divisor Latch High) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
- |
7:0 |
R/W |
0x0 |
DLH Divisor Latch High,高位除数寄存器 16 位 UART 波特率除数的高 8 位。仅当 DLAB 位 (LCR[7])为 1 并且 UART 空闲 (USR[0]) 时,该寄存器才能被访问。 输出波特率等于串行时钟频率除以波特率除数的 16 倍,如下: Baudrate = SCLK / (CMU_divisor * 16 * UART_divisor) 注: 当除数寄存器 (DLL 与
DLH)设置为零时,波特时钟被禁用,并且没有串行通信发生。
|
0x004 UART_IER
默认值:0x00000000 |
UART 中断使能寄存器 (Interrupt Enable) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
- |
7 |
R/W |
0x0 |
PTIME Programmable THRE Interrupt Mode Enable,THRE 中断模式使能
|
6 |
- |
- |
- |
5 |
R/W |
0x0 |
Shifter_Reg_Empty_EN 发送移位寄存器为空中断使能,用于发送 FIFO 为空并且移位寄存器也为空的中断使能控制:
|
4 |
R/W |
0x0 |
RS485_INT_EN RS485 Interrupt Enable,RS485 中断使能
|
3 |
R/W |
0x0 |
EDSSI Enable Modem Status Interrupt,调制解调器状态中断使能 用于调制解调器状态 (MSR) 中断使能控制,为第四优先级中断。
|
2 |
R/W |
0x0 |
ELSI Enable Receive Line Status Interrupt,接收线路状态中断使能 用于接收线路状态中断使能控制,为最高级中断。
|
1 |
R/W |
0x0 |
ETBEI Enable Transmit Holding Register Empty Interrupt,数据发送寄存器为空中断使能 用于数据发送寄存器为空中断使能控制,为第三优先级中断。
|
0 |
R/W |
0x0 |
ERBFI Enable Receive Data Available Interrupt,接收数据可用中断使能 用于接收数据可用中断使能控制,以及字符超时中断控制(如果在 FIFO
模式并且 FIFO 使能),为第二优先级中断。
|
0x008 UART_IIR
默认值:0x00000001 |
UART 中断标志寄存器 (Interrupt Identity) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
- |
7:6 |
R |
0x0 |
FEFLAG FIFOs Enable Flag,FIFOs 使能标志 表明 FIFO 是否使能。
|
5 |
- |
- |
- |
4 |
RC |
0x0 |
Shifter_Reg_Empty_INT 发送移位寄存器为空中断状态
|
3:0 |
R |
0x1 |
IID Interrupt ID,中断 ID ,表示最高优先级的挂起中断,可以是以下类型之一:
注: bit3 为 FIFO 相关触发条件的中断标志位,仅在
FIFO 使能时有效。 |
中断 ID |
优先级 |
中断类型 |
中断源 |
中断复位 |
---|---|---|---|---|
0x1 |
- |
- |
- |
- |
0x6 |
最高级 |
接收线路状态 |
溢位/ 奇偶检验/ 帧错误或者 break 中断 |
读取线路状态寄存器。 |
0x3 |
第二级 |
RS485 中断 |
在 RS485 AAD 模式中,接收地址值与 ADDR_MATCH 值匹配。 |
地址标志写 1 复位。 |
0x4 |
第三级 |
接收数据可用 |
接收数据可用(非 FIFO 模式或者 FIFO 未使能)或达到接收 FIFO 触发水平(FIFO 模式和 FIFO 使能)。 |
读取接收缓冲寄存器(非 FIFO 模式或者 FIFO 未使能)或 FIFO 低于触发水平(FIFO 模式和 FIFO 使能)。 |
0xC |
第四级 |
字符超时 |
在四个字符时间内,接收 FIFO 没有字符进出,并且在此期间 FIFO 中至少有一个字符。 |
读取数据接收寄存器。 |
0x2 |
第五级 |
数据发送寄存器为空 |
数据发送寄存器为空 (THRE 模式未使能)或发送 FIFO 处于或者低于阈值(THRE 模式使能)。 |
根据情况选择对应方式:
|
0x0 |
第六级 |
调制解调器状态 |
CTS 如果处于自动流控,CTS 不会触发。 |
读取调制解调器状态寄存器。 |
0x7 |
第七级 |
繁忙检测标志 |
主处理器在 UART 繁忙时(USR[0]设置为 1)尝试写入线路控制寄存器。 |
读取 UART 状态寄存器。 |
0x008 UART_FCR
默认值:0x00000000 |
UART FIFO 控制寄存器 (FIFO Control) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
- |
7:6 |
W |
0x0 |
RT RX Trigger,接收触发,用于在接收 FIFO 中选择接收数据可用中断的触发深度。 在自动流控制模式中,它用于确定何时使 rts_n (Request to
Send) 信号无效,也用于确定 DRQ 信号在某些操作模式下何时有效。
|
5:4 |
W |
0x0 |
TFT TX Empty
Trigger,发送为空触发,用于选择产生发送保持寄存器为空中断的空阈值电平,也用于确定 DRQ
信号在某些操作模式中何时有效。
|
3 |
W |
0x0 |
DMAM DMA Mode,DMA 模式
|
2 |
W1C |
0x0 |
TXFIFOR TX FIFO Reset,发送 FIFO 复位 复位发送 FIFO 的控制并且将 FIFO 清空。也可以清除 DMA 发送请求。此位不需要清除,为自动清除。 |
1 |
W1C |
0x0 |
RXFIFOR RX FIFO Reset,接收 FIFO 复位 复位接收 FIFO 的控制并且将 FIFO 清空。也可以清除 DMA 接收请求。此位不需要清除,为自动清除。 |
0 |
W |
0x0 |
FIFOE FIFO Enable,FIFO 使能 使能/未使能发送以及接收 FIFO。每当该位的值改变时,FIFO 的发送以及接收控制部分都会复位。 |
0x00C UART_LCR
默认值:0x00000000 |
UART 线路控制寄存器 (Line Control) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
- |
7 |
R/W |
0x0 |
DLAB Divisor Latch Access Bit,除数存取位,用于使能除数寄存器(DLL 和 DLH)的读写,以设置 UART 的波特率。 仅当 UART
空闲时 (USR[0] 为 0) 此位才可写。在初始化波特率设置后,必须清除此位,以便访问其它寄存器。
|
6 |
R/W |
0x0 |
BC Break Control Bit,中断信号控制位 产生一个中断条件传输到接收端。 若此位设 1,串行输出将强制为逻辑 0 状态。如果处于非回环模式中(取决于 MCR[4]),串行输出线强制为低电平,直到清除此位。 |
5:4 |
R/W |
0x0 |
EPS Even Parity Select,偶校验选择 注: 仅当
PEN (LCR[3]) 设为 1 时才能使用偶校验选择。 仅当 UART 空闲时(USR[0] 为 0)此位可写。 当使能奇偶校验时(PEN 设为 1),此位用于选择奇性或者偶性校验。
对于 RS485 模式,数据包中的奇偶校验位(即第 9 位)用于指示该包是地址还是数据,而非奇偶校验:
|
3 |
R/W |
0x0 |
PEN Parity Enable,奇偶校验使能,用于选择是否使能发送接收串行字符中的奇偶校验生成与检测。 仅当
UART 空闲时(USR[0] 为 0)此位才可写。
|
2 |
R/W |
0x0 |
STOP Number of Stop Bits,停止位数,用于选择外围设备发送和接收的每个字符的停止位数。 仅当 UART 空闲时(USR[0] 为
0)此位才可写。 注: 不管选择多少个停止位,接收器只检查第一个停止位。
|
1:0 |
R/W |
0x0 |
DLS Data Length Select,数据长度选择,用于选择外围设备发送和接收的每个字符的数据位数。 仅当 UART 空闲时(USR[0]
为 0)此位才可写。可选择的位数如下:
|
0x010 UART_MCR
默认值:0x00000000 |
UART 调制解调器控制寄存器 (Modem Control) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
- |
7:6 |
R/W |
0x0 |
UART_FUNCTION 选择 UART 或者 RS485
|
5 |
R/W |
0x0 |
AFCE Auto Flow Control Enable,自动流控制使能 当使能 FIFO 以及此位设 1
时,自动流控制功能使能。
|
4 |
R/W |
0x0 |
LOOP Loop Back Mode,回环模式,用于将 UART 置于调试模式以进行测试。
在 UART 模式下运行 (MCR[7:6] 设为 0),tx 线上的数据保持为高,而串行数据输出在内部回环到 rx 线路,所有中断均正常。 |
3:2 |
- |
- |
- |
1 |
R/W |
0x0 |
RTS Request To Send,发送请求,用于直接控制发送请求 (rts_n) 输出。
rts_n 输出用于通知调制解调器 UART 已准备好交换数据。
注: 在回环模式中(MCR[4] 设为
1),当该位置的值在内部回环输入时,rts_n 输出保持高电平无效状态。在 RS485 或 RS485-2
模式中,RTS 外接 485 收发器方向控制脚 DE,需通过设置此位控制发送接收方向,设 1 则为接收方向,设 0
则为发送方向。
|
0 |
- |
- |
- |
0x014 UART_LSR
默认值:0x00000060 |
UART 线路状态寄存器 (Line Status) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
- |
7 |
R |
0x0 |
FIFOERR RX Data Error In FIFO,FIFO 接收数据错误
|
6 |
R |
0x1 |
TEMT Transmitter Empty,发送器为空
|
5 |
R |
0x1 |
THRE TX Holding Register
Empty,数据发送寄存器为空
|
4 |
RC |
0x0 |
BI Break Interrupt,Break 中断,用于指示在串行输入数据上检测到中断序列。 break
条件会导致 UART 接收到仅且一个由 0 组成的字符。
|
3 |
RC |
0x0 |
FE Framing Error,帧错误,用于指示接收器中出现帧错误。 当接收器在接收的数据中没有检测到有效的停止位时,就会发生帧错误。在 FIFO 模式中,由于帧错误与接收到的字符相关,因此当具有帧错误的字符位于 FIFO 顶部时,才会显示该错误。帧错误出现时,UART 会尝试重新同步。接收器重新同步是通过假设错误是由下一个字符的起始位引起的,然后继续接收另一个数据位,以及奇偶检验位和停止位。 需要注意的是,如果发生 BI,则此位也置 1。
|
2 |
RC |
0x0 |
PE Parity Error,奇偶校验错误 此位用于指示在接收中发生奇偶校验错误。
注: 仅在使能奇偶校验 (PEN) 位 (LCR[3])
功能时此位有效。 |
1 |
RC |
0x0 |
OE Overrun Error,溢出错误
如果在读取先前数据之前接收到新的数据字符,则出现此错误。
|
0 |
R |
0x0 |
DR Data Ready,数据就绪 用于指示在 RBR 或者接收 FIFO 中至少包含一个字符。
当非 FIFO 模式中读取 RBR 或者 FIFO 模式中 FIFO 为空时清除此位。 |
0x018 UART_MSR
默认值:0x00000010 |
UART 调制解调器状态寄存器 (Modem Status) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:5 |
- |
- |
- |
4 |
R |
0x1 |
CTS Line State Of Clear To Send,可发送状态 用于指示调制解调器控制线 cts_n
信号的当前状态。当 cts_n 有效时表示调制解调器已准备好 UART 交换数据。
注: 在回环模式中(MCR[4] 设为 1),CTS 内部连接 RTS
(MCR[1])。
|
3:1 |
- |
- |
- |
0 |
RC |
0x0 |
DCTS Delta Clear To Send,表示自上次读取 MSR 后 cts_n 信号发生了改变。
读取 MSR 清除此位。在回环模式中 (MSR[4]=1),DCTS 反映 MCR[1] (RTS) 的变化。 注: 如果未设置此位,并且 cts_n
信号有效(低电平)以及发生复位(软件复位或其它情况),如 cts_n 信号仍然保持有效,在移除复位时此位置
1。
|
0x01C UART_SCH
默认值:0x00000000 |
UART 暂存器 (Scratch) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
- |
7:0 |
R/W |
0x0 |
SCRATCH_REG 暂存器,为用户提供临时存储空间,UART 中未定义用途。 |
0x07C UART_USR
默认值:0x00000006 |
UART 状态寄存器 (Status) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:5 |
- |
- |
- |
4 |
R |
0x0 |
RFF Receive FIFO Full,接收 FIFO 为满 用于指示接收 FIFO 已完全满。
|
3 |
R |
0x0 |
RFNE Receive FIFO Not Empty,接收 FIFO 非空 用于指示接收 FIFO
包含一个或多个数据。
|
2 |
R |
0x1 |
TFE Transmit FIFO Empty,发送 FIFO 为空 用于指示发送 FIFO 完全空。
|
1 |
R |
0x1 |
TFNF Transmit FIFO Not Full,发送 FIFO 未满 用于指示发送 FIFO
未满。
|
0 |
R |
0x0 |
BUSY UART Busy Bit,UART 繁忙位
|
0x080 UART_TFL
默认值:0x00000000 |
UART 发送 FIFO 深度寄存器 (Transmit FIFO Level) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:9 |
- |
- |
- |
8:0 |
R |
0x0 |
TFL Transmit FIFO Level,发送 FIFO 深度 用于指示发送 FIFO 中的数据数量 |
0x084 UART_RFL
默认值:0x00000000 |
UART 接收 FIFO 深度寄存器 (Receive FIFO Level) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:9 |
- |
- |
- |
8:0 |
R |
0x0 |
RFL Receive FIFO Level,接收 FIFO 深度 用于指示接收 FIFO 中的数据数量 |
0x088 UART_HSK
默认值:0x000000A5 |
UART DMA 握手配置寄存器 (DMA Handshake Configuration) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
- |
7:0 |
R/W |
0xA5 |
HSK Handshake Configuration,握手配置
|
0x0A4 UART_HALT
默认值:0x00000000 |
UART 停止发送寄存器 (Halt TX) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
- |
7 |
R/W |
0x0 |
DMA_PTE_RX The Sending Of RX_DRQ,发送 RX_DRQ
|
6 |
R/W |
0x0 |
PTE The Sending Of TX_REQ,发送 TX_REQ
|
5:1 |
- |
- |
- |
0 |
R/W |
0x0 |
HALT_TX 停止发送 此位用于停止传输以进行测试,以便在使能 FIFO 时,主控可以填充发送 FIFO。
注: 如果 FIFO
未使能,设置此位对操作没有影响。 |
0x0B0 UART_DBG_DLL
默认值:0x00000000 |
UART 低位除数调试寄存器 (DBG DLL) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
- |
7:0 |
R/W |
0x0 |
DEBUG DLL |
0x0B4 UART_DBG_DLH
默认值:0x00000000 |
UART 高位除数调试寄存器 (DBG DLH) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
- |
7:0 |
R/W |
0x0 |
DEBUG DLH |
0x0B8 UART_485_DE
默认值:0x000000ff |
UART RS485 DE 时间寄存器 (RS485 DE Time) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
- |
7:4 |
R/W |
0xf |
DE_DAT Driver Enable De-assertion Time,DE 无效时间 T2 串行数据结束位到 DE 信号下降沿之间的时间间隔,以串行时钟周期为单位。 |
3:0 |
R/W |
0xf |
DE_AT Driver Enable Assertion Time,DE 有效时间 T1 DE 信号上升沿到串行数据起始位之间的时间间隔,以串行时钟周期为单位 |
0x0C0 UART_485_CTL
默认值:0x00000080 |
UART RS485 控制与状态寄存器 (RS485 Control and Status) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
- |
7 |
R/W |
0x1 |
RS485_CTL_MODE RS485 Control Mode,RS485 控制模式
|
6 |
R/W1C |
0x0 |
AAD_ADDR_F AAD 地址匹配标志 在 AAD 模式中,当 UART 接收到地址字节且与 RS485_ADDR_MATCH 相同时,该位将置为 1。如果 RS485 中断使能,则将产生 RS485 中断。 写 1 清除该位并且复位 RS485 中断。 |
5 |
R/W1C |
0x0 |
RS485_ADDR_DET_F RS485 地址检测标志 此位为地址字节检测标志。当 UART 接收到地址字节时,此位将设为 1。如果 RS485 中断使能,则将产生 RS485 中断。 写 1 清除该位并且复位 RS485 中断。 |
4 |
- |
- |
- |
3 |
R/W |
0x0 |
RX_BF_ADDR 地址之前接收 在 NMM 模式中,如果此位设为 1,UART
将在接收到一个地址字节之前将所有字节接收到 FIFO 中。如果设为 0,则不进行此操作。
|
2 |
R/W |
0x0 |
RX_AF_ADDR 地址之后接收
在 NMM 模式中:
|
1:0 |
R/W |
0x0 |
RS485_SLAVE_MODE_SEL RS485 从机模式选择 RS485 从机模式:
|
0x0C4 RS485_ADDR_MATCH
默认值:0x00000000 |
UART RS485 地址匹配寄存器 (RS485 Address Match) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
- |
7:0 |
R/W |
0x0 |
ADDR_MATCH 地址匹配 在 AAD 模式下使用的匹配地址。 注: 仅在 AAD 模式下可用。
|
0x0C8 BUS_IDLE_CHK
默认值:0x00000000 |
UART RS485 总线空闲查询寄存器 (RS485 Bus Idle Check) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
- |
7 |
R/W |
0x0 |
BUS_IDLE_CHK_EN 总线空闲查询使能
|
6 |
R |
0x0 |
BUS_STATUS 总线状态标志
|
5:0 |
R |
0x0 |
ADJ_TIME 总线空闲时间 单位为 8 × 16 × Tclk |
0x0CC TX_DLY
默认值:0x00000000 |
UART 发送延时寄存器 (TX Delay) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
- |
7:0 |
R/W |
0x0 |
DLY 发送延时 最后一个停止位与下一个开始位之间的延迟时间。单位为 16 × Tclk。它用于控制数据发送中两个字节之间的间隔。 |
0x0D0 UART_DBR
默认值:0x00000000 |
UART 调试寄存器 (Debug Register) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:5 |
- |
- |
- |
3 |
W |
0x0 |
Bypass 预取调试 |
2:0 |
- |
- |
- |
0x0FC UART_VERSION
默认值:0x00000100 |
UART 版本号寄存器 (Version) |
||
---|---|---|---|
位域 |
类型 |
默认值 |
描述 |
31:8 |
- |
- |
- |
7:0 |
R |
0x00000100 | UART 版本号寄存器,V1.0 |