MYZR-IMX6-EK314 L3035测试手册
目录
测试前的准备
1)请按照《MY-IMX6-EK314启动手册》中的“评估板与计算机的连接”进行连接。
2)请按照《MY-IMX6-EK314启动手册》中的“评估板的启动”进行启动。
测试项目
网口测试
MY-IMX6-EK314 评估板支持双网口(1个百兆网口,1个千兆网口)。
测试说明
- 第1个以太网口位置底板正面“U12”,第2个以太网口位置底板正面“P1”。
测试方法
1) 测试第1个以太网口
- 连接网线:用网络连接评估板“U12”与计算机网口
- 设置计算机IP:设置计算机网口IP为192.168.18.18
- 设置评估板IP:
$ ifconfig eth0 192.168.18.36 # configure the eth0
- 执行测试命令:
$ ifconfig eth1 down # eth1 to be shut down
$ ping 192.168.18.18 -c 2 -w 4 # send ICMP to HOST
- 观察测试结果:系统会输出类似如下信息:
--- 192.168.18.18 ping statistics ---
2packets transmitted, 2 packets received, 0% packet loss
- 测试结果:“0% packet loss”表示测试通过
- 附图
- 连接网线:拔下第1个网口的网线接口插入到评估板“P1”,网线另一端保持与计算机网口相连。
- 设置计算机IP:设置计算机网口IP为192.168.18.18(如已经设置过可执行下一步骤)。
- 设置第2个网口IP:
$ ifconfig eth1 192.168.18.27 # configure the eth1
设置后系统会输出第2个网口的工作状态信息,类似如下:
smsc95xx 1-1.1:1.0 eth1: link up, 100Mbps, full-duplex, lpa 0x4DE1
- 执行测试命令:
$ ifconfig eth0 down # eth0 to be shut down
$ ping 192.168.18.18 -c 2 -w 4 # send ICMP to HOST
- 观察测试结果:系统会输出类似如下信息:
--- 192.168.18.18 ping statistics ---
2packets transmitted, 2 packets received, 0% packet loss
- 测试结果:“0% packet loss”表示测试通过
- 附图
USB测试
测试说明
MY-IMX6-EK314评估板有2个USB HOST接口,位于底板正面“J2”。
测试方法
1) 开始测试
将USB设备插入底板USB接口,系统会输出类似如下信息:
usb *-*.*: new high speed USB device number * using fsl-ehci
……
2) 测试结束
将USB设备从底板拔出,系统会输出类似如下信息:
usb *-*.*: USB disconnect, device number *
附图
SD卡接口测试
测试说明
SD卡接口位于底板背面“SD3”。
开始测试
1) 往SD卡槽插入设备
插入SD卡到底板SD卡接口。系统输出以下信息(见附图)即表示SD接口正常:
mmc*: new high speed SD card at address ****
mmcblk*: mmcx:xxxx SA**G *.**GiB
mmcblk*: p*
2)从SD卡槽弹出设备
再次住SD卡槽按下SD卡,底板会弹出SD卡。系统输出以下信息(见附图)表示SD卡接口弹出正常:
mmc*: card **** removed
3) 结束测试
SD卡弹出后拨出SD卡即结束测试。
附图
音频测试
测试说明
这项测试是通过播放音频文件验证评估板的音频功能。
测试方法
1)准备测试
连接音频输出设备到底板正面的音频座子,音频座子在底板正面“J20”,丝印名称是“HP”。
2)执行测试
使用aplay播放一个视频,示例命令如下:
# aplay /unit_tests/audio8k16S.wav
上面这条命令会使用aplay播放命令中指定的文件。
3)测试结果
执行上面的测试命令后会听到音频设备输出的声音。
附图
视频测试
测试说明
这项测试是通过播放视频验证评估板的音频视频功能。
测试方法
使用gplay播放一个视频,示例命令如下:
# gplay /unit_tests/akiyo.mp4
上面这条命令会使用gplay播放命令中指定的文件。
- 测试结果
执行上面的测试命令后会在评估板显示屏上看到大约1秒钟的视频图像。
附图
GPIO测试
测试说明
在MY-IMX6-EK314底板正面的U14上,有33个GPIO,其中一个用作GPIO-LED。
GPIO-LED使用的CPU的管脚为“EIM_D22”,连接到底板上的“U14:30管脚”。
提示:GPIO-LED测试需要使用到万用表,没有万用表的用户可以使用跳过进行下一项测试。
GPIO-LED(GPIO)测试
GPIO的测试方法如下:
$ echo 1 > /sys/class/leds/user_led/brightness
使用万用表测试U14:30引脚,可以看到该引脚是高电平。
$ echo 0 > /sys/class/leds/user_led/brightness
使用万用表测试U14:30引脚,可以看到该引脚是低电平。
通用GPIO测试
这里我们以EIM_D21为例,通过原理图我们可以看到EIM_D21最终连接到U14:29。
1)计算GPIO的序号
根据芯片手册,我们可以找到EIM_D21 PAD可以配置为GPIO3_IO21。
IMX6 GPIO序号的计算方法为:(所在的组 - 1) * 32 + 序号,所以PIO3_IO21的管脚值为 (3 – 1) * 32 + 21 = 85。
2)设置需要测试的GPIO的IO Number
$ IO_NUMBER=85
3)导出GPIO
$ echo ${IO_NUMBER} > /sys/class/gpio/export
4)设置GPIO方向
$ echo out > /sys/class/gpio/gpio${IO_NUMBER}/direction
5)控制输出值
$ echo 1 > /sys/class/gpio/gpio${IO_NUMBER}/value
使用万用表测试IO_NUMBER对应的引脚,可以看到该引脚是高电平。
$ echo 0 > /sys/class/gpio/gpio${IO_NUMBER}/value
使用万用表测试IO_NUMBER对应的引脚,可以看到该引脚是低电平。
按键测试
测试说明
MY-IMX6-EK314评估板有4个按键,其中3个为自定义功能按键(SW2:VOL-,SW3: VOL+,SW4: Sleep Wake),以及1个复位按键(SW5:nRE)。测试程序key_test可以对3个功能按键进行测试。
测试方法
1)执行测试程序
在终端下键入命令执行测试程序,示例如下:
$ /app_test/key_test
2)进行交互测试
分别按SW2、SW3、SW4,系统会输出相应的事件信息,如:
key*** Pressed
key*** Released
其中“key*** Pressed”信息是在按键被按下的时候被输出,“key*** Released”信息是在按键被松开的时候被输出。
3)结束测试
按计算机上的“Ctrl”+“C”可结束按键测试程序。
注:按下SW1(系统会复位重启)。
附图
串口测试
MY-IMX6-EK314评估板有5个串口,其中4个为用户串口(位于底板正面“J12”位置,丝印名称为“UART”),1个为调试串口(位于底板正面“P3”位置,丝印为DEBUG)。
测试说明
系统设备文件说明:
- 调试串口的在系统中的设备文件是ttymxc0,用户串口的设备文件是ttymxc1、ttymxc2、ttymxc3、ttymxc4。
串口收发管脚及对应的设备文件说明:
- UART2:发送 9,接收 10,ttymxc1。
- UART3:发送 13,接收 14,ttymxc2。
- UART4:发送 15,接收 17,ttymxc3。
- UART5:发送 16,接收 18,ttymxc4。
提示:这里列出串口的收发管脚,串口所有管脚的定义请看原理图。
串口测试
1)测试说明
- 测试方法说明:
采用串口自发自收的方式进行。
- 测试结果说明:
通过测试程序向串口发送字符串,并输出串口接收到的字符串。
2)进入测试程序目录
$ cd /app_test
3)UART2测试
- 准备测试
短接串口2的发送发接收管脚(J12的9和10号)。
- 执行测试命令
$ ./uart_test /dev/ttymxc1 "www.myzr.com.cn"
- 测试结果附图
- 准备测试
短接串口3的发送发接收管脚(J12的12和13号)。
- 执行测试命令
$ ./uart_test /dev/ttymxc2 "www.myzr.com.cn"
5)UART4测试
- 准备测试
短接串口4的发送发接收管脚(J1的15和17号)。
- 执行测试命令
$ ./uart_test /dev/ttymxc3 "www.myzr.com.cn"
- 测试结果附图
- 准备测试
短接串口5的发送发接收管脚(J1的16和18号)。
- 执行测试命令
$ ./uart_test /dev/ttymxc4 "www.myzr.com.cn"
- 测试结果附图
RS232串口测试
测试说明
MY-IMX6-EK314评估板通过串口4引出一个RS232接口,位于底板正面“P2”位置(DB9座子)。
测试方法
1)准备测试
短接RS232的发送发接收管脚(P2的2和3号引脚)。
2)执行测试命令
$ ./uart_test /dev/ttymxc3 "www.myzr.com.cn"
说明:由于RS232是通过UART4引出的,测试同样可以按照UART4的方法。
3)测试结果附图
RTC测试
测试说明
受快递运输影响,MY-IMX6-EK314评估板发货时不带电池。测试RTC前请自备纽扣电池并安装到底板正面“BT1”上。
测试方法
1)断电重启设备,查看当前系统时间和硬件时间。
查看当前系统时钟命令如下:
$ date
系统输出信息如下:
Thu Jan 1 00:00:12 UTC 1970
查看当前RTC芯片时钟命令如下:
$ hwclock
系统输出信息如下:
Tue Nov 30 00:00:00 1999 0.000000 seconds
2)设置系统时钟,并同步到RTC芯片
设置系统时钟命令参考如下:
$ date -s "2015-09-02 12:34:56"
将系统时钟写入硬件时钟命令如下:
$ hwclock –w
3)断电重启评估板,查看当前系统时钟和硬件时钟
请参考第1步
4)测试结果
执行第3步以后看到的时钟为新设定的时钟。
附图
下图为测试方法中步骤3的截图
WatchDog测试
测试说明
WatchDog测试包括2项:一项是复位测试,一项是喂狗测试。
复位测试
1)测试说明
复位测试将启动WatchDog,但是并不喂狗,超时后系统将会复位。
2)执行测试
$ /unit_tests/wdt_driver_test.out 10 15 1
3)测试结果
运行测试命令后等待10秒后,WatchDog超时,系统被复位。将会在终端看到系统重新启动输出的信息。
喂狗测试
1)测试说明
喂狗测试将启动WatchDog,并且每2秒钟进行1次喂狗,系统将不会因为WatchDog超时而复位。
2)执行测试
- 启动WatchDog
$ /unit_tests/wdt_driver_test.out 4 2 1 &
- 查看当前时间
$ date
3)验证
- 查看当前时间
经过几分钟之后,系统依然没有复位。我们再查看当前时间。
$ date
- 停止喂狗
这时我们终止Watchdog测试程序,这样就没有程序进行喂狗了,系统将会在超时时间(这里是4秒)内复位。
$ ps | grep "/unit_tests/wdt_driver_test.out"
3195root 1464 S /unit_tests/wdt_driver_test.out 4 2 1
可以看到wdt_driver_test.out的pid为3195,下面我们终止3195的进程:
$ kill 3195
SPI测试
MY-IMX6-EK314评估板底板上有一组SPI接口,在“J13”位置,丝印为“SPI”。
测试说明
SPI1用作SPI Nor Flash。这里我们测试SPI2。
测试需要用到SPI接口的MISO和MOSI管脚。SPI接口的 MISO管脚在底板“J13的7号”,MOSI管脚为“J13的11号”。
测试方法
采用SPI自发送(输出)自接收(输入)的方式。
1)准备测试
短接SPI的MISO和MISO管脚,即短接底板上J13的7号和11号管脚。
2)执行测试
$ /app_test/spi_test -D /dev/spidev1.0
3)测试结果
如果SPI正常,在终端上会看到如下字符:
FF FF FF FF FF FF
40 00 00 00 00 95
FF FF FF FF FF FF
FF FF FF FF FF FF
FF FF FF FF FF FF
DE AD BE EF BA AD
F0 0D
附图
CAN接口测试
测试说明
CAN测试需要用到示波器,没有示波器的客户请跳过CAN测试。
测试方法
1)配置CAN0
示例命令如下:
$ ip link set can0 up type can bitrate 250000
2)配置连接示波器
将示波器的CH1和CH2连接到评估板的“R83”(在底板正面最上面的绿色座子)。
配置示波器(不会使用示波器的客户请找硬件工程师协助)。
3)执行测试命令
$ /app_test/client_test
4)测试结果
执行测试命令的同时会在示波器上看到波形的变化。
附图
PCIE接口测试
测试说明
系统已添加PCI接口的驱动,在启动过程中系统会检测PCI-E接口上的设备。
测试方法
复位系统,观察系统启动输出的信息
1)PCI-E驱动程序输出信息
在系统启动过程中输出如下信息表示PCI-E接口驱动加载没有问题:
iMX6 PCIe PCIe RC mode imx_pcie_pltfm_probe entering.
PCIE: imx_pcie_pltfm_probe start link up.
2)不连接PCI-E设备时的输出信息
在系统启动过程中,如果PCI-E接口上没有连接有效的设备,系统会提示PCI-E端口“link down!”,类似如下:
link up failed, DB_R0:0x00801600, DB_R1:0x08200000!
IMX PCIe port: link down!
3)连接有效PCI-E设备时的输出信息(这里以Intel 4965AGN为例)
在系统启动过程中,如果PCI-E接口上检测到有效的设备,并且设备模块正常,系统会提示PCI-E端口“link up”,如下:
IMX PCIe port: link up.
4)Linux测试命令:
$ lspci
如果在PCI-E接口上插入了有效的PCI-E设备,使用lspci将会得到该模块相关的信息,类似如下(这里连接的是Intel 4965AGN):
00:00.0 Class 0604: 16c3:abcd
01:00.0 Class 0280: 8086:4229
如果PCI-E接口上没有连接设备,使用lspci系统将没有信息输出。
附图
下图为连接Intel 4965AGN时系统输出的信息
下图为连接Intel 4965AGN后,进入系统使用lspci得到的信息
WIFI测试
测试说明
MY-I.MX6 评估板使用的WIFI芯片型号为RTL8188EUS。
测试方法
1)加载WIFI模块驱动
示例命令如下:
$ insmod /lib/modules/wifi/wlan.ko
2)生成WIFI的config文件
参考命令如下:
$ wpa_passphrase MYZR_TP-LINK myzrd2302 > /etc/wpa_supplicant.conf
这条命令指定的WIFI名称是和密码是“MYZR_TP-LINK myzrd2302”,需要替换成自己可连接的WIFI名称和密码。
3)连接WIFI网络
示例命令如下:
$ wpa_supplicant -B –c /etc/wpa_supplicant.conf -iwlan0
4)自动获取IP
示例命令如下:
$ udhcpc -i wlan0
注意:这里需要确认所在的WIFI网络已启用DHCP功能。
5)测试WIFI网络连接
示例命令如下:
$ ping -I wlan0 www.baidu.com -c 2
6)测试结果
执行步骤5能ping通则表示WIFI模块工作正常。
IPU测试
测试说明
整个IPU测试过程完成需要十几分钟。
测试方法
1)执行测试
进入测试程序所在目录(一定要进入测试程序所在目录才能正常执行测试脚本)
$ cd /unit_tests/
执行测试脚本
$ ./autorun-ipu.sh
2)测试结果
在整个测试过程中,可以看到显示屏显示的内容在不停的变化。
测试完成后,在终端上可以看到类似如下信息:
autorun-ipu.sh: Exiting PASS
===============test stop at Wed Sep 2 16:08:55 UTC 2015 ===============================
附图
GPU测试
测试说明
验证GPU功能。
测试方法
- 执行测试命令
$ cd /opt/viv_samples/vdk/ && ./tutorial3 -f 100
$ cd /opt/viv_samples/vdk/ && ./tutorial4_es20 -f 100
$ cd /opt/viv_samples/tiger/ &&./tiger
- 测试过程
执行测试命令时,可以看到显示屏显示的内容在变化。更多请参照/unit_test/gpu.sh
附图
VPU测试
测试说明
测试过程将使用VPU解码视频文件并输出到显示设备。
测试方法
- 执行测试
进入测试程序所在目录(一定要进入测试程序所在目录才能正常执行测试脚本)
$ cd /unit_tests/
- 执行测试脚本
$ ./autorun-vpu.sh
- 测试现象
在整个测试过程中,从显示屏上可以看到VPU解码的视频。
附图
显示功能测试
- 特别说明:
当U-Boot 版本u-boot-2016.03 svn315及以上 内核 版本 linux-3.0.35 svn31及以上 linux-3.14.52 svn369及以上 linux-3.14.52 svn368及以上 烧录工具 MfgTool-MYIMX6A9-L* svn181及以上
请参考《MY-IMX6-A9系列:显示功能测试》进行测试
- 一般情况下则按照如下方法测试
说明:每项显示功能测试都需要重启系统进入到u-boot命令行,输入命令并按确认键。
示例如下:
单屏显示
说明:输入命令并按确定键,观察系统启动过程中显示屏的显示内容,即可看到Linux Logo。
LVDS1
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=ldb,LDB-1024X600,if=RGB666; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
LVDS0
进入u-boot命令行,输入下面命令并按确定键:
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=ldb,LDB-1024X600,if=RGB666 ldb=sin0; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
HDMI
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
提示:HDMI显示在启动过程中屏幕无Linux Logo显示。进入系统后可以使用gplay命令播放视频,可以看到视频转出在显示屏上。
视频播放命令示例如下:
$ gplay /unit_tests/akiyo.mp4
RGB
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=lcd,SEIKO-WVGA,if=RGB24; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
双屏同步骤显示
说明:输入命令并按确定键,在内核启动过程中可以看到两个屏幕都显示Linux Logo,并且其它对显示屏的操作也会同样显示在两个屏幕上。
LVDS1+LVDS0同步显示
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=ldb,LDB-1024X600,if=RGB666 ldb=dul0 video=mxcfb1:dev=ldb,LDB-1024X600,if=RGB666; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
双屏异步显示
会用到的测试命令
- 打开主显示屏的背光
$ echo 0 > /sys/class/graphics/fb0/blank
- 打开第2显示屏的背光
$ echo 0 > /sys/class/graphics/fb2/blank
- 播放指定的视频文件到视频设备(这里video17关联到主显示屏)
$ gst-launch playbin2 uri=file:///unit_tests/akiyo.mp4 \
video-sink="mfw_v4lsink device=/dev/video17"
- 播放指定的视频文件到视频设备(这里video18关联到第2显示屏)
$ gst-launch playbin2 uri=file:///unit_tests/akiyo.mp4 \
video-sink="mfw_v4lsink device=/dev/video18"
测试方法说明
1)进入u-boot命令行输入命令并按确认键待系统启动完成。
示例如下:
2)执行命令打开对应显示屏的背光。
示例如下:
3)执行视频播放命令播放视频到显示屏。
示例如下:
说明:双屏异步显示模式下,系统启动后第2显示屏的背光默认是关闭的,所以需要执行步骤2)。
LVDS1作为主屏
- LVDS1+LVDS0双屏异步显示
- LVDS1+LVDS0双屏异步显示
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=ldb,LDB-1024X600,if=RGB666 video=mxcfb1:dev=ldb,LDB-1024X600,if=RGB666; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
- LVDS1+RGB双屏异步显示
- LVDS1+RGB双屏异步显示
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=ldb,LDB-1024X600,if=RGB666 video=mxcfb1:dev=lcd, SEIKO-WVGA,if=RGB24; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
- LVDS1+HDMI双屏异步显示
- LVDS1+HDMI双屏异步显示
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=ldb,LDB-1024X600,if=RGB666 video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
LVDS0作为主屏
- LVDS0+LVDS1双屏异步显示:
- LVDS0+LVDS1双屏异步显示:
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=ldb,LDB-1024X600,if=RGB666 ldb=sep0 video=mxcfb1:dev=ldb,LDB-1024X600,if=RGB666; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
- LVDS0+RGB双屏异步显示
- LVDS0+RGB双屏异步显示
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=ldb,LDB-1024X600,if=RGB666 ldb=sin0 video=mxcfb1:dev=lcd,SEIKO-WVGA,if=RGB24; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
- LVDS0+HDMI双屏异步显示
- LVDS0+HDMI双屏异步显示
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=ldb,LDB-1024X600,if=RGB666 ldb=sin0 video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
RGB作为主屏
- RGB+LVDS1双屏异步显示:
- RGB+LVDS1双屏异步显示:
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=lcd,SEIKO-WVGA,if=RGB24 video=mxcfb1:dev=ldb,LDB-1024X600,if=RGB666; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
- RGB+LVDS0双屏异步显示:
- RGB+LVDS0双屏异步显示:
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=lcd,SEIKO-WVGA,if=RGB24 video=mxcfb1:dev=ldb,LDB-1024X600,if=RGB666 ldb=sin0; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
HDMI作为主屏
- HDMI+LVDS1双屏异步显示
- HDMI+LVDS1双屏异步显示
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24 video=mxcfb1:dev=ldb,LDB-1024X600,if=RGB666; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm
- HDMI+LVDS0双屏异步显示
- HDMI+LVDS0双屏异步显示
setenv bootargs console=ttymxc0,115200 ip=none root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24 video=mxcfb1:dev=ldb,LDB-1024X600,if=RGB666 ldb=sin0; mmc dev 2; mmc read 0x10800000 0x800 0x2000; bootm