openwrt的串口使用

1.1:硬件原理

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



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



通过上面的表格,我们发现串口1是和GPIO15,16复用的,而串口2是和GPIO7~14复用的。如果我们再详细看芯片手册,我们就会发现,串口2起始也是和I2S复用的:



1.2为了使用开发板的串口2,必须首先把串口使能,由于使用的是MPRA2这款路由的配置,在他的配置上串口被配置成了GPIO,用于控制LEDs,所以这里需要改为串口模式。修改非常简单,只需要修改dts的配置文件就可以了。首先修改 $<openwrt_dir>/target/linux/ramips/dts 目录下的RT5350.dtsi配置文件,是将那个扩展口给禁用了,所以我们看不到扩展串口。这里需要把那行去掉或者将状态改为“okay”;下面附上段源码:

 uart@500 {
 81                         compatible = "ralink,rt5350-uart", "ralink,rt2880-uart", "ns16550a";
 82                         reg = <0x500 0x100>;
 83 
 84                         resets = <&rstctrl 12>;
 85                         reset-names = "uart";
 86 
 87                         interrupt-parent = <&intc>;
 88                         interrupts = <5>;
 89 
 90                         reg-shift = <2>;
 91 
 92                         pinctrl-names = "default";
 93                         pinctrl-0 = <&uartf_pins>;
 94 
 95                         status = "disabled";
 96                 };
修改后为:

 uart@500 {
 81                         compatible = "ralink,rt5350-uart", "ralink,rt2880-uart", "ns16550a";
 82                         reg = <0x500 0x100>;
 83 
 84                         resets = <&rstctrl 12>;
 85                         reset-names = "uart";
 86 
 87                         interrupt-parent = <&intc>;
 88                         interrupts = <5>;
 89 
 90                         reg-shift = <2>;
 91 
 92                         pinctrl-names = "default";
 93                         pinctrl-0 = <&uartf_pins>;
 94 
 95                         status = "okay";
 96                 };

rt5350.dtsi配置文件中除了修改扩展口状态外,还需要修改设备节点。因为我们把扩展串口状态使能以后,它将在调试串口的前面,扩展串口变为ttyS0,而调试串口变为ttyS1,这里需要把调试串口的ttyS0,变为ttyS1,具体如下:

chosen {
 13                 bootargs = "console=ttyS0,57600";
 14         };

上面的ttyS0,改为ttyS1 。

这样,配置文件就修改完了,但是扩展口相应引脚被设置为了GPIO模式,怎样才可以设置成为串口模式呢?需要修改MPRA2.dts这个配置文件,同样位于$<opwrt_dir>/target/linux/ramips/dts 目录下。把GPIO的设置项中uartf这个给去处掉,详细如下图:



1.3:串口的简单调试:
这样子串口基本上就可以使用了。注意,此时串口2的默认波特率是9600.


下面放上测试结果:

(没有板子,别人的图)命令如下:echo helllo >/dev/ttyS0



在没有你的世界里,爱你,叶铮

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值