ARM技术论坛
直播中

兰凤送

6年用户 601经验值
擅长:电源/新能源 嵌入式技术 接口/总线/驱动
私信 关注
[资料]

明远智睿科技 IMX6 视频测试

测试项目
网口测试

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”表示测试通过
  • 附图


2)        测试第2个以太网口

  • 连接网线:拔下第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接口,系统会输出类似如下信息:
u*** *-*.*: new high speed USB device number * using fsl-ehci
……
2)        测试结束
将USB设备从底板拔出,系统会输出类似如下信息:
u*** *-*.*: 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"

  • 测试结果附图


4)UART3测试

  • 准备测试

短接串口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"

  • 测试结果附图


6)UART5测试

  • 准备测试

短接串口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步以后看到的时钟为新设定的时钟。

附图

下图为测试方法中步骤1和2的截图

下图为测试方法中步骤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系统将没有信息输出。

附图

下图为未连接PCI-E设备时系统输出的信息

下图为连接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命令行,输入命令并按确认键。
  示例如下:

单屏显示

  说明:输入命令并按确定键,观察系统启动过程中显示屏的显示内容,即可看到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双屏异步显示

  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双屏异步显示

  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双屏异步显示

  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双屏异步显示:

  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双屏异步显示

  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双屏异步显示

  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双屏异步显示:

  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


更多回帖

发帖
×
20
完善资料,
赚取积分