《OpenWrt开发笔记》第21章 OpenWrt串口的使用1

21.1硬件原理

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

表1

《OpenWrt开发笔记》第21章 OpenWrt串口的使用1_第1张图片

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

表2

《OpenWrt开发笔记》第21章 OpenWrt串口的使用1_第2张图片

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

表3

《OpenWrt开发笔记》第21章 OpenWrt串口的使用1_第3张图片

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

21.2 OpenWrt 支持串口 2

为了使用开发板的串口 2,必须首先把串口使能,由于我们是使用的 MPRA2 这款路由的配置, 在它的配置上串口被配置成了 GPIO, 用于控制 LEDs, 所以这里需要把它改为串口模式。修改非常简单,只要修改 dts 配置文件就可以,这里就不啰嗦了,直接讲述如何修改串口的配置。
首先修改 target/linux/ramips/dts 目录下的 rt5350.dtsi 配置文件。默认的 rt5350.dtsi 配置文件,是将那个扩展串口状态给禁用了,所以我们看不到扩展串口。这里需要把那行去掉或者将状态改为 okay,详细如下。
《OpenWrt开发笔记》第21章 OpenWrt串口的使用1_第4张图片

《OpenWrt开发笔记》第21章 OpenWrt串口的使用1_第5张图片

rt5350.dtsi 配置文件中除了修改扩展串口状态外,还需要修改设备节点。
因为我们把扩展串口状态使能后,它将在调试串口的前面,扩展串口变为 ttyS0,而调试串口变为 ttyS1,所以这里需要把调试串口的 ttyS0,变为 ttyS1,具体如下。
《OpenWrt开发笔记》第21章 OpenWrt串口的使用1_第6张图片
修改后:
这里写图片描述
这样,rt5350.dtsi 配置文件就改完了,但是扩展串口相应引脚被设置为了 GPIO 模式,怎么样才能变为串口模式了呢?需要修改 MPRA2.dts 这个配置文件, 同样位于 openwrt/trunk/target/linux/ramips/dts 目录下。
把 GPIO 模式去掉,把设置 GPIO 的设置项中 uartf 去掉,详细如下
《OpenWrt开发笔记》第21章 OpenWrt串口的使用1_第7张图片
修改后:
《OpenWrt开发笔记》第21章 OpenWrt串口的使用1_第8张图片

21.3 串口2 的简单测试

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

《OpenWrt开发笔记》第21章 OpenWrt串口的使用1_第9张图片

图1

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

《OpenWrt开发笔记》第21章 OpenWrt串口的使用1_第10张图片

图2

上图所用的软件是博主用VB 编写的串口调试软件,读者朋友随便找个挑调试助手就可以测试串口了,如果没有的话,私信博主,留下邮箱,博主看到后会发给你。

你可能感兴趣的:(《OpenWrt开发笔记》第21章 OpenWrt串口的使用1)