UART
Rockchip 平台 UART 基于16550A 串口标准,拓展引脚 UART 信息如下
| 主板 | SOC | 平台 | 拓展引脚 |
|---|---|---|---|
| K1 | RK3568 | Rockchip | UART X4 |
| K1B | RK3568 | Rockchip | UART X2 |
| K3 | RK3562 | Rockchip | UART X3 |
| K7 | RK3576 | Rockchip | UART X5 |
| K7C | RK3576 | Rockchip | UART X4 |
| K8 | RK3588 | Rockchip | UART X5 |
Allwinner 平台 UART 兼容 16550 UARTs,拓展引脚 UART 信息如下
| 主板 | SOC | 平台 | 拓展引脚 |
|---|---|---|---|
| K2B | H618 | Allwinner | UART X2 |
| K2C | H618 | Allwinner | UART X2 |
| K4B | T113 | Allwinner | UART X3 |
| K5C | A133 | Allwinner | UART X1 |
相关术语介绍
| 术语 | 说明 |
|---|---|
| UART | Universal Asynchronous Receiver/Transmitter |
| Console | 控制台,Linux 内核中用于输出调试信息的 TTY 设备 |
| TTY | TeleType/TeleTypewriters ,原指电传打字机,现在泛指和计算机串行端口连接的终端设备。TTY 设备还包括虚拟控制台,串口以及伪终端设备 |
| /dev/ttyS | 普通串口设备名称 |
| /dev/ttySA | Allwinner 平台串口名称 |
| /dev/ttyUSB | USB 转串口设备 |
硬件连接
UART 通信最少需要 3 根线即可工作(全双工通信):
-
TXD(Transmit Data):发送数据端,设备通过此线向外发送数据。
-
RXD(Receive Data):接收数据端,设备通过此线接收外部数据。
-
GND(Ground):地线,用于保证两个设备的电平参考一致(共地)。
两个设备之间的 UART 需要交叉连接 RX TX,GND 直连,VCC 直连(可选)。

DTS 配置
使能 UART 设备 0 为例,dts 中添加以下节点:
驱动路径
Rockchip 平台 UART 使用 8250 串口驱动:
drivers/tty/serial/8250/8250_core.c
drivers/tty/serial/8250/8250_dw.c
drivers/tty/serial/8250/8250_dma.c
drivers/tty/serial/8250/8250_port.c
drivers/tty/serial/8250/8250_early.c
Allwinner 平台 UART 使用专属串口驱动:
longan/kernel/linux-4.9/drivers/tty/serial/sunxi-uart.c
longan/kernel/linux-4.9/drivers/tty/serial/serial_core.c
stty 测试
主板配置 UART 设备 5,输入输出波特率为 115200 ,8 位数据位:
向 UART 设备 5 发送数据 kickpi :
抓取 UART 设备 5 接收到的数据:
硬件使用示例
以 K7 主板为例,介绍如何连接主板拓展引脚上 UART 引脚。
1. 查看主板拓展引脚图以及对应实物位置。
Note
由图可知 K7 配备五路 UART 和一路 DEBUG UART,UART8 位于引脚 17 和引脚 19。 DEBUG UART 仅用于 DEBUG 调试,不用于其他功能。

2. 查看拓展引脚电压图,可知 UART8 的电源域为 1.8V。

3. 连接相同电源域的设备。
Warning
UART 连接,TX RX 电源域必须一致!
4. UART8 电源域为 1.8V,使用两块主板的 UART8 进行连接,RX 和 TX 交叉连接,GND 直连。
