GPIO属性
<thead>
span style="color:#FFFFFF;background:#000080" |
IO序号 |
</thead>
<tbody>
2 |
|GPIO1_IO02 ||J23:11 ||J23:12 ||GPIO3_IO30 ||94 |
- |
|
193 |
|GPIO7_IO01 ||U14:3 ||U14:4 ||GPIO7_IO00 ||192 |
- |
|
177 |
|GPIO6_IO17 ||U14:5 ||U14:6 ||GPIO6_IO18 ||178 |
- |
|
176 |
|GPIO6_IO16 ||U14:7 ||U14:8 ||GPIO2_IO07 ||39 |
- |
|
35 |
|GPIO2_IO03 ||U14:9 ||U14:10 ||GPIO2_IO06 ||38 |
- |
|
169 |
|GPIO6_IO09 ||U14:11 ||U14:12 ||GPIO6_IO11 ||171 |
- |
|
34 |
|GPIO2_IO02 ||U14:13 ||U14:14 ||GPIO2_IO00 ||32 |
- |
|
36 |
|GPIO2_IO04 ||U14:15 ||U14:16 ||GPIO2_IO05 ||37 |
- |
|
29 |
|GPIO1_IO29 ||U14:17 ||U14:18 ||GPIO1_IO27 ||27 |
- |
|
30 |
|GPIO1_IO30 ||U14:19 ||U14:20 ||GPIO1_IO26 ||26 |
- |
|
24 |
|GPIO1_IO24 ||U14:21 ||U14:22 ||GND ||GND |
- |
|
10 |
|GPIO1_IO10 ||U14:23 ||U14:24 ||GPIO1_IO15 ||15 |
- |
|
12 |
|GPIO1_IO12 ||U14:25 ||U14:26 ||GPIO1_IO13 ||13 |
- |
|
11 |
|GPIO1_IO11 ||U14:27 ||U14:28 ||GPIO1_IO14 ||14 |
- |
|
85 |
|GPIO3_IO21 ||U14:29 ||U14:30 ||GPIO3_IO22 ||86 |
- |
|
GND |
|GND ||U14:31 ||U14:32 ||GND ||GND |
- |
|
-- |
|gpio-leds ||U14:33 ||U14:34 ||gpio-leds ||-- |
- |
|
20 |
|GPIO1_IO20 ||U14:35 ||U14:36 ||gpio-leds ||-- |
- |
|
116 |
|GPIO4_IO20 ||U14:37 ||U14:38 ||gpio-leds ||-- |
} |
|
</tbody>
测试方法
1)GPIO输出测试
# OUT_IO_NUMBER=85
# echo ${OUT_IO_NUMBER} > /sys/class/gpio/export
# echo out > /sys/class/gpio/gpio${OUT_IO_NUMBER}/direction
# echo 0 > /sys/class/gpio/gpio${OUT_IO_NUMBER}/value
# echo 1 > /sys/class/gpio/gpio${OUT_IO_NUMBER}/value
2)GPIO输入测试
# IN_IO_NUMBER=86
# echo ${IN_IO_NUMBER} > /sys/class/gpio/export
# echo in > /sys/class/gpio/gpio${IN_IO_NUMBER}/direction
cat /sys/class/gpio/gpio${IN_IO_NUMBER} /value
3)验证输入输出
注意:这一步需要短接评估板的管脚,如果不确定自己能正确短接的请找硬件工程师支持,否则可能会损坏评估板。
将前面配置的输出IO对应的管脚与配置的输入IO对应的管脚连接。即:在MY-IMX6-EK200上连接J4:10 - J4:12,在MY-IMX6-EK314上连接U14:29 - U14:30。
# cat /sys/class/gpio/gpio${IN_IO_NUMBER}/value
# echo 1 > /sys/class/gpio/gpio${OUT_IO_NUMBER}/value
# cat /sys/class/gpio/gpio${IN_IO_NUMBER}/value
GPIO-LED测试
接口属性
MY-IMX6-EK200
|
|
MY-IMX6-EK314
|
接口位置
|
GPIO属性
|
LED属性
|
接口位置
|
GPIO属性
<thead>
span style="color:#FFFFFF;background:#000080" |
LED属性 |
</thead>
<tbody>
J4:3 |
|
gpio-leds |
|
heartbeat |
|
</tbody>
|
U14:24
|
gpio-leds
<thead>
heartbeat |
</thead>
<tbody>
J4:5 |
gpio-leds |
timer |
</tbody>
|
U14:28
|
gpio-leds
<thead>
timer |
</thead>
<tbody>
J4:9 |
gpio-leds |
default-on |
</tbody>
|
U14:26
|
gpio-leds
<thead>
default-on |
</thead>
<tbody>
J4:11 |
gpio-leds |
gpio |
</tbody>
|
U14:25
|
gpio-leds
|
gpio
|
GPIO-LED(Heartbeat)测试
系统启动完成后,用示波器检测heartbeat对应的接口,可看到如下类似信号:
提示:heartbeat是与CPU心跳关联的,如果在此GPIO上接上LED,即可通过观察LED来判断CPU是否工作。
GPIO-LED(Timer)测试
系统启动完成后,用示波器检测timer对应的接口,可看到如下类似信号:
通过delay_off、delay_on来控制高低电平持续的时间。
# echo 500 > /sys/class/leds/led-timer/delay_off
# echo 1000 > /sys/class/leds/led-timer/delay_on
再用示波器检测的时候,会看到波形发生的变化。
GPIO-LED(Default ON)测试
Default-on可以通过brightness控制。
Default-on的实现是初始触发状态为on,即初始触发后为高电平。
# echo 1 > /sys/class/leds/Default/brightness
往brightness写0即可检测到低电平。
# echo 0 > /sys/class/leds/Default/brightness
GPIO-LED(GPIO)测试
GPIO的测试可以使用跟default-on类似的方法:
# echo 1 > /sys/class/leds/gpio1_12/brightness
使用万用表测试LED:gpio对应的引脚,可以看到该引脚是高电平。
# echo 0 > /sys/class/leds/gpio1_12/brightness
使用万用表测试LED:gpio对应的引脚,可以看到该引脚是低电平。
GPIO-KEY测试
接口属性
MY-IMX6-EK200
|
|
MY-IMX6-EK314
|
接口位置
|
GPIO属性
|
KEY属性
|
接口位置
|
GPIO属性
<thead>
span style="color:#FFFFFF;background:#000080" |
LED属性 |
</thead>
<tbody>
SW2 |
|
gpio-keys |
|
Power Button |
|
</tbody>
|
SW4
|
gpio-keys
<thead>
Power Button |
</thead>
<tbody>
SW3 |
gpio-keys |
Volume Up |
</tbody>
|
SW3
|
gpio-keys
<thead>
Volume Up |
</thead>
<tbody>
SW5 |
gpio-keys |
Volume Down |
</tbody>
|
SW2
|
gpio-keys
|
Volume Down
|
测试方法
1)执行测试程序
在终端下键入命令执行测试,示例如下:
# evtest
2)选择测试设备
Select the device event number [0-2]: 2
输入“gpio-keys”对应的序号,这里是2
3)进行交互测试
在终端会看到“Testing ... (interrupt to exit)”,这时我们按下或松开SW4、SW3、SW2。会看到如下类似信息:
Event: time 1452590477.115958, type 1 (EV_KEY), code 116 (KEY_POWER), value 0
Event: time 1452590477.115958, -------------- SYN_REPORT ------------
Event: time 1452590478.415953, type 1 (EV_KEY), code 115 (KEY_VOLUMEUP), value 1
其中“value 1”信息是在按键被按下的时候被输出,“value 0”信息是在按键被松开的时候被输出。
3)结束测试
按计算机上的“Ctrl”+“C”可结束按键测试程序。
串口测试
MY-IMX6-EK200共5个串口,其中1个调试串口,4个用户串口。
MY-IMX6-EK314共5个串口,其中1个调试串口,4个用户串口。
用户串口属性
评估板型号
|
UARTx
|
Rx
|
Tx
|
系统接口
|
MY-IMX6-EK200
|
UART2
|
J1:9
|
J1:7
<thead>
ttymxc1 |
</thead>
<tbody>
|
</tbody>
|
UART3
|
J1:13
|
J1:11
<thead>
ttymxc2 |
</thead>
<tbody>
|
</tbody>
|
UART4
|
J1:17
|
J1:15
<thead>
ttymxc3 |
</thead>
<tbody>
|
</tbody>
|
UART5
|
J1:16
|
J1:18
<thead>
ttymxc4 |
</thead>
<tbody>
rowspan=4|MY-IMX6-EK314 |
UART2 |
J12:9 |
J12:10 |
ttymxc1 |
- |
</tbody>
|
UART3
|
J12:12
|
J12:13
<thead>
ttymxc2 |
</thead>
<tbody>
|
</tbody>
|
UART4
|
J12:17
|
J12:15
<thead>
ttymxc3 |
</thead>
<tbody>
|
</tbody>
|
UART5
|
J12:16
|
J12:18
|
ttymxc4
|
提示:这里列出串口的收发管脚,串口其它管脚的定义请看原理图。
串口测试
1)测试说明
采用串口自发自收的方式进行。
通过测试程序向串口发送字符串,并输出串口接收到的字符串。
注意:串口测试需要短接评估板的管脚,如果不确定自己能正确短接的请找硬件工程师支持,否则可能会损坏评估板。
2)进入测试程序目录
# cd ~/app_test
3)UART2测试
短接串口2的发送发接收管脚(J1的9和10号)。
# ./uart.out /dev/ttymxc1 "www.myzr.com.cn"
4)UART3测试
短接串口3的发送发接收管脚(J1的12和13号)。
# ./uart.out /dev/ttymxc2 "www.myzr.com.cn"
5)UART4测试
短接串口4的发送发接收管脚(J1的15和17号)。
# ./uart.out /dev/ttymxc3 "www.myzr.com.cn"
6)UART5测试
短接串口5的发送发接收管脚(J1的16和18号)。
# ./uart.out /dev/ttymxc4 "www.myzr.com.cn"
RTC测试
测试说明
受快递运输影响,MY-IMX6 系列评估板发货时不带电池。测试RTC前请自备纽扣电池并安装到评估板上。
MY-IMX6-EK200的电池座在底板背面的“BT1”位置。
MY-IMX6-EK314的电池座在底板正面的“BT1”位置。
测试方法
1)断电重启设备,查看当前系统时间和硬件时间。
# date
Thu Aug 6 05:35:17 UTC 2015
2)查看当前RTC芯片时钟命令如下:
# hwclock
Thu Aug 6 05:35:59 2015 0.000000 seconds
3)设置系统时钟,并同步到RTC芯片
# date -s "2015-08-20 12:34:56"
# hwclok –w
4)断电重启评估板,查看当前系统时钟和硬件时钟
请参考第1步
5)测试结果
执行第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)执行测试
# /unit_tests/wdt_driver_test.out 4 2 1 &
# date
3)验证
经过几分钟之后,系统依然没有复位。我们再查看当前时间。
# date
这时我们终止Watchdog测试程序,这样就没有程序进行喂狗了,系统将会在超时时间(这里是4秒)内复位。
# pkill wdt_driver_test
SPI测试
MY-IMX6-EK200上有两组SPI接口。
MY-IMX6-EK314上有两组SPI接口。
接口属性
测试需要用到SPI接口的MISO和MOSI管脚,在下表中列出。
评估板型号
|
SPIx
|
MISO
|
MOSI
|
MY-IMX6-EK200
|
SPI1
|
J7:7
<thead>
J7:9 |
</thead>
<tbody>
|
</tbody>
|
SPI2
|
J7:8
<thead>
J7:10 |
</thead>
<tbody>
rowspan=2|MY-IMX6-EK314 |
SPI1 |
J13:6 |
J13:12 |
- |
</tbody>
|
SPI2
|
J13:7
|
J13:11
|
测试说明
1)采用SPI自发送(输出)自接收(输入)的方式。
注意:测试需要短接评估板的管脚,如果不确定自己能正确短接的请找硬件工程师支持,否则可能会损坏评估板。
2)与SPI测试程序匹配的SPI接口是SPI2,所以我们的SPI测试是测试SPI2。
测试方法
1)准备测试
短接SPI2的MISO和MOSI管脚。
2)执行测试
# ~/app_test/spi.out -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接口测试
MY-IMX6-EK200上有两组CAN接口。
MY-IMX6-EK314上有两组CAN接口。
接口属性
评估板型号
|
CANx
|
信号:CAN_L
|
信号:CAN_H
|
系统设备
|
MY-IMX6-EK200
|
CAN1
|
J19:1
|
J19:2
<thead>
can0 |
</thead>
<tbody>
|
</tbody>
|
CAN2
|
J16:1
|
J16:2
<thead>
can1 |
</thead>
<tbody>
rowspan=2|MY-IMX6-EK314 |
CAN1 |
J17:1 |
J17:2 |
can0 |
- |
</tbody>
|
CAN2
|
J15:1
|
J15:2
|
can1
|
测试说明
采用CAN1发送,CAN0接收的方式。
测试方法
1)接口连接
注意:这一步需要连接评估板的管脚,如果不确定自己能正确连接的请找硬件工程师支持,否则可能会损坏评估板。
将CAN1的CAN_L与CAN2的CAN_L连接。
将CAN1的CAN_H与CAN2的CAN_H连接。
2)执行测试
配置CAN0
# ip link set can0 up type can bitrate 125000
配置CAN1
# ip link set can1 up type can bitrate 125000
配置CAN0接收
# candump can0 &
CAN1发送
# cansend can1 1F334455#1122334455667788
附图
WIFI测试
insmod ~/my-demo/linux-3.14.52/8188eu.ko
insmod ~/8188eu.ko
wpa_passphrase WIFI名称 WIFI密码 > /etc/wpa_supplicant.conf
wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf -B
udhcpc -i wlan0
IPU测试
测试说明
整个IPU测试过程完成需要十几分钟。
测试方法
1)执行测试
进入测试程序所在目录(一定要进入测试程序所在目录才能正常执行测试脚本)
# cd /unit_tests/
执行测试脚本
# ./autorun-ipu.sh
2)测试结果
在整个测试过程中,可以看到显示屏显示的内容在不停的变化。
测试完成后,在终端上可以看到类似如下信息:
test stop at Thu Jan 1 00:33:38 UTC 1970
附图
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 display ${fb0_lvds1}
=> saveenv; boot
LVDS0
=> setenv display ${fb0_lvds0}
=> saveenv; boot
HDMI
=> setenv display ${fb0_hdmi}
=> saveenv; boot
注意:如果使用HDMI转VGA的,请确认转接装置是否需要供电。
RGB
=> setenv display ${fb0_lcd}
=> saveenv; boot
双屏同步骤显示
说明:输入命令并按确定键,在内核启动过程中可以看到两个屏幕都显示Linux Logo,并且其它对显示屏的操作也会同样显示在两个屏幕上。
LVDS1+LVDS0同步显示
=> setenv display ${lvds_sync}
=> saveenv; boot
双屏异步显示
导入测试环境变量
# export GSTL=gst-launch-1.0
# export PLAYBIN=playbin
# export GPLAY=gplay-1.0
# export GSTINSPECT=gst-inspect-1.0
# export MP4_FILE="/home/root/test.mp4"
会用到的测试命令
# $GSTL $PLAYBIN uri=file://$MP4_FILE video-sink="imxv4l2sink device=/dev/video17"
# $GSTL $PLAYBIN uri=file://$MP4_FILE video-sink="imxv4l2sink device=/dev/video18"
LVDS1作为主屏
=> setenv display ${fb0_lvds1} ${fb1_lcd}
=> saveenv; boot
=> setenv display ${fb0_lvds1} ${fb1_hdmi}
=> saveenv; boot
LVDS0作为主屏
=> setenv display ${fb0_lvds0} ${fb1_lcd}
=> saveenv; boot
=> setenv display ${fb0_lvds0} ${fb1_hdmi}
=> saveenv; boot
RGB作为主屏
=> setenv display ${fb0_lcd} ${fb1_lvds1}
=> saveenv; boot
=> setenv display ${fb0_lcd} ${fb1_lvds0}
=> saveenv; boot
HDMI作为主屏
=> setenv display ${fb0_hdmi} ${fb1_lvds1}
=> saveenv; boot
=> setenv display ${fb0_hdmi} ${fb1_lvds0}
=> saveenv; boot
|