寄存器描述
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 FIFOs Enable,FIFOs 使能 使能/未使能发送以及接收 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),用于选择奇性或者偶性校验。设置 LCR[5] 可反转 LCR[4]。
|
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:3 | - | - | - |
2 | R/WAC | 0x0 | CHANGE_UPDATE 更新配置 使用 HALT[1]
更改波特率或者 LCR 配置后,写 1 来更新配置,等待此位自动清 0 来完成更新过程。
|
1 | R/W | 0x0 | CHCFG_AT_BUSY 繁忙状态更改配置使能 用户可在 UART 繁忙(USB[0] 为 1)时通过此位使能更改 LCR 配置以及波特率。 1:UART 繁忙时使能更改 |
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:8 | - | - | - |
3 | W | 0x0 | Bypass 预取调试 |
2:0 | - | - | - |
0x0FC UART_VERSION
默认值:0x00000100 | UART 版本号寄存器 (Version) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:8 | - | - | - |
7:0 | R | 0x00000100 | UART 版本号寄存器,V1.0 |