Openwrt开发指南 第21章 OpenWrt串口的使用1

描述

开发环境:

主机:Ubuntu12.04

开发板:RT5350

Openwrt:Openwrt15.05

1 硬件原理

从RT5350的芯片手册上可以得知, RT5350一共有两个串口, 分别为UART Lite、 UART Full,详细定义如下。

表1

OpenWrt

UART Lite 就是我们惯称为的串口 1,作为系统调试串口,通过这个串口,我们可以看到 OpenWrt(Linux)系统的启动信息,并且可以通过该串口来控制开发板。 UART Full 就是我们惯称为的串口 2,我们通常就是用它来做 Wi-Fi 串口,然后用来控制其他串口设备。

表2

OpenWrt

通过上表,我们发现串口 1 是和 GPIO15、16 复用的,而串口 2 是和 GPIO7~14 复用的。如果我们再详细的看芯片手册,我们就会发现,串口 2 其实也是和 I2S 复用的,具体如下。

表3

OpenWrt

通过这张表格,我们就能找出串口 2 对应的管脚了。对于串口,我们其实也只用关系发送(TXD)、接受(RXD)和地(GND)三个引脚。因此,对于串口 2,也就是 I2SSDI、I2SWS、GND 三个引脚了。

2 OpenWrt 支持串口 2

为了使用开发板的串口 2,必须首先把串口使能,由于我们是使用的 MPRA2 这款路由的配置, 在它的配置上串口被配置成了 GPIO, 用于控制 LEDs, 所以这里需要把它改为串口模式。修改非常简单,只要修改 dts 配置文件就可以,这里就不啰嗦了,直接讲述如何修改串口的配置。

首先修改 target/linux/ramips/dts 目录下的 rt5350.dtsi 配置文件。默认的 rt5350.dtsi 配置文件,是将那个扩展串口状态给禁用了,所以我们看不到扩展串口。这里需要把那行去掉或者将状态改为 okay,详细如下。

OpenWrt

rt5350.dtsi 配置文件中除了修改扩展串口状态外,还需要修改设备节点。

因为我们把扩展串口状态使能后,它将在调试串口的前面,扩展串口变为 ttyS0,而调试串口变为 ttyS1,所以这里需要把调试串口的 ttyS0,变为 ttyS1,具体如下。

OpenWrt

修改后:

OpenWrt

这样,rt5350.dtsi 配置文件就改完了,但是扩展串口相应引脚被设置为了 GPIO 模式,怎么样才能变为串口模式了呢?需要修改 MPRA2.dts 这个配置文件,同样位于源码target/linux/ramips/dts 目录下。

把 GPIO 模式去掉,把设置 GPIO 的设置项中 uartf 去掉,详细如下

OpenWrt

修改后:

OpenWrt

3 串口2 的简单测试

注意:开发板上必须进行如下短接。

OpenWrt

图1

经过前面的努力,扩展串口 2 就可以使用了,扩展串口 2 的名字为 ttyS0,我们可以通过 echo hello f403tech > /dev/ttyS0 这个命令进行测试,如果对方接收到 hello f403tech这个字符串,那说明串口 2 已经可以正常使用了。注意,此时串口 2 默认的波特率是 9600。

OpenWrt

OpenWrt

图2
  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分