串口的玩法

来自WRTnode Wiki
跳转至: 导航搜索
其他语言:
English • ‎中文(中国大陆)‎

怎么连串口设备

WRTnode1 PIN:
Ttl1.png
串口对应的针脚是圈出的部分。WRTnode1的底板上也已经引出串口的针脚,湿印上“R 、T”,在原生的OpenWrt中作为了内核打印和tty控制台所用。

WRTnode2R 底板针脚:
2RSHLDPINMAP.jpg
WRTnode2R的底板上也已经引出串口的针脚,湿印上“URT0_TX、URT0_RX”,OpenWrt中作为了内核打印和tty控制台所用。湿印上“URT1_TX,URT1_RX”,可以直接接串口设备进行通信。

WRTnode1释放串口

mt7620n仅有一个串口

由于mt7620n只有一个UART lite接口,在原生的OpenWrt中作为了内核打印和tty控制台所用。
而在很多情况下,需要使用串口与外部芯片进行通讯,这时就需要从OpenWrt中释放串口。
其实这个任务只有两个步骤:(我们假定$(TOPDIR)为OpenWrt的编译目录)

关闭串口控制台

将$(TOPDIR)/target/linux/ramips/base-files/etc/inittab文件里的下面一句注释掉

 
::askconsole:/bin/ash --login 
$ vi $(TOPDIR)/target/linux/ramips/base-files/etc/inittab 
::sysinit:/etc/init.d/rcS S boot
::shutdown:/etc/init.d/rcS K shutdown
#::askconsole:/bin/ash --login

关闭部分内核打印

在$(TOPDIR)/package/base-files/files/etc/config/system文件添加以下两句

option 'conloglevel' '1'
option 'kconloglevel' '1'
$ vi $(TOPDIR)/package/base-files/files/etc/config/system
config system
        option 'conloglevel' '1'
        option 'kconloglevel' '1'
        option hostname OpenWrt
        option timezone UTC

config timeserver ntp
        list server     0.openwrt.pool.ntp.org
        list server     1.openwrt.pool.ntp.org
        list server     2.openwrt.pool.ntp.org
        list server     3.openwrt.pool.ntp.org
        option enable_server 0

通过以上两个步骤,就可以关闭OpenWrt中所有的系统串口互动,除系统刚刚启动前十余秒的uboot打印信息和Kernel早期打印信息(关于这个部分的残余打印信息,建议在下位机开发的时候做出冗余)。
以上的方法是在OpenWrt的源码里修改,编译新的固件,将新的固件烧进WRTnode便可释放串口。
由于OpenWrt文件系统的可写性,也可以直接修改WRTnode现有固件里的/etc/inittab和/etc/config/system文件,重启后即可释放串口。
因为WRTnode2系列有两个串口,如果你需要连接一个串口设备通信,就直接使用ttyS1。如果需要两个串口那就需要像WRTnode1那样释放ttyS0。(关闭内核打印和关闭控制台)

串口接gps模块

连接方式

GPS模块 WRTnode串口引脚
VCC VCC
GND GND
TX RX
RX TX

2RLGps.png

打开方式

安装minicom:

$opkg update
$opkg install minicom

WRTnode1 ttyS0 默认波特率是115200
WRTnode2R/2P ttyS0默认波特率是115200;ttyS1默认波特率是9600。
minicom打开/dev/ttyS0(或/dev/ttyS1),查看gps信息。

$minicom -D /dev/ttyS1 -b 9600

Gps.png

修改波特率的工具stty。
安装:

$opkg install coreutils-stty

用法:

$stty -F /dev/ttyS0 raw speed 57600

查看ttyS0的波特率:

$stty -F /dev/ttyS0