Edit online

寄存器描述

6 Nov 2024
Read time: 20 minute(s)

0x000 UART_RBR

注: UART 模块初始化时,如需设置分频系数,先要对 DLAB 写 1,才能访问寄存器 DLL 和 DLH。设置完成后,需对 DLAB 写 0,才能访问寄存器 TX、RX FIFO 以及 IER。
默认值: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

注: UART 模块初始化时,如需设置分频系数,先要对 DLAB 写 1,才能访问寄存器 DLL 和 DLH。设置完成后,需对 DLAB 写 0,才能访问寄存器 TX、RX FIFO 以及 IER。
默认值:0x00000000 UART 数据发送寄存器 (Transmit Holding)
位域 类型 默认值 描述
31:8 - - -
7:0 W 0x0 THR

Transmit Holding Register,数据发送寄存器

串行输出端口发送的数据,仅当线路状态寄存器 (LSR) 中的 THRE 位 (LSR[5]) 被设为 1 时,数据才会写到该寄存器。

在 FIFO 模式中 (FCR[0] 设为 1)并且 THRE 为 1 时,数据可以在 FIFO 满之前写入该寄存器。当 FIFO 已满时,任何写入数据的尝试都会导致写入数据丢失。

0x000 UART_DLL

注: UART 模块初始化时,如需设置分频系数,先要对 DLAB 写 1,才能访问寄存器 DLL 和 DLH。设置完成后,需对 DLAB 写 0,才能访问寄存器 TX、RX FIFO 以及 IER。
默认值: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)

注: 当除数寄存器(DLLDLH)设置为 0 时,波特时钟被禁用,并且没有串行通信发生。

0x004 UART_DLH

注: UART 模块初始化时,如需设置分频系数,先要对 DLAB 写 1,才能访问寄存器 DLL 和 DLH。设置完成后,需对 DLAB 写 0,才能访问寄存器 TX、RX FIFO 以及 IER。
默认值: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

注: UART 模块初始化时,如需设置分频系数,先要对 DLAB 写 1,才能访问寄存器 DLL 和 DLH。设置完成后,需对 DLAB 写 0,才能访问寄存器 TX、RX FIFO 以及 IER。
默认值:0x00000000 UART 中断使能寄存器 (Interrupt Enable)
位域 类型 默认值 描述
31:8 - - -
7 R/W 0x0 PTIME
Programmable THRE Interrupt Mode Enable,THRE 中断模式使能
  • 0:未使能。THRE 中断会在非空的条件清除。

  • 1:使能。THRE 中断会在低于触发深度 FCR[5:4] 的条件清除。

6 - - -
5 R/W 0x0 Shifter_Reg_Empty_EN

发送移位寄存器为空中断使能,用于发送 FIFO 为空并且移位寄存器也为空的中断使能控制:

  • 0:未使能

  • 1:使能

4 R/W 0x0 RS485_INT_EN
RS485 Interrupt Enable,RS485 中断使能
  • 0:未使能

  • 1:使能

3 R/W 0x0 EDSSI

Enable Modem Status Interrupt,调制解调器状态中断使能

用于调制解调器状态 (MSR) 中断使能控制,为第四优先级中断。
  • 0:未使能

  • 1:使能

2 R/W 0x0 ELSI

Enable Receive Line Status Interrupt,接收线路状态中断使能

用于接收线路状态中断使能控制,为最高级中断。
  • 0:未使能

  • 1:使能

1 R/W 0x0 ETBEI

Enable Transmit Holding Register Empty Interrupt,数据发送寄存器为空中断使能

用于数据发送寄存器为空中断使能控制,为第三优先级中断。
  • 0:未使能

  • 1:使能

0 R/W 0x0 ERBFI

Enable Receive Data Available Interrupt,接收数据可用中断使能

用于接收数据可用中断使能控制,以及字符超时中断控制(如果在 FIFO 模式并且 FIFO 使能),为第二优先级中断。
  • 0:未使能

  • 1:使能

0x008 UART_IIR

默认值:0x00000001 UART 中断标志寄存器 (Interrupt Identity)
位域 类型 默认值 描述
31:8 - - -
7:6 R 0x0 FEFLAG

FIFOs Enable Flag,FIFOs 使能标志

表明 FIFO 是否使能。
  • 0:未使能

  • 3:使能

5 - - -
4 RC 0x0 Shifter_Reg_Empty_INT
发送移位寄存器为空中断状态
  • 1:中断触发

  • 0:中断未触发或被清除

3:0 R 0x1 IID
Interrupt ID,中断 ID ,表示最高优先级的挂起中断,可以是以下类型之一:
  • 0x0:调制解调器状态

  • 0x1:无中断

  • 0x2:THR 为空

  • 0x3:RS485 中断

  • 0x4:接收数据可用

  • 0x6:接收线路状态

  • 0x7:繁忙检测

  • 0xC:字符超时。

注: 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 模式使能)。 根据情况选择对应方式:
  • 如果为中断源,则读取中断标志寄存器。
  • 未选择或者未使能 FIFO 或者 THRE 模式时,写数据进数据发送寄存器。
  • 选择并使能 FIFO 和 THRE 模式时,发送 FIFO 高于阈值。
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 信号在某些操作模式下何时有效。
  • 0:FIFO 中一个字符

  • 1:四分之一 FIFO

  • 2:二分之一 FIFO

  • 3:接近 FIFO 满状态 (FIFO - 2)

5:4 W 0x0 TFT
TX Empty Trigger,发送为空触发,用于选择产生发送保持寄存器为空中断的空阈值电平,也用于确定 DRQ 信号在某些操作模式中何时有效。
  • 0:FIFO 为空
  • 1:FIFO 中两个字符
  • 2:四分之一 FIFO
  • 3:二分之一 FIFO
3 W 0x0 DMAM

DMA Mode,DMA 模式

  • 0:模式 0
    • 如果 PTE (HALT[7]) 为 1 并且发送 FIFO 使能,当 TFL(发送 FIFO 深度)小于或者等于 FIFO 触发深度时,将发送 TX DMA 请求。
    • 如果 PTE 为 1 并且发送 FIFO 未使能,当 THRE 为 0 时,将发送 TX DMA 请求。
    • 如果 PTE 为 0,当发送 FIFO 为空时,将发送 TX DMA 请求。
    • 如果 DMA_PTE_RX 为 1 并且接收 FIFO 使能,当 RFL(接收 FIFO 深度)等于或者大于 FIFO 触发深度时将发送 RX_DRQ。
  • 1:模式 1
    • 如果 PTE 为 1 并且发送 FIFO 使能,当 TFL 小于或者等于 FIFO 触发深度时,将发送 TX DMA 请求。
    • 如果 PTE 为低,TX DMA 请求将在 TX FIFO 为空时发送,并且仅当 TX FIFO 已满时停止请求。
    • 如果 RFL 等于或者大于 FIFO 触发深度,RX_DRQ 将会设为 1,在其他情况则为 0。
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) 此位才可写。在初始化波特率设置后,必须清除此位,以便访问其他寄存器。
  • 0:选择接收缓冲寄存器(RBR)、发送保持寄存器 (THR) 以及中断使能寄存器 (IER)
  • 1:选择低位除数寄存器 (DLL) 以及高位除数寄存器 (DLH)
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]。

  • 0:奇性校验
  • 1:偶性校验
  • 2 或 3:反转 LCR[4], 在 RS485 模式中,是第 9 位地址位
  • 3:第 9 位为 0,表明这是一个数据字节
  • 2:第 9 位为 1,表明这是一个地址字节
3 R/W 0x0 PEN

Parity Enable,奇偶校验使能,用于使能和未使能发送接收串行字符中的奇偶校验生成与检测。

仅当 UART 空闲时(USR[0] 为 0)此位才可写。
  • 0:奇偶检验未使能
  • 1:奇偶检验使能
2 R/W 0x0 STOP

Number of Stop Bits,停止位数,用于选择外围设备发送和接收的每个字符的停止位数。

仅当 UART 空闲时(USR[0] 为 0)此位才可写。
注: 不管选择多少个停止位,接收器只检查第一个停止位。
  • 0:1 个停止位

  • 1:当 DLS (LCR[1:0]) 为 0 时,1.5 个停止位,否则 2 个停止位。当设为 1 且数据位设为 5 位时 (LCR[1:0]) ,传输 1.5 个停止位,否则传输 2 位停止位。

1:0 R/W 0x0 DLS

Data Length Select,数据长度选择,用于选择外围设备发送和接收的每个字符的数据位数。

仅当 UART 空闲时(USR[0] 为 0)此位才可写。可选择的位数如下:
  • 0:5 位

  • 1:6 位

  • 2:7 位

  • 3:8 位

0x010 UART_MCR

默认值:0x00000000 UART 调制解调器控制寄存器 (Modem Control)
位域 类型 默认值 描述
31:8 - - -
7:6 R/W 0x0 UART_FUNCTION
选择 UART 或者 RS485
  • 0:UART 模式
  • 2:RS485 模式(常规 485,3 线模式,TX、RX 和 RTS)
  • 3:RS485-2 线模式(特殊 485,半双工,2 线模式,TX、RX,其中 TX 做数据输入输出,RX 做控制。)
5 R/W 0x0 AFCE

Auto Flow Control Enable,自动流控制使能

当使能 FIFO 以及此位设 1 时,自动流控制功能使能。
  • 0:自动流控制模式未使能
  • 1:自动流控制模式使能
4 R/W 0x0 LOOP
Loop Back Mode,回环模式,用于将 UART 置于调试模式以进行测试。
  • 0:正常模式
  • 1:回环模式,调制解调器控制输入 (cts_n) 断开,输出 (rts_n) 在内部回环输入。

在 UART 模式下运行 (MCR[7:6] 设为 0),tx 线上的数据保持为高,而串行数据输出在内部回环到 rx 线路,所有中断均正常。

3:2 - - -
1 R/W 0x0 RTS

Request To Send,发送请求,用于直接控制发送请求 (rts_n) 输出。

  • 0:rts_n 信号无效状态(高电平)
  • 1:rts_n 信号有效状态(低电平)
rts_n 输出用于通知调制解调器 UART 已准备好交换数据。
  • 当自动流控制未使能(MCR[5]设为 0),则需通过将此位设为 1,使 rts_n 处于低电平。
  • 在自动流模式中(MCR[5] 设为 1)并且 FIFO 使能(FCR[0] 设为 1),也需通过将此位设为 1,使 rts_n 处于低电平,但同时也受到接收 FIFO 触发深度门控(当超过阈值时 n 处于高电平无效状态)。
  • 当 MCR[1] 设为 0 时 rts_n 无效。
注: 在回环模式中(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 接收数据错误
  • 如果 FIFO 未使能,此位总为 0。
  • 如果 FIFO 使能且接收 FIFO 中至少有 PE(LSR[2])、FE(LSR[3]) 和 BI(LSR[4]) 中一个,此位被置 1。
  • 如果 FIFO 没有后续错误,则通过读取 LSR 寄存器清除此位。
6 R 0x1 TEMT

Transmitter Empty,发送器为空

  • 如果 FIFO 未使能,每当数据发送寄存器以及发送移位寄存器为空时,该位设 1。
  • 如果 FIFO 使能,每当发送 FIFO 以及发送移位寄存器为空时,该位设 1。
  • 以上任意情况下,当一个字符被写入发送数据信道时,该位被清除。
5 R 0x1 THRE
TX Holding Register Empty,数据发送寄存器为空
  • 如果 FIFO 未使能,每当数据发送寄存器为空并且准备接收新数据时,该位被设为 1。CPU 写入数据发送寄存器时,该位被清除。
  • 如果 FIFO 使能,每当发送 FIFO 为空时,该位被设为 1。当至少有一个字符写入发送 FIFO 时,该位被清除。
4 RC 0x0 BI

Break Interrupt,Break 中断,用于指示在串行输入数据上检测到中断序列。

break 条件会导致 UART 接收到仅且一个由 0 组成的字符。
  • 在 FIFO 模式中,与 break 条件相关联的字符通过 FIFO 传输,当字符位于 FIFO 顶部时此位置 1,读取清除此位。
  • 在非 FIFO 模式中,此位立即置 1 并持续到读取此位清除。
3 RC 0x0 FE

Framing Error,帧错误,用于指示接收器中出现帧错误。

当接收器在接收的数据中没有检测到有效的停止位时,就会发生帧错误。在 FIFO 模式中,由于帧错误与接收到的字符相关,因此当具有帧错误的字符位于 FIFO 顶部时,才会显示该错误。帧错误出现时,UART 会尝试重新同步。接收器重新同步是通过假设错误是由下一个字符的起始位引起的,然后继续接收另一个数据位,以及奇偶检验位和停止位。

需要注意的是,如果发生 BI,则此位也置 1。

  • 0:无帧错误
  • 1:帧错误读取 LSR 清除此位
2 RC 0x0 PE

Parity Error,奇偶校验错误

此位用于指示在接收中发生奇偶校验错误。
  • 0:无奇偶校验错误
  • 1:奇偶校验错误读取 LSR 清除此位。
注: 仅在使能奇偶校验 (PEN) 位 (LCR[3]) 功能时有效。
1 RC 0x0 OE
Overrun Error,溢出错误
  • 0:无溢出错误
  • 1:溢出错误,读取 LSR 清除此位
如果在读取先前数据之前接收到新的数据字符,则出现此错误。
  • 在非 FIFO 模式,当从 RBR 读取先前字符之前接收一个新字符,则此位被置 1,发生这种情况时,RBR 中的数据则会被覆盖。
  • 在 FIFO 模式,当 FIFO 为满时接收到一个新的字符,则会发生此错误,此时 FIFO 中的数据被保留,而接收移位寄存器中的数据丢失。
0 R 0x0 DR

Data Ready,数据就绪

用于指示在 RBR 或者接收 FIFO 中至少包含一个字符。
  • 0:无数据就绪
  • 1:数据就绪

当非 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 交换数据。
  • 0:cts_n 无效(高电平状态)
  • 1:cts_n 有效(低电平状态)
注: 在回环模式中(MCR[4] 设为 1),CTS 内部连接 RTS (MCR[1])。
3:1 - - -
0 RC 0x0 DCTS
Delta Clear To Send,表示自上次读取 MSR 后 cts_n 信号发生了改变。
  • 0:上一次读取 MSR 后 cts_n 无变化
  • 1:上一次读取 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 已完全满。
  • 0:接收 FIFO 未满
  • 1:接收 FIFO 已满当接收 FIFO 不再满时自动清零
3 R 0x0 RFNE

Receive FIFO Not Empty,接收 FIFO 非空

用于指示接收 FIFO 包含一个或多个数据。
  • 0:接收 FIFO 为空
  • 1:接收 FIFO 非空当接收 FIFO 为空时自动清零
2 R 0x1 TFE

Transmit FIFO Empty,发送 FIFO 为空

用于指示发送 FIFO 完全空。
  • 0:发送 FIFO 非空。
  • 1:发送 FIFO 为空。当发送 FIFO 不再空时自动清零。
1 R 0x1 TFNF

Transmit FIFO Not Full,发送 FIFO 未满

用于指示发送 FIFO 未满。
  • 0:发送 FIFO 已满
  • 1:发送 FIFO 未满。当发送 FIFO 已满时自动清零。
0 R 0x0 BUSY
UART Busy Bit,UART 繁忙位
  • 0:空闲
  • 1:繁忙

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,握手配置
  • 0xA5:DMA wait cycle 模式
  • 0xE5:DMA handshake 模式

0x0A4 UART_HALT

默认值:0x00000000 UART 停止发送寄存器 (Halt TX)
位域 类型 默认值 描述
31:8 - - -
7 R/W 0x0 DMA_PTE_RX
The Sending Of RX_DRQ,发送 RX_DRQ
  • 在 DMA1 模式中,当 RFL 大于或者等于触发深度/接收超时,发送 DRQ。
  • 在 DMA0 模式中,如果 DMA_PTE_RX=1 并且 FIFO 使能,当 RFL 大于触发深度时,发送 DRQ。
  • 在其他情况下,一旦接收数据有效,发送 DRQ。
6 R/W 0x0 PTE
The Sending Of TX_REQ,发送 TX_REQ
  • 在 DMA1 模式(FIFO 使能)中:
    • 如果 PTE 设为 1,当 TFL 小于触发深度时,发送 DMA 请求。
    • 如果 PTE 设为 0,当 FIFO 为空,发送 DMA 请求。当 FIFO 为满时,DMA 请求将停止。
  • 在 DMA0 模式中:
    • 如果 PTE 设为 1 并且 FIFO 使能,当 TFL 小于触发深度时,发送 DMA 请求。
    • 如果 PTE 设为 1 并且 FIFO 未使能,当 THRE 为空时,发送 DMA 请求。
    • 如果 PTE 设为 0,当 FIFO 为空时发送 DMA 请求。
5:3 - - -
2 R/WAC 0x0 CHANGE_UPDATE

更新配置

使用 HALT[1] 更改波特率或者 LCR 配置后,写 1 来更新配置,等待此位自动清 0 来完成更新过程。
  • 0:此位无影响。
  • 1:更新触发,完成更新后自动清零。
1 R/W 0x0 CHCFG_AT_BUSY

繁忙状态更改配置使能

用户可在 UART 繁忙(USB[0] 为 1)时通过此位使能更改 LCR 配置以及波特率。

1:UART 繁忙时使能更改

0 R/W 0x0 HALT_TX

停止发送

此位用于停止传输以进行测试,以便在使能 FIFO 时,主控可以填充发送 FIFO。
  • 0:停止发送未使能
  • 1:停止发送使能
注: 如果 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 控制模式
  • 0:硬件控制模式。DE 信号 (RTS) 在数据发送时通过内部硬件逻辑进行自动控制,发送数据前自动使能 DE 为有效高电平,发送移位寄存器为空且发送 FIFO 为空,则自动切换 DE 为无效低电平。
  • 1:软件控制模式。DE 信号 (RTS) 在数据发送时通过外部软件配置进行手动控制,配置 MCR[1]=0 则 DE 为有效高电平可发送数据,MCR[1]=1 则 DE 为无效低电平可接收数据。
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,则不进行此操作。
  • 1:接收
  • 0:不接收
2 R/W 0x0 RX_AF_ADDR
地址之后接收
  • 1:接收
  • 0:不接收
在 NMM 模式中:
  • 如果此位设为 1,UART 将在接收到一个地址字节之后将所有字节接收到 FIFO 中。
  • 如果设为 0,则不进行此操作。
1:0 R/W 0x0 RS485_SLAVE_MODE_SEL

RS485 从机模式选择

RS485 从机模式:
  • 0:标准多点操作 (NMM)
  • 1:自动地址检测操作 (AAD)
  • 2:保留
  • 3:保留

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
总线空闲查询使能
  • 1:使能总线空闲查询功能。
  • 0:未使能总线空闲查询功能
6 R 0x0 BUS_STATUS
总线状态标志
  • 1:繁忙
  • 0:空闲
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 - - -
4 W 0x0 NOR_ACT_485_2WIRE
  • 0:普通模式
  • 1:UART 2wire 模式(特殊 UART,2 线模式,TX/RX、RTS)
3 W 0x0 Bypass 预取调试
2:0 - - -

0x0FC UART_VERSION

默认值:0x00000100 UART 版本号寄存器 (Version)
位域 类型 默认值 描述
31:8 - - -
7:0 R 0x00000100 UART 版本号寄存器,V1.0