一. 串口
本章我们就来学习如何驱动 I.MX6U 上的串口,并使用串口和电脑进行通信。
串行接口指的是数据一个一个的顺序传输,通信线路简单。
UART 作为串口的一种,其工作原理也是将数据一位一位的进行传输,发送和接收各用一
条线,因此,通过 UART 接口与外界相连最少只需要三条线:TXD(发送)、RXD(接收)和 GND(地
线)。
UART 电平标准: UART 一般的接口电平有 TTL 和 RS-232。
TTL电平:一般开发板上都有 TXD 和 RXD 这样的引脚, 这些引脚低电平表示逻辑 0,高电平表示逻辑 1,这个就是 TTL 电平。
RS-232电平:RS-232 采用差分线,-3 ~ -15V 表示逻辑 1,+3 ~ +15V 表示逻辑 0。
二. IMX6ULL的串口
I.MX6ULL 一共有 8 个 UART。I.MX6U 的 UART 功能很多,但是我们本章就只用到其最基本的串口功能。
串口相关寄存器
UARTx_URXD 寄存器:
UART_URXD 寄存器保存着串口接收到的数据。
UART_UTXD寄存器:
UART_UTXD寄存器为发送数据寄存器。如果需要通过串口发送数据,只需要将数据写入到UART_UTXD寄存器里面。
UART_UCR1~UCR4几个寄存器:UART_UCR1~UCR4都是串口的控制寄存器。
UART_UCR1寄存器:
bit0:UART的使能位,为1的时候使能UART。
bit14:自动检测波特率使能位,为1的时候使能波特率自动检测。
UART_UCR2寄存器:
bit0:软件复位位。为 0 时复位 UART。
Bit1:UART接收使能,需要配置为 1。
Bit2:发送使能,需要设置为 1。
Bit5:设置数据位长度,0 表示 7 位数据位,1 表示 8 位数据位。
Bit6:设置停止位,0 表示 1 位停止位,1 表示 2 位。
Bit7:奇偶校验位,为 0 是偶校验,为1 是奇校验。
Bit8:校验使能位,为 0 为关闭校验。
UART_UCR3寄存器:
UART_UCR3寄存器的 bit2 必须为1!!!
UART_UFCR寄存器:
bit9~7:设置分频值,UART的时钟源 PLL3/6=480/6=80MHz。
UART 串口的时钟源可以通过 "第18章节" 中,时钟树图可以看出。
CSCDR1寄存器的 UART_CLK_SEL位设置UART的时钟源,为 0 时则 UART时钟源为 80MHz
,为 1时 UART 时钟源为 24Mhz 晶振。
CSCDR1寄存器的UART_CLK_PODF位控制分频,一般设置为1分频,因此UART_CLK_ROOT=80MHZ
UART_UFCR、UART_UBIR和UART_UBMR:
UART_UFCR、UART_UBIR和UART_UBMR这三个寄存器决定了串口波特率。波特率计算公式如下:
UART_USR2寄存器:
bit0:为1时,表示有数据可以读取。
bit3:为1时,表示数据发送完成。
本文简单介绍了 IMX6ULL的串口涉及的寄存器,下一篇介绍串口的具体使用方法。