uart 使用
板载资源介绍
aio-3128c 开发板内置 3 路 uart,分别为 uart0,uart1,uart2。
uart0 用于蓝牙数据传输,如果要使用 uart0,必须关掉蓝牙,才可以使用扩展槽上的 uart0 针脚。
uart1, 因为存在以下复用:
spi_txd/uart1_tx
spi_rxd/uart1_rx
spi_csn0/uart1_rts
aio-3128c 使用spi桥接/扩展4个增强功能串口(uart)的功能,分别为uart1,rs232(上),rs232(下),rs485功能,其中rs232(下)口硬件可做修改为ttl功能。 每个uart都拥有256字节的fifo缓冲区,用于数据接收和发送。
uart2 一般用做调试串口,但同样存在复用,也就是说 tf 卡与调试串口不可以同时使用:
sdmmc_d0/uart2_tx
sdmmc_d1/uart2_rx
uart2 有 32 字节的 fifo 收发缓冲区,uart0 则要有双 64 字节的 fifo 用作蓝牙数据收发。所有 uart 均支持 5 位、6 位、7 位、8 位数据收发和 dma 操作。
配置 dts 节点
文件 kernel/arch/arm/boot/dts/aio-3128c.dtsi 中已经有 spi转uart 相关节点定义,如下所示:
&spi0 { status = okay; max-freq = ; dac0: dh2228@00 { status = disabled; compatible = rohm,dh2228fv; reg = ; spi-max-frequency = ; }; spi_wk2xxx: spi_wk2xxx@00{ status = okay; compatible = firefly,spi-wk2xxx; reg = ; spi-max-frequency = ; reset-gpio = ; irq-gpio = ; cs-gpio = ; pwr-en-gpio = ; }; };
调试方法
rs485:/dev/ttyswk0 rs232(上):/dev/ttyswk1 rs232(下):/dev/ttyswk2 uart1:/dev/ttyswk3
配置 uart0
用户只需在 kernel/arch/arm/boot/dts/aio-3128c.dts 文件中打开 uart0 ,并关掉蓝牙,如下所示:
&uart0 { status = okay; dma-names = !tx, !rx; pinctrl-0 = ;}; wireless-bluetooth { compatible = bluetooth-platdata; ... status = disabled; }; };
编译并烧写内核
将串口驱动编译到内核中,在 kernel 目录下执行如下命令:
make aio-3128c_defconfig make aio-3128c.img -j4
把 kernel 目录下生成的 kernel.img 和 resource.img 烧录到开发板中即可。
测试串口通讯
配置好串口后,用户可以通过主机的 usb 转串口适配器向开发板的串口收发数据,以 uart0 为例,步骤如下:
连接硬件
将开发板 uart0 的 tx、rx、gnd 引脚分别和主机串口适配器的 rx、tx、gnd 引脚相连。注意:如果是使用 firefly 的串口适配器,则是 tx 对 tx,rx 对 rx 连接。
打开主机的串口终端
在终端打开 kermit,并设置波特率:
$ sudo kermit c-kermit> set line /dev/ttyusb0 c-kermit> set speed 9600 c-kermit> set flow-control none c-kermit> connect
/dev/ttyusb0 为 usb 转串口适配器的设备文件
uart0 的波特率默认为 9600
发送数据
uart0 的设备文件为 /dev/ttys0。在设备上运行下列命令:
echo firefly uart test... > /dev/ttys0
主机中的串口终端即可接收到字符串“firefly uart test…”
接收数据
首先在设备上运行下列命令:
cat /dev/ttys0
然后在主机的串口终端输入字符串 “firefly uart test…”,设备端即可见到相同的字符串。要改变 uart0 的波特率,例如 115200,可以运行以下命令:
stty -f /dev/ttys0 115200
Glenair高速微型压接矩形连接器
会议系统选择方案步骤
浅析从寄存器到用户态与内核态
通信系统的基本三要素
直流发电机是谁发明的 直流发电机发出的电是直流吗
微雪电子AIO-3128C主板UART使用介绍
IO模块位宽数越高越好吗?
医用穿戴设备有哪些
PLC控制系统的基本设计步骤
Imagination公司则带来全新的B系列
关于无线充电技术的现状和未来发展前景分析和介绍
模电电路图及电路分析
led恒流驱动电源维修
液位传感器的特点是什么,它有哪些应用领域
科学家们已经利用量子传送来远距离发送信息,而且保真度比以前更高
必定式编码器和直线光栅尺的应用
DAC基础知识:静态技术规格
警博会“黑科技”:如何有效反制无人机?
CAN FD协议及其与CAN2.0的异同
AMD Vega显卡功耗参数曝光:375W电老虎!27日开卖