I.MX6U芯片的UART

I.MX6U 一共有 8 个 UART,其主要特性如下:

1、兼容 TIA/EIA-232F 标准,速度最高可到 5Mbit/S。
2、支持串行 IR 接口,兼容 IrDA,最高可到 115.2Kbit/s。
3、支持 9 位或者多节点模式(RS-485)。
4、 1 或 2 位停止位。
5、可编程的奇偶校验(奇校验和偶校验)。
6、自动波特率检测(最高支持 115.2Kbit/S)。

UART 的时钟源是由寄存器 CCM_CSCDR1 的 UART_CLK_SEL(bit)位来选择的,当为 0 的时候 UART 的时钟源为 pll3_80m(80MHz),如果为 1 的时候 UART 的时钟源为 osc_clk(24M),一般选择 pll3_80m 作为 UART 的时钟源。
寄存器 CCM_CSCDR1 的UART_CLK_PODF(bit5:0)位是 UART 的时钟分频值,可设置 0~63,分别对应 1~64 分频,一般设置为 1 分频,因此最终进入 UART 的时钟为 80MHz。接下来看一下 UART 几个重要的寄存器

第一个就是 UART 的控制寄存器 1,即UARTx_UCR1(x=1~8)。

在这里插入图片描述
寄存器 UARTx_UCR1 用到的重要位如下:
ADBR(bit14):自动波特率检测使能位,为 0 的时候关闭自动波特率检测,为 1 的时候使能自动波特率检测。
UARTEN(bit0): UART 使能位,为 0 的时候关闭 UART,为 1 的时候使能 UART。

UARTx_UCR2 寄存器

在这里插入图片描述

寄存器 UARTx_UCR2 用到的重要位如下:
IRTS(bit14):为 0 的时候使用 RTS 引脚功能,为 1 的时候忽略 RTS 引脚。
PREN(bit8):奇偶校验使能位,为 0 的时候关闭奇偶校验,为 1 的时候使能奇偶校验。
PROE(bit7):奇偶校验模式选择位,开启奇偶校验以后此位如果为 0 的话就使用偶校验,此位为 1 的话就使能奇校验。
STOP(bit6):停止位数量,为 0 的话 1 位停止位,为 1 的话 2 位停止位。
WS(bit5):数据位长度,为 0 的时候选择 7 位数据位,为 1 的时候选择 8 位数据位。
TXEN(bit2):发送使能位,为 0 的时候关闭 UART 的发送功能,为 1 的时候打开 UART的发送功能。
RXEN(bit1):接收使能位,为 0 的时候关闭 UART 的接收功能,为 1 的时候打开 UART的接收功能。
SRST(bit0):软件复位,为 0 的是时候软件复位 UART,为 1 的时候表示复位完成。复位完成以后此位会自动置 1,表示复位完成。此位只能写 0,写 1 会被忽略掉。

UARTx_UCR3 寄存器

在这里插入图片描述
寄存器 UARTx_UCR3 中的位 RXDMUXSEL(bit2),这个位应该始终为 1
在这里插入图片描述

uart波特率选择

在这里插入图片描述

在这里插入图片描述在这里插入图片描述
通过这三个寄存器可以设置 UART 的波特率,波特率的计算公式如下:
在这里插入图片描述
Ref Freq:经过分频以后进入 UART 的最终时钟频率。
UBMR:寄存器 UARTx_UBMR 中的值。
UBIR:寄存器 UARTx_UBIR 中的值。
通过 UARTx_UFCR 的 RFDIV 位、 UARTx_UBMR 和 UARTx_UBIR 这三者的配合即可得到我们想要的波特率。比如现在要设置 UART 波特率为 115200,那么可以设置 RFDIV 为5(0b101),也就是 1 分频,因此 Ref Freq=80MHz。设置 UBIR=71, UBMR=3124,根据上面的
公式可以得到:
在这里插入图片描述

UARTx_URXD 和 UARTx_UTXD

这两个寄存器分别为 UART 的接收和发送数据寄存器,这两个寄存器的低八位为接收到的和要发送的数据。
UARTx_URXD 即可获取到接收到的数据,如果要通过 UART 发送数据,直接将数据写入到寄存器 UARTx_UTXD 即可。

UARTx_USR2

在这里插入图片描述
TXDC(bit3):发送完成标志位,为 1 的时候表明发送缓冲(TxFIFO)和移位寄存器为空,也就是发送完成,向 TxFIFO 写入数据此位就会自动清零。
RDR(bit0):数据接收标志位,为 1 的时候表明至少接收到一个数据,从寄存器UARTx_URXD 读取数据接收到的数据以后此为会自动清零。

i.MX6U SPL和u-boot是嵌入式系统中的两个重要组件,用于启动ARM架构的i.MX6U处理器。SPL(Secondary Program Loader)是首先加载到处理器的一段代码,其主要功能是初始化内存控制器和一些必要的外设,然后通过加载u-boot来完成系统的启动。 SPL可以理解为一个小型的操作系统,其大小通常在几十到几百KB之间,由于其能力有限,因此只能完成初始化和加载u-boot的任务。SPL会配置处理器的时钟、内存和外设等硬件资源,以便后续的操作系统能够正常运行。在i.MX6U处理器上,SPL还可以提供一些额外的功能,如从网络或外部存储设备加载u-boot。 u-boot是一个开源的引导加载器,在ARM嵌入式系统中广泛应用。它负责加载操作系统内核和文件系统,并提供丰富的命令行接口,用于系统的配置和调试。u-boot可以通过串口、网络和外部存储设备等多种方式进行通信,从而实现系统的启动和调试。 i.MX6U SPL和u-boot常常一起使用,以实现系统的启动和初始化。首先,SPL会被加载到处理器的内存中,并执行初始化操作和加载u-boot。接下来,u-boot会被加载到内存中,并根据配置文件的设置启动操作系统或加载文件系统。 总结来说,i.MX6U SPL和u-boot是i.MX6U处理器启动过程中不可或缺的两个组件,其中SPL负责初始化和加载u-boot,而u-boot则负责加载操作系统和提供系统配置和调试的功能。这两个组件的协同工作确保了i.MX6U处理器能够正常启动和运行。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值