3.2.2 安装 USB 串口模块驱动
接好 micro usb 数据线后,Windows 会自动安装驱动(安装可能比较慢,等一分钟左右)。打开电脑的
“设备管理器”,在“端口 (COM 和 LPT)”项下,可以看到如下图中的“(COM21)”。这里的“COM21”可能与
你电脑上的不一样,记住你电脑显示的数字。
如果电脑没有显示出端口号,就需要手动安装驱动,从驱动精灵官网(www.drivergenius.com)下
载一个驱动精灵,安装、运行、检测,会自动安装上串口驱动。
3.2.3 使用 MobaXterm 软件打开串口
打开 MobaXterm,点击左上角的“Session”,在弹出的界面选中“Serial”,如下图所示选择端口号(前
面设备管理器显示的端口号 COM21)、波特率(Speed 115200)、流控(Flow Control: none),最后点击“OK”
即可。步骤如下图所示。
注意:流控(Flow Control)一定要选择 none,否则你将无法在 MobaXterm 中向串口输入数据。
随后显示一个黑色的窗口, 此时打开板子的电源开关,将收到板子串口发过来的数据,如下图所示。
3.2.4 开发板登录名是 root,无需密码
在串口看到“imx6ull login:”时,输入“root”并回车即可,如下图所示:
第四章 开发板板载功能测试
本章介绍如何测试板载功能,开发板各个功能部件所在位置以及名称如下图所示。本章所有的功能测试
不能在 QT 上进行测试(板载 QT 功能不完善),需要串口执行各种命令,所以需要你先练习一下 Linux 命令。
4.1 有线网卡接口测试
此节演示在串口终端下如何设置开发板的 ip 地址,测试网络的连通性。
注意:既然是在开发板和电脑之间测试网络,那双方需要有网络连接。两者之间需要有一个路由器,开
发板通过网线与路由器连接。而电脑与路由器之间,可以使用网线连接,也可以使用 WIFI 连接。
注意:如果要测试全功能版的 2 个网卡,先测一个网卡,然后把它的网线取下来;再接网线到第 2 个网
卡并测试。
1) 通过 ifconfig 命令查看 ip 地址:
通过上图可知,开发板已经自动获得 IP 地址 192.168.1.116(你的开发板自动获取的 IP 可能不一样)。
如果开发板未能获取 IP,则可以使用 udhcpc 命令再次尝试获取 IP。
如果通过 udhcpc 命令无法获得 IP,也可以使用 ifconfig 命令强制设置 IP:
如下图使用 ifconfig 命令强制指定 IP 地址为 192.168.1.123
2) 网络连通性测试:
在开发板上执行如下命令,如果有数据返回则表示开发板跟互联网是连通的(前提是你的路由器是可以
上网的):
[root@100ask_imx6ull:~]# ping www.baidu.com
当然,很多时候开发板不能 ping 通互联网,这也没关系,只要能 ping 通 Windows 或是 Windows 能 ping
通开发板就可以(Windows 开了防火墙时,开发板无法 ping 通 windows)。
比如我们的 Windows IP 地址为 192.168.1.100,此时可以通过 ping 命令测试两者是否可以相互通信:
3) 使能网卡一接口
全功能版有 2 个网口:eth0、eth1。使用 ifconfig -a 查看都有那些网卡设备:
[root@100ask_imx6ull:~]# ifconfig -a
把网线接入 eth1 网口,最好把 eth0 网口的网线取下。执行以下命令启用 eth1 网卡设备,并使用 udhcpc
自动获取 ip 地址:
[root@100ask_imx6ull:~]# ifconfig eth1 up
[root@100ask_imx6ull:~]# udhcpc -i eth1
参考链接:http://wiki.100ask.org/Category:Netdev
4.2 USB Host 接口测试
此节演示在终端下如何在 USB Host 接口上使用 usb 存储设备。
注意:需要准备一个 USB 设备,比如 U 盘、USB 蓝牙模块、usb 网卡或者 usb 摄像头等。
下面使用一个 16G 的 U 盘作为例子,插到任意一个 USB Host 接口,会打印出如下设备信息:
通过打印的设备信息可知,系统为该 usb 存储设备创建的设备节点为 /dev/sda。一般来说/dev/sda 对
应整个 U 盘,/dev/sda1 对应该 U 盘的第 1 个分区,/dev/sda2 对应第 2 个分区。
有些 U 盘没有划分分区,它只有一个设备节点/dev/sda,而没有/dev/sda1 等节点。对于这种情况,
/dev/sda 既代表整个 U 盘,也代表第 1 个分区。
我们可以挂载某个分区,挂载之前要先通过 fdisk 命令获取分区类型,如下所示:
从上图可知/dev/sda1 是 FAT16 格式,挂载时可以指定类型为“vfat”:
注意:暂不支持分区类型为 NTFSG 的 U 盘。
测试完以后,通过 umount 卸载/mnt,才可拔下 usb 设备:
[root@100ask_imx6ull:~]# umount /mnt
4.3 OTG 接口测试
此节演示如何测试 OTG 接口的两种模式,分别是 device 模式和 host 模式。
注意:需要准备一个 OTG 转接线(开发板清单中不配)、micro usb 数据线(开发板清单里配有)。
4.3.1 otg device 模式测试
开发板作为 USB 从设备,可以接到电脑上让电脑识别出它来。
注意:使用 SD/TF 卡启动时,下列命令中设备名为/dev/mmcblk0p1;使用 EMMC 启动时,是/dev/mmcblk1p1。
先执行以下命令:
[root@100ask_imx6ull:~]# mkfs.vfat /dev/mmcblk1p1
[root@100ask_imx6ull:~]# modprobe g_mass_storage file=/dev/mmcblk1p1 removable=1
然后使用 micro usb 线连接开发板的 USB OTG 口和电脑,如下图所示:
此时在电脑的设备管理器中可以看到一个名为 linux File-Stor Gadget USB Device 的磁盘设备,在
windows 资源管理器中也可以看到有新的可移动设备盘符弹出:
测试完成后,在终端下执行“rmmod g_mass_storage ”卸载该模块驱动:
[root@100ask_imx6ull:~]# rmmod g_mass_storage
4.3.2 otg host 模式测试
开发板作为 usb 主设备,其他 USB 设备通过 otg 转接线插入开发板,开发板即可识别出这些 USB 外设
备。
下图是把 U 盘通过 otg 转接线插入开发板后,在串口打印的信息:
通过打印的设备信息可知,系统为该 usb 存储设备创建的设备节点为 /dev/sda。一般来说/dev/sda 对
应整个 U 盘,/dev/sda1 对应该 U 盘的第 1 个分区,/dev/sda2 对应第 2 个分区。
有些 U 盘没有划分分区,它只有一个设备节点/dev/sda,而没有/dev/sda1 等节点。对于这种情况,
/dev/sda 既代表整个 U 盘,也代表第 1 个分区。
我们可以挂载某个分区,挂载之前要先通过 fdisk 命令获取分区类型,如下所示:
从上图可知/dev/sda1 是 FAT16 格式,挂载是可以指定类型为“vfat”:
测试完以后,通过 umount 卸载/mnt,才可拔下 usb 设备:
[root@100ask_imx6ull:~]# umount /mnt
4.4 耳机接口测试
此节演示使用三段式耳机在 100ask_imx6ull 开发板上录制声音、播放音频。
注意:mini nand 版没有耳机接口。
注意: 需要准备一个带麦克风的三段式耳机,如下图所示:
1) 录制音频:
将耳机插入开发板耳机孔,使用如下命令进行录制(执行命令后,对着麦克风说话):
[root@100ask_imx6ull:~]# arecord -v --format=cd --device=plughw:0,0 test.wav
参数讲解:
⚫ --format=cd :设置格式为 16 bit little endian, 44100, stereo
⚫ test.wav :指定录音文件的名称以及格式。其中 test 是文件名称,wav 是音频格式。支持的格式有
wav、raw 和 au 等。
2) 播放音频:
将耳机插入开发板耳机孔,使用 aplay 进行播放音频文件:
[root@100ask_imx6ull:~]# aplay -v --format=cd --device=plughw:0,0
test.wav
参数讲解:
⚫ --format=cd :设置格式为 16 bit little endian, 44100, stereo
⚫ test.wav :指定录音文件的名称以及格式。其中 test 是文件名称,wav 是音频格式。支持的格式有
wav、raw 和 au 等。
注意:录音后再播放所录得的音频文件,只有一边耳朵有声音,因为只有一个麦克采集单声道数据。
还可以通过 ssh 登录开发板,将电脑中的 wav 格式的音频上传到开发板,再用 aplay 进行播放。
执行以下命令可以在 2 只耳朵听到声音:
speaker-test -t wav -c 2 -D plughw:0,0100
4.5 LCD 显示测试
此节演示通过 fb-test 测试程序让 lcd 显示红绿蓝白 4 中颜色,用以观察 lcd 的显示效果。
1) lcd 显示红色:
[root@imx6ull:~]# fb-test -r
fb-test 1.1.0 (rosetta)
fb res 1024x600 virtual 1024x600, line_len 4096, bpp 32
2) lcd 显示多种颜色:
[root@imx6ull:~]# fb-test
fb-test 1.1.0 (rosetta)
fb res 1024x600 virtual 1024x600, line_len 4096, bpp 32
4.6 触摸屏测试
触摸屏能点击的话,就表示它没问题。另外,电容屏不需要较准。如果你就是想走一遍,请按下面方法:
a. 得先把 GUI 去掉,在开发板上执行:
[root@100ask_imx6ull:~]# mv /etc/init.d/S07hmi /root
[root@100ask_imx6ull:~]# reboot
b. 重启后执行:
[root@100ask_imx6ull:~]# export TSLIB_TSDEVICE=/dev/input/event1
[root@100ask_imx6ull:~]# export TSLIB_CONFFILE=/etc/ts.conf
[root@100ask_imx6ull:~]# export TSLIB_CALIBFILE=/etc/pointercal
[root@100ask_imx6ull:~]# export TSLIB_PLUGINDIR=/usr/lib/ts
[root@100ask_imx6ull:~]# export TSLIB_CONSOLEDEVICE=none
[root@100ask_imx6ull:~]# export QT_QPA_FB_TSLIB=1
[root@100ask_imx6ull:~]# export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event1
[root@100ask_imx6ull:~]# ts_test_mt
ts_test_mt 用来测试电容触摸屏,可以在屏幕上点击、画线,如下图所示:
注意:暂时不支持多点触摸,以后录到电容屏驱动时再改进驱动程序。
c. 想恢复 GUI:
[root@100ask_imx6ull:~]# mv /root/S07hmi /etc/init.d/
[root@100ask_imx6ull:~]# reboot
4.7 屏幕背光调节
此节演示通过操作 LCD 在/sys 目录下的对应文件,以实现查询、调节背光亮度。
背光亮度的设置范围为 0~8,0 表示最暗,8 表示最亮。
先通过 cat 命令查看当前背光亮度等级:
[root@100ask_imx6ull:~]# cat /sys/class/backlight/backlight/brightness
最后设置背光亮度值为 1,同时可以观察屏幕背光亮度是否有变化:
[root@100ask_imx6ull:~]# echo 1 > /sys/class/backlight/backlight/brightness
4.8 RTC 测试
注意:mini nand 版没有 RTC 电池接口,可以进行 RTC 测试,但是断电重启后时间无法保存。
此节演示通过使用 date 和 hwclock 命令设置系统时间、硬件时间,并测试当操作系统重启后,系统时
钟与硬件时间是否同步。
一般的板子都会有一个名为 RTC(实时时钟)的硬件,RTC 使用电池模块来供电,在系统关闭时用来维持
时钟。RTC 维持的时间,被称为硬件时间。
下图显示的是电池模块的安装位置,注意:我们没有提供 RTC 模块,需要的话自行购买(淘宝搜“1.25
bios 电池”);不装 RTC 电池也可以做实验,但是断电重启后时间无法保存。
Linux 系统启动之后,它会自己维持时间,这个时间被称为系统时间。系统时间的初始值来源有二:
① 如果没有 RTC,系统时间初始值为 1970 年 1 月 1 日 0 点 0 分 0 秒
② 如果有 RTC,Linux 启动后,系统时间初始值从 RTC 读取
在实际使用过程中,要注意系统时间、硬件时间的同步问题:
① 使用 date 命令查看、设置系统时间,在设置系统时间后,要使用“hwclock -w” 命令同步到 RTC;
② 使用 hwclock 查看、设置硬件时间,在设置硬件时间后,要使用“hwclock -s”命令同步到系统时间。
以下命令是设置系统时间、并同步到 RTC:
[root@100ask_imx6ull:~]# date -s "2020-01-10 12:00:00"
[root@100ask_imx6ull:~]# hwclock -w
一般不直接设置硬件时间,要设置硬件时间时,先使用 date 设置系统时间,再使用“hwclock -w”同
步到 RTC 硬件。
你使用 date、hwclock 命令设置好时间后,可以关闭开发板并等待一会后重启,再用 date 命令查看时
间是否正常。
对 RTC 硬件的操作使用 hwclock 命令,常见用法如下:
⚫ hwclock -r :显示硬件时钟与日期
⚫ hwclock -s :将系统时钟调整为与目前的硬件时钟一致。
⚫ hwclock -w :将硬件时钟调整为与目前的系统时钟一致。
下面是一个示例,读取硬件时间:
4.9 无线网卡设备测试
注意:mini nand 版的 WIFI 网卡尚未调通。
1) 检查 WLAN 接口
查看所有网络设备
[root@100ask_imx6ull:~]# ifconfig -a
2)
启用 wlan0 无线网络设备
[root@100ask_imx6ull:~]# ifconfig wlan0 up
3) 扫描周围网络设备
[root@100ask_imx6ull:~]# iw dev wlan0 scan |grep SSID
4) 配置网络连接参数
假设我们连接到 SSID 为 Tplink 的 wifi 设备,已知加密方式为 WPA,密码为 12345678,如下设置:
[root@100ask_imx6ull:~]# wpa_passphrase Tplink 12345678 >> /etc/wpa_supplicant.conf
注意:如果没有无线路由器,你也可以用手机开启热点,效果一样;但是请不要用苹果手机,否则连不上。
注意:如果之前已经配置过网络连接参数,请先删除配置文件 wpa_supplicant.conf,再重复上述操作。
注意:提供热点的路由器或手机必须能上网,否则开发连上了热点也无法上网。
5) 连接 wifi 设备
[root@100ask_imx6ull:~]# wpa_supplicant -B -iwlan0 -c /etc/wpa_supplicant.conf
6) 查看连接状态
[root@100ask_imx6ull:~]# iw wlan0 link
7) 为 wlan0 获取 ip 地址
[root@100ask_imx6ull:~]# udhcpc -i wlan0
8) 测试 wlan0 是否可以上网
[root@100ask_imx6ull:~]# ping -I wlan0 www.baidu.com
参考资料 http://wiki.100ask.org/How_to_setup_wifi_connection
4.10 RS485 测试
注意:mini nand 版没有 RS485 接口。
此节演示使用 rs485_test 程序测试 rs485 接口。
注意:rs485 通信时需要 2 个 rs485 设备,使用 3.5
15EDG 5P 插拔式接线端子进行连接测试,以下
测试是通过两块开发板进行测试,背面标有丝印 A B 接口位置示意图,默认配置不含接线端子,请自行购
买连接测试。
1) 接收端:
[root@100ask_imx6ull:~]# echo 128 > /sys/class/gpio/export
[root@100ask_imx6ull:~]# echo out > /sys/class/gpio/gpio128/direction
[root@100ask_imx6ull:~]# echo 0 > /sys/class/gpio/gpio128/value
[root@100ask_imx6ull:~]# rs485_test -d /dev/ttymxc2 -b 115200
2) 发送端:
[root@100ask_imx6ull:~]# echo 128 > /sys/class/gpio/export
[root@100ask_imx6ull:~]# echo out > /sys/class/gpio/gpio128/direction
[root@100ask_imx6ull:~]# echo 1 > /sys/class/gpio/gpio128/value
[root@100ask_imx6ull:~]# rs485_test -d /dev/ttymxc2 -b 115200
4.11 CAN 功能测试
注意:mini nand 版没有 CAN 接口。
此节主要演示使用两块开发板通过 ip 和 can-utils 命令测试 can0 的通信。
CAN 通信需要 2 个设备,本节使用两块 100ask_imx6ull 开发板做测试。你需要根据原理图找到 CAN 接
口引脚,用 3.5 15EDG 5P 插拔式接线端子连接线连接两个 CAN 接口的 H、L 两条线,L H 背面丝印有注明。
用户也可以使用自己的 Can 设备进行测试。
1) 发送端:
关闭 can0 接口:
[root@100ask_imx6ull:~]# ip link set
can0
down
设置 can0 传输速率为 50Kbits/sec:
[root@100ask_imx6ull:~]# ip
link set
can0
type can bitrate 50000
打印 can0 的信息:
[root@100ask_imx6ull:~]# ip
-details link show can0
打开 can0 接口:
[root@100ask_imx6ull:~]# ip
link set can0 up
使用 cansend 命令向另一端发送数据:
[root@100ask_imx6ull:~]# cansend can0 123#DEADBEEF
[root@100ask_imx6ull:~]# cansend can0 123#DEADBEEF
[root@100ask_imx6ull:~]# cansend can0 123#DEADBE23
下图是一个操作示例(建议等接收端设置好并执行 candump 命令之后,发送端再执行 cansend 命令):
2) 接收端
关闭 can0 接口:
[root@100ask_imx6ull:~]# ip link set
can0
down
设置 can0 传输速率为 50Kbits/sec:
[root@100ask_imx6ull:~]# ip
link set
can0
type can bitrate 50000
打印 can0 的信息:
[root@100ask_imx6ull:~]# ip
-details link show can0
打开 can0 接口:
[root@100ask_imx6ull:~]# ip
link set can0 up
打印 can0 的接收到的数据:
[root@100ask_imx6ull:~]# candump can0
4.12 蓝牙测试
请参考:http://wiki.100ask.org/How_to_scan_for_Bluetooth_devices
4.13 摄像头测试
请参考:http://wiki.100ask.org/Mjpg-streamer
4.14 4G 模块 pppoe 拨号上网
注意:我们用的是联通卡,如果您用的是非联通卡,请参考以下链接:
http://wiki.100ask.org/How_to_use_pppd_to_dial_up_the_Internet_for_supporting_4G_modules
开发板出厂的时候已经自带有 4G 驱动,测试方法非常简单,按如下步骤测试即可。
需要配件:移远 EC20 4G 通讯模块和联通 Nano SIM 卡
步骤:
首先如下图安装好 4G 模块和插好 SIM 卡:
插上 4G 模块串口打印信息如下:
然后执行命令 pppd call gprsdial & 拨号上网,串口信息打印如下
ifconfig 时可以看到多了一个设备 ppp0:
ping 百度 dns 有数据返回表示 4G 网卡可以用了:
4.15 更多测试请看 WIKI
我们会添加更多测试功能,但是本文档可能不会那么及时地更新。
最新的测试信息,可以看 WIKI:http://wiki.100ask.org/100ask_imx6ull
4.16 常见问题
所有的板子出厂时都做过严格的测试,所以硬件出问题的几率很小。
我们水平有限,不能保证软件百分之百没问题,如果碰到其他问题,可以参考以下链接:
http://bbs.100ask.net/article/12