测试手册

测试概览

测试项

测试结果

测试项

测试结果

测试项

测试结果

电源按键

Pass

复位按键

Pass

指示灯

Pass

Watchdog

Pass

休眠唤醒

Pass

RTC

PASS

网口

Pass

CAN

Pass

I2C

Pass

UART

Pass

GPIO

Pass

PWM

Pass

SPI

----

QSPI

Pass

音频

Pass

USB WiFi

Pass

TF卡

Pass

USB 3.0

Pass

HDMI

Pass

LVDS

等屏幕

MIPI DSI

MIPI CSI

Pass

PCIe

Pass

M2 5G

Pass

电源按键

  • 接口丝印:SW2

功能测试

  • 关闭电源

    1)说明:长按电源按键可以关闭设备电源。

    2)操作:在接通设备主电源并打开主电源开关的情况下,按住 SW2 按键约 5 秒左右即可关闭设备电源。

    3)结果:看到主板指示灯灭掉即功能正常。

  • 开启电源

    1)说明:短按电源按键可以开启设备电源。

    2)操作:在前面电源关闭的情况下,按住 SW2 按键约 1 秒左右即可开启设备电源。

    3)结果:看到主板指示灯亮起来即功能正常。

复位按键

  • 接口丝印:SW1

功能测试

1)说明:短按复位按键可以使设备电源复位。

2)操作:在主板电源开启的情况下,短按 SW1 即可使设备电源复位。

3)结果:按下时可以看到主板指示灯灭,松开时可以看到主板指示灯亮起,即功能正常。

指示灯

系统接口

核心板指示灯:/sys/class/leds/core_board_heartbeat

主板指示灯:/sys/class/pwm/pwmchip0

功能测试

  • 核心板指示灯

    1)说明:通过核心板指示灯用于观察系统是否运行。

    2)操作:无

    3)结果:设备上电后,10秒钟内核心板的 LED 灯会闪烁,表示系统运行中,此功能正常。

  • 主板指示灯

    1)说明:主板指示灯通过 CPU 的 PWM 脚输出来控制 LED。

    2)操作:参照后面的 PWM 测试。

    3)结果:配置不同的参数后,可以看到主板指示灯亮的规律不同,即功能正常。

    备注

    主板指示灯用户可配置,配置方法可参考后面 PWM 测试。

Watchdog

  • 系统设备:/dev/watchdog

功能测试

  • 看门狗超时复位

    1)说明:设置看门狗喂狗间隔时间少于休眠时间,看门狗将会超时复位。

    2)操作:在命令行界面输入下面指令,并观察设备:

    /unit_tests/Watchdog/wdt_driver_test.out 5 10 0 &
    

    3)结果:执行指令 5 秒后设备重启,即功能正常。

  • 看门狗喂狗保持

    1)说明:设置看门狗喂狗时间大于休眠时间,设备将会正常运行。

    2)操作:在命令行界面输入下面指令:

    /unit_tests/Watchdog/wdt_driver_test.out 2 1 0
    

    3)结果:系统继续运行而不重启,即功能正常。

    备注

    Ctrl+C 中止看门狗程序后,2秒内设备重启(说明:硬件看门狗开启后,不会关闭,关闭程序会停止喂狗,导致超时重启)。

休眠唤醒

  • 系统接口:/sys/power/state

功能测试

  • freeze(S0)模式休眠

    1)说明:通过系统接口可以使设备进入休眠。

    2)操作

    • 在命令行界面输入下面指令:

    echo freeze > /sys/power/state
    
    • 输出信息:

    PM: suspend entry (s2idle)
    ...
    Freezing user space processes ... (elapsed 0.000 seconds) done.
    ...
    Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
    ...
    

    3)结果:执行指令后的输出信息基本匹配,同时看到核心板指示灯灭掉,即功能正常。

  • mem(S2)模式休眠

    1)说明:mem(S2)模式下,设备进入低功耗模式。

    2)操作

    • 在命令行界面输入下面指令:

    echo mem > /sys/power/state
    
    • 输出信息:

    PM: suspend entry (s2idle)
    ...
    Freezing user space processes ... (elapsed 0.000 seconds) done.
    ...
    Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
    ...
    

    3)结果:执行指令后的输出信息基本匹配,同时看到核心板指示灯灭掉,即功能正常。

    备注

    进入休眠后可以通过短按 SW2 唤醒。

RTC

  • 设备接口:/dev/rtc

  • 测试说明:RTC 测试需要安装纽扣电池,电池位置在丝印 BT1。

功能测试

  • RTC时间

    1)说明:先读取RTC时间,再设置RTC时间,之后断电重启后再核对RTC时间

    2)操作

    a)读取 RTC 时间,具体操作如下:

    • 输入指令:

    hwclock -f /dev/rtc
    
    • 可以看到RTC存储的时间,类似如下:

    1970-01-01 00:00:21.530265+00:00
    

    b)设置 RTC 时间,具体操作如下:

    • 输入指令更新系统时间:

    date -s "2023-02-06 12:34:56"
    
    • 可以看到系统当前时间更新为设置的时间:

    Mon Feb  6 12:34:56 UTC 2023
    
    • 输入指令设置系统时间到 RTC:

    hwclock -w -f /dev/rtc
    

    c)断电重启设备。

    d)核对 RTC 时间,具体操作如下:

    • 输入指令:

    hwclock -f /dev/rtc
    
    • 可以看到RTC存储的时间与我们设置的时间基本相同,类似如下:

    2023-02-06 12:35:34.485664+00:00
    

    3)结果:执行操作后,核对 RTC 时间基本没有问题,且操作过程中的输出符合预期即功能正常。

  • wakealarm 功能

    1)说明:设备的 RTC 可以产生 wakealarm,可用于唤醒设备休眠。

    2)操作

    a)设置 10 秒后产生一个 wakealarm 信号,输入下面指令:

    echo +10 > /sys/class/rtc/rtc1/wakealarm
    

    b)使系统进入休眠模式,输入下面指令:

    echo freeze > /sys/power/state
    

    3)结果:上面两条指令执行完后,系统将不响应串口终端输入。等 wakealarm 唤醒系统后,串口终端可以继续操作即测试正常。

网口

  • 接口丝印:U12(网口一),U9(网口二)

  • 系统接口:eth0(网口一),eth1(网口二)

功能测试

  • 网口一

    1)说明:采用开发板向PC发送ICMP报文的方式进行测试

    2)操作

    a)配置电脑有线网卡IP为 192.168.137.99。

    b)把开发板的这个网口用网线跟电脑网口连接起来。

    c)配置开发板网口IP,具体配置命令如下:

    ifconfig eth1 down
    ifconfig eth0 up
    ifconfig eth0 192.168.137.81
    

    d)执行网口测试命令

    • 输入指令:

    ping 192.168.137.99 -c 2 -w 4
    
    • 输出信息:

    PING 192.168.137.99 (192.168.137.99) 56(84) bytes of data.
    64 bytes from 192.168.137.99: icmp_seq-1 ttl-64 time-1.35 ms
    64 bytes from 192.168.137.99: icmp_seq-2 ttl-64 time-1.35 ms
    
    --- 192.168.137.99 ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1002ms
    rtt min/avg/max/mdev - 1.347/1.347/1.348/0.000 ms
    

    3)结果:“0% packet loss”表示测试通过。

  • 网口二

    1)说明:采用开发板向PC发送ICMP报文的方式进行测试

    2)操作

    a)配置电脑有线网卡IP为 192.168.137.99。

    b)把开发板的这个网口用网线跟电脑网口连接起来。

    c)配置开发板网口IP,具体配置命令如下:

    ifconfig eth0 down
    ifconfig eth1 up
    ifconfig eth1 192.168.137.82
    

    d)执行网口测试命令

    • 输入指令:

    ping 192.168.137.99 -c 2 -w 4
    
    • 输出信息:

    PING 192.168.137.99 (192.168.137.99) 56(84) bytes of data.
    64 bytes from 192.168.137.99: icmp_seq-1 ttl-64 time-0.595 ms
    64 bytes from 192.168.137.99: icmp_seq-2 ttl-64 time-0.843 ms
    
    --- 192.168.137.99 ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1001ms
    rtt min/avg/max/mdev - 0.595/0.719/0.843/0.124 ms
    

    3)结果:“0% packet loss”表示测试通过。

CAN

管脚位置

管脚配置

系统接口

J14:1

CAN1H

can0

J14:3

CAN1L

J14:4

CAN2H

can1

J14:6

CAN2L

功能测试

1)说明:使用两组 CAN 总线对方对收的方式进行测试。

2)操作

a)使用杜邦线将 J14:1 与 J14:4 连接,J14:3 与 J14:6 连接。

b)在串口终端输入命令配置 CAN 接口并 UP:

ip link set can0 type can bitrate 500000
ip link set can0 up
ip link set can1 type can bitrate 500000
ip link set can1 up

备注

可以看到终端输出类似信息:link becomes ready

c)在串口终端输入命令使 CAN1(can0) 后台接收:

candump can0 &

d)在串口终端输入命令使 CAN2(can1) 发送测试数据:

  • 输入命令:

cansend can1 1F334455#1122334455667788
  • 输出信息:

can0  1F334455   [8]  11 22 33 44 55 66 77 88

3)结果:“d)”操作时输出信息正确,即功能正常。

I2C

功能测试

1)说明:执行 I2C 检测指令并观察结果。

2)操作

a)检测系统的 I2C 总线

  • 输入命令:

i2cdetect -l
  • 输出信息类似如下,表示检测到 I2C 0、1、2 和 HDMI 的适配器。

i2c-1     i2c             30a30000.i2c                            I2C adapter
i2c-6     i2c             DesignWare HDMI                         I2C adapter
i2c-2     i2c             30a40000.i2c                            I2C adapter
i2c-0     i2c             30a20000.i2c                            I2C adapter

b)检测总线上的 I2C 设备

  • 输入命令:

i2cdetect -y 2

备注

i2cdetect 带的参数 2 可以是上一步检测出的总线序号,如 0、1、6。

  • 输出有类似如下信息,非 “--” 表示在 I2C 总线对应地址检测到设备。

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- UU -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 6f
70: -- -- -- -- -- -- -- --

3)结果:操作过程中的输出信息与预期基本一致,即功能正常。

UART

管脚位置

管脚配置

系统接口

J14:8

UART1_TXD

/dev/ttymxc0

J14:9

UART1_RXD

J14:10

UART1_CTS

J14:11

UART1_RTS

功能测试

1)说明:使用串口自发自收的方式进行测试。

2)操作

a)使用杜邦线连接 J14:8 和 J14:9。

b)运行测试程序:

  • 输入命令:

./serial_test_arm64.out /dev/ttymxc0 "www.myzr.com.cn"
  • 输出信息:

Starting send data...finish
Starting receive data:
ASCII: 0x77        Character: w
ASCII: 0x77        Character: w
ASCII: 0x77        Character: w
ASCII: 0x2e        Character: .
ASCII: 0x6d        Character: m
ASCII: 0x79        Character: y
ASCII: 0x7a        Character: z
ASCII: 0x72        Character: r
ASCII: 0x2e        Character: .
ASCII: 0x63        Character: c
ASCII: 0x6f        Character: o
ASCII: 0x6d        Character: m
ASCII: 0x2e        Character: .
ASCII: 0x63        Character: c
ASCII: 0x6e        Character: n
ASCII: 0x0         Character:

3)结果:执行测试操作后,输入信息符合正确预期即功能正常。

GPIO

管脚位置

管脚配置

IO 号

管脚位置

管脚配置

IO 号

J13:13

GPIO4_IO18

114

J13:26

GPIO4_IO01

97

J13:15

GPIO4_IO19

115

J13:28

GPIO4_IO00

96

J13:16

GPIO2_IO20

52

J13:32

GPIO4_IO20

116

功能测试

  • GPIO 输出测试

    1)说明:通过系统的接口控制 GPIO 的输出电平。

    2)操作

    a)输入命令导出 IO 操作接口并配置为输出:

    export OUT_IO_OUT_NUM=114
    echo ${OUT_IO_OUT_NUM} > /sys/class/gpio/export
    echo "out" > /sys/class/gpio/gpio${OUT_IO_OUT_NUM}/direction
    

    b)输入命令控制 IO 输出高电平:

    echo 1 > /sys/class/gpio/gpio${OUT_IO_OUT_NUM}/value
    

    备注

    这时用万用表测试 J13:13,电压应当是 3.3V。

    c)控制 IO 输出低电平:

    echo 0 > /sys/class/gpio/gpio${OUT_IO_OUT_NUM}/value
    

    备注

    这时用万用表测试 J13:13,电压应当是 0V。

    3)结果:在测试操作中控制IO电平时,测得的电压与预期符合即正常。

  • GPIO 输入测试

    1)说明:通过系统的接口配置并读取GPIO的输入电平。

    2)操作

    a)用杜邦线或跳线帽连接 J13 的 15 和 13 脚。

    b)输入命令导出 IO 操作接口并配置为输入:

    export OUT_IO_IN_NUM=115
    echo ${OUT_IO_IN_NUM} > /sys/class/gpio/export
    echo "in" > /sys/class/gpio/gpio${OUT_IO_IN_NUM}/direction
    

    c)输入命令控制 J13:13 输出高电平并读取 J13:15 的输入电平:

    # 注释:控制 J13:13 IO 输出高电平
    echo 1 > /sys/class/gpio/gpio${OUT_IO_OUT_NUM}/value
    # 注释:读取 IO 的输入电平
    cat /sys/class/gpio/gpio${OUT_IO_IN_NUM}/value
    

    备注

    这时命令行界面终端应当输出字符“1”(表示高电平)。

    d)输入命令控制 J13:13 输出低电平并读取 J13:15 的输入电平:

    # 注释:控制 J13:13 IO 输出低电平
    echo 0 > /sys/class/gpio/gpio${OUT_IO_OUT_NUM}/value
    # 注释:读取 IO 的输入电平
    cat /sys/class/gpio/gpio${OUT_IO_IN_NUM}/value
    

    备注

    这时命令行界面终端应当输出字符“0”(表示低电平)。

    3)结果:在测试操作中,读取到的电平符合正确预期,即功能正常。

PWM

  • 接口位置:J13:27

  • 系统接口:/sys/class/pwm/pwmchip0

功能测试

1)说明:配置 PWM 并观察。

2)操作

a)输入命令配置 PWM:

# 注释:导出 PWM(PWM1) 的操作接口
echo 0 > /sys/class/pwm/pwmchip0/export
# 注释:配置 PWM 的周期,单位是纳秒
echo 1000000000 > /sys/class/pwm/pwmchip0/pwm0/period
# 注释:配置 PWM 的占空比,单位是纳秒,必须少于周期
echo 500000000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
# 注释:使能 PWM
echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable

b)使用示波器检测 J13:27,可以看到电平周期性的变化。

3)结果:使用示波器检测 J13:27 时,可以看到电平周期性的变化,即功能正常。

SPI

功能测试

1)说明:通过 SPI 接口发送字符串。

2)操作

  • 输入命令运行测试程序:

./spidev_test.gcc7_arm64.out -D /dev/spidev1.0 -v -p my_spi_test_string

备注

“my_spi_test_string” 是通过 spi 发送的字符串。

  • 可以看到输出信息类似如下:

spi mode: 0x4
bits per word: 8
max speed: 500000 Hz (500 kHz)
TX | 6D 79 5F 73 70 69 5F 74 65 73 74 5F 73 74 72 69 6E 67 __ __ __ __ __ __ __ __ __ __ __ __ __ __  |my_spi_test_string|
RX | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 __ __ __ __ __ __ __ __ __ __ __ __ __ __  |..................|

3)结果:看到的输出信息符合正确预期,表示发送成功。

QSPI

  • 设备接口:/dev/mtd0

功能测试

1)说明:通过写文件并读取来验证功能。

2)操作

a)输入命令准备 QSPI Flash 设备:

# 注释:格式化 QSPI Flash 设备
flash_erase /dev/mtd0 0 0
# 注释:挂载 Flash 设备
mount -t jffs2 /dev/mtdblock0 /mnt
# 注释:检查挂载设备
df -h

备注

可以看到包含类似输出信息:

/dev/mtdblock0 32M 904K 32M 3% /mnt

b)输入命令写文件并读取:

# 注释:往 Flash 写文件
echo "Flash Test" > /mnt/test.txt
# 注释:数据同步
sync
# 注释:读文件
cat /mnt/test.txt

备注

可以看到输出信息:Flash Test

3)结果:执行命令后的输出信息符合正确预期,即功能正常。

音频

  • 系统接口:wm8960-audio

功能测试

1)说明:播放音频文件进行测试。

2)操作

a)把耳机或喇叭插入丝印 P1 对应的接口。

b)输入命令进行测试:

aplay -D hw:0 /unit_tests/ASRC/audio8k16S.wav

3)结果:执行测试命令时,耳机可以听到声音,即功能正常。

WiFi测试

  • 接口丝印:U21

功能测试

1)说明:WIFI连接到AP后,开发板向外网发送ICMP报文来验证连接正常。

2)操作:

a)把WIFI天线连接到“E3”接口上

b)生成 SSID 的 WPA PSK 文件

wpa_passphrase命令格式:wpa_passphrase + wifi名称 + wifi密码 > /etc/wpa_supplicant.conf
  • 输入命令:

wpa_passphrase MYZR-WIFI-2.4G myzr2012 > /etc/wpa_supplicant.conf

c)连接:

  • 输入命令:

    wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf
    

d)获取IP:

  • 输入命令:

udhcpc -i wlan0

输出有类似如下信息:

udhcpc: started, v1.33.1
udhcpc: sending discover
udhcpc: sending select for 172.16.0.121
udhcpc: lease of 172.16.0.121 obtained, lease time 86940
/etc/udhcpc.d/50default: Adding DNS 114.114.114.114
/etc/udhcpc.d/50default: Adding DNS 8.8.8.8

e)测试连接:

在/etc/resolv.conf 添加下面的内容:

nameserver 8.8.8.8
nameserver 114.114.114.114
  • 输入命令:

ping -I wlan0 www.baidu.com

输出信息:

PING www.a.shifen.com (157.148.69.80) from 172.16.0.121 wlan0: 56(84) bytes of data.
64 bytes from 157.148.69.80 (157.148.69.80): icmp_seq=1 ttl=54 time=9.08 ms
64 bytes from 157.148.69.80 (157.148.69.80): icmp_seq=2 ttl=54 time=7.94 ms
64 bytes from 157.148.69.80 (157.148.69.80): icmp_seq=3 ttl=54 time=8.10 ms
64 bytes from 157.148.69.80 (157.148.69.80): icmp_seq=4 ttl=54 time=8.15 ms
64 bytes from 157.148.69.80 (157.148.69.80): icmp_seq=5 ttl=54 time=9.94 ms
64 bytes from 157.148.69.80 (157.148.69.80): icmp_seq=6 ttl=54 time=11.7 ms
64 bytes from 157.148.69.80 (157.148.69.80): icmp_seq=7 ttl=54 time=9.75 ms
64 bytes from 157.148.69.80 (157.148.69.80): icmp_seq=8 ttl=54 time=9.03 ms
64 bytes from 157.148.69.80 (157.148.69.80): icmp_seq=9 ttl=54 time=8.29 ms
64 bytes from 157.148.69.80 (157.148.69.80): icmp_seq=10 ttl=54 time=8.92 ms
--- www.a.shifen.com ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9016ms
rtt min/avg/max/mdev = 7.944/9.092/11.733/1.095 ms

3)结果:“0% packet loss”表示wifi连接正常

蓝牙测试

  • 接口丝印:U21

功能测试

1)说明:描到蓝牙设备后,发送L2CAP回应请求并接收回答。

2)操作:

a)把天线连接到“E3”接口上

b)启动蓝牙:

  • 输入命令:

hciconfig hci0 up
hciconfig

c)扫描外部蓝牙设备:

  • 输入命令:

hcitool scan

输出信息类似如下:

Scanning ...
    88:46:04:4C:11:A7   Redmi K40

d)发送L2CAP包测试:

  • 输入命令:

l2ping 88:46:04:4C:11:A7

输出信息:

Ping: 88:46:04:4C:11:A7 from B0:F1:EC:A7:E8:03 (data size 44) ...
44 bytes from 88:46:04:4C:11:A7 id 0 time 44.84ms
44 bytes from 88:46:04:4C:11:A7 id 1 time 28.58ms
44 bytes from 88:46:04:4C:11:A7 id 2 time 46.05ms
44 bytes from 88:46:04:4C:11:A7 id 3 time 44.86ms
44 bytes from 88:46:04:4C:11:A7 id 4 time 44.67ms
44 bytes from 88:46:04:4C:11:A7 id 5 time 52.32ms
44 bytes from 88:46:04:4C:11:A7 id 6 time 24.86ms
44 bytes from 88:46:04:4C:11:A7 id 7 time 59.71ms
^C8 sent, 8 received, 0% loss

3)结果:“0% packet loss”表示蓝牙连接正常。

4G模块(EC20)测试

  • 接口丝印:J11

功能测试

1)说明:4G连接成功后,开发板向外网发送ICMP报文来验证连接正常。

2)操作:

a)获取ip

  • 输入指令

    udhcpc -i usb0
    

b)测试连接情况

在/etc/resolv.conf 添加下面的内容:

nameserver 8.8.8.8
nameserver 114.114.114.114
  • 输入指令:

    ping -I usb0 www.baidu.com
    

输出有类似如下信息:

PING www.baidu.com(240e:ff:e020:9ae:0:ff:b014:8e8b (240e:ff:e020:9ae:0:ff:b014:8e8b)) from 240e:47e:2228:19a:44f2:65ff:fe3e:7abe usb0: 56 data bytes
64 bytes from 240e:ff:e020:9ae:0:ff:b014:8e8b (240e:ff:e020:9ae:0:ff:b014:8e8b): icmp_seq=1 ttl=53 time=39.1 ms
64 bytes from 240e:ff:e020:9ae:0:ff:b014:8e8b (240e:ff:e020:9ae:0:ff:b014:8e8b): icmp_seq=2 ttl=53 time=27.6 ms
64 bytes from 240e:ff:e020:9ae:0:ff:b014:8e8b (240e:ff:e020:9ae:0:ff:b014:8e8b): icmp_seq=3 ttl=53 time=45.3 ms
64 bytes from 240e:ff:e020:9ae:0:ff:b014:8e8b (240e:ff:e020:9ae:0:ff:b014:8e8b): icmp_seq=4 ttl=53 time=43.9 ms
64 bytes from 240e:ff:e020:9ae:0:ff:b014:8e8b (240e:ff:e020:9ae:0:ff:b014:8e8b): icmp_seq=5 ttl=53 time=32.4 ms
64 bytes from 240e:ff:e020:9ae:0:ff:b014:8e8b (240e:ff:e020:9ae:0:ff:b014:8e8b): icmp_seq=6 ttl=53 time=40.3 ms
64 bytes from 240e:ff:e020:9ae:0:ff:b014:8e8b (240e:ff:e020:9ae:0:ff:b014:8e8b): icmp_seq=7 ttl=53 time=55.4 ms
--- www.baidu.com ping statistics ---
7 packets transmitted, 7 received, 0% packet loss, time 6011ms
rtt min/avg/max/mdev = 27.625/40.563/55.443/8.375 ms

3)结果:“0% packet loss”表示4G连接正常。

TF卡

  • 接口丝印:J10

功能测试

备注

设备的 TF 卡接口支持热插拔,TF 卡座是自弹式。

  • TF卡插入测试

    1)说明:插入 TF 卡,观察设备能否正确识别到卡。

    2)操作

    a)用一张 TF 卡,插入到设备的 TF 卡接口。

    b)输出信息类似如下:

    ...
    mmc1: new ultra high speed SDR104 SDHC card at address 0001
    mmcblk1: mmc1:0001 SD16G 14.9 GiB
    ...
    

    3)结果:操作后输出信息符合正确预期,表示正确识别到 TF 卡。

  • TF卡弹出测试

    1)弹出 TF 卡,观察设备能否正确响应。

    2)操作

    a)往 TF 卡插入方向往里按(听到“咔”一声松手,TF卡会弹出)。

    b)输出信息类似如下:

    ...
    mmc1: card 0001 removed
    ...
    

    3)结果:操作时的现象符合正确预期,表示 TF 热插拔正常。

USB 3.0

  • 接口丝印:J3

功能测试

1)说明:采用插拔USB存储设备(U盘)的方式进行测试

2)操作:

a)将USB设备插入底板USB接口,系统会输出类似如下信息:

[ 2649.580746] usb 2-1.1: new high-speed USB device number 3 using ehci-platform
[ 2649.735676] usb-storage 2-1.1:1.0: USB Mass Storage device detected
[ 2649.752030] scsi host0: usb-storage 2-1.1:1.0
[ 2649.951147] usbcore: registered new interface driver uas
[ 2650.801744] scsi 0:0:0:0: Direct-Access     aigo     U330             2.00 PQ: 0 ANSI: 4
[ 2650.822371] sd 0:0:0:0: [sda] 61440000 512-byte logical blocks: (31.5 GB/29.3 GiB)
[ 2650.830508] sd 0:0:0:0: Attached scsi generic sg0 type 0
[ 2650.851173] sd 0:0:0:0: [sda] Write Protect is off
[ 2650.871241] sd 0:0:0:0: [sda] No Caching mode page found
[ 2650.875217] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 2650.896991]  sda: sda1
[ 2650.916261] sd 0:0:0:0: [sda] Attached SCSI removable disk

b)将USB设备从底板拔出,系统会输出类似如下信息:

[ 2690.764161] usb 2-1.1: USB disconnect, device number 3

3)现象:操作时的现象符合正确预期,表示正常

usb识别为U盘

  • 接口丝印:J16

功能测试

1)说明:通过usb线在PC识别开发板为U盘

2)操作:

a)创建一个10M大小的文件:

  • 输入命令:

dd if=/dev/zero of=/dev/shm/disk bs=1024 count=10240

输出类似如下信息:

10240+0 records in
10240+0 records out

b)载入模块

  • 输入指令:

modprobe g_mass_storage stall=0 file=/dev/shm/disk removable=1

c)识别U盘

此时PC“我的电脑”会出现U盘的驱动器,将其格式化后,便可对其读写

d)挂载

  • 输入指令

    mount /dev/shm/disk /mnt
    

3)结果:

在电脑写入的文件,重新挂载后,在/mnt下可以看到,在开发板写入文件,重新插拔USB可在PC看到在开发板写入的新文件,即表示功能正常。

usb识别为网口

  • 接口丝印:J16

功能测试

1)说明:通过usb线将usb识别为网口

2)操作:

a)载入模块:

  • 输入命令:

modprobe g_ether

b)设置IP:

  • 输入命令:

ifconfig usb0 192.168.7.2

将PC识别的rndis的本地连接IP设置为192.168.7.8

C)测试网口:

  • 输入指令:

ping 192.168.7.8 -c 2 -w 4

输出信息:

PING 192.168.7.8 (192.168.7.8) 56(84) bytes of data.
64 bytes from 192.168.7.8: icmp_seq=1 ttl=128 time=0.789 ms
64 bytes from 192.168.7.8: icmp_seq=2 ttl=128 time=0.505 ms

--- 192.168.7.8 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 0.505/0.647/0.789/0.142 ms

3)结果:

“0% packet loss”表示测试通过

备注:若WIN10识别rndis为COM口,则需要下载驱动kindle_rndis.inf_amd64-v1.0.0.1.zip 解压后,以管理员权限执行5-runasadmin_register-CA-cer.cmd,然后在COM口处双击,在计算机中查找解压的驱动程序,这样就会有rndis网络了

HDMI

  • 接口丝印:J4

功能测试

1)说明:设备会识别到 HDMI 显示设备并启用,不支持转接(如HDMI转VGA)。

2)操作:连接 HDMI 显示屏,并为设备重新上电,在开机过程中,按回车按键,进入u-boot命令行,输入如下命令:

setenv fdtfile myimx8mpek314.dtb
saveenv
boot

3)结果:设备启动过程中,HDMI显示屏会有显示,即表示功能正常。

备注:使用myimx8mpek314-mipi.dtb或者myimx8mpek314.dtb,HDMI显示屏均会正常显示

LVDS

  • 接口丝印:J8(LVDS0),J9(LVDS1)

功能测试

1)说明:

2)操作:

3)现象:

MIPI DSI

  • 接口丝印:J5

功能测试

1)说明:通过观察MIPI屏是否正常显示。

2)操作:连接 MIPI屏,并为设备重新上电在,开机过程中,按回车按键,进入u-boot命令行,输入如下命令:

setenv fdtfile myimx8mpek314-mipi.dtb
saveenv
boot

3)结果:设备启动过程中,MIPI屏会有显示,即表示功能正常。

备注:使用myimx8mpek314-mipi.dtb,MIPI屏会正常显示

MIPI CSI

  • 接口丝印:J6(CSI1),J7(CSI2)

功能测试

  • MIPI CSI1

    1)说明:

    2)操作

    a)查看摄像头设备

    • 输入命令:

    v4l2-ctl --list-devices
    

    b)摄像头采集图像并显示

    • 输入命令:

    gst-launch-1.0 -e v4l2src device-/dev/video3 ! video/x-raw ! autovideosink
    
    • 输出信息类似如下:

    Setting pipeline to PAUSED ...
    Pipeline is live and does not need PREROLL ...
    Pipeline is PREROLLED ...
    Setting pipeline to PLAYING ...
    New clock: GstSystemClock
    [   71.873621] bypass csc
    [   71.876047] input fmt YUV4
    [   71.878792] output fmt YUYV
    

    3)结果:执行操作后,显示屏实时显示摄像头采集到的图像,即功能正常。

  • MIPI CSI2

    1)说明:

    2)操作

    a)切换设备树文件

    setenv fdtfile myimx8mpek314-ov2775-ov5640.dtb; boot
    

    b)查看摄像头设备

    • 输入命令:

    v4l2-ctl --list-devices
    

    c)摄像头采集图像并显示

    • 输入命令:

    gst-launch-1.0 -e v4l2src device-/dev/video2 ! video/x-raw ! autovideosink
    
    • 输出信息类似如下:

    Setting pipeline to PAUSED ...
    Pipeline is live and does not need PREROLL ...
    Pipeline is PREROLLED ...
    Setting pipeline to PLAYING ...
    New clock: GstSystemClock
    [   27.643936] bypass csc
    [   27.646359] input fmt YUV4
    [   27.649107] output fmt YUYV
    

PCIe

  • 接口丝印:J11

功能测试

1)说明:插入 PCIe 模块,观察设备能否正确识别到模块

2)操作:将PCIe 模块插到设备上,正常开机后,输入命令进行测试:

lspci
  • 输出信息类似如下:

01:00.0 Multimedia controller: Intersil Techwell Device 6869 (rev 01)

3)结果:操作后输出信息符合正确预期,表示正确识别到模块

M2 5G

  • 接口丝印:J12

功能测试

1)说明:

2)操作:

3)现象:

QT测试

功能测试

1)说明:观察qt是否能在设备在运行

2)操作:输入命令进行测试:

/usr/share/qt5everywheredemo-1.0/QtDemo

3)结果:屏幕上正常显示qt界面,表示功能正常

复制更新镜像

  • 接口丝印:J16

功能测试

1)说明:可更新dtb、Image、内核模块

2)操作:

a)复制相应文件到开发板当前目录,以tftp为例

电脑端打开软件 tftpd 地址设置为需更换的文件所在的目录。把开发板的这个网口用网线跟电脑网口连接起来。

b)测试连接:

  • 输入指令:

ping 192.168.137.99 -c 2 -w 4

输出信息:

PING 192.168.137.99 (192.168.137.99): 56 data bytes
64 bytes from 192.168.137.99: seq=0 ttl=64 time=0.311 ms
64 bytes from 192.168.137.99: seq=1 ttl=64 time=0.510 ms
--- 192.168.137.99 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.311/0.410/0.510 ms
“0% packet loss”表示连接正常。

c)传输文件:

  • 输入指令:

tftp -g 192.168.137.99 -r Image
tftp -g 192.168.137.99 -r myimx8mpek314.dtb
tftp -g 192.168.137.99 -r kernel-modules.tar.bz2

d)查看系统是否自动挂载分区

  • 输入指令:

    ls /run/media/mmcblk2p1
    

e)系统自动挂载分区

复制相应的文件到/run/media/mmcblk2p1目录,将原文件替换

  • 输入指令:

    cp Image /run/media/mmcblk2p1
    cp myimx8mpek314.dtb /run/media/mmcblk2p1
    cp kernel-modules.tar.bz2 /run/media/mmcblk2p1
    

f)解压更新内核模块

  • 输入指令:

tar xjvf kernel-modules.tar.bz2 -C /

g)保存并重启

  • 输入指令:

reboot

h)若系统没有自动挂载分区 查看fat分区地址

  • 输入指令:

fdisk -l

输出信息:

......
Device         Boot   Start      End  Sectors  Size Id Type
/dev/mmcblk2p1        20480  1044479  1024000  500M  c W95 FAT32 (LBA)
/dev/mmcblk2p2      1228800 30576639 29347840   14G 83 Linux
......

i)手动挂载

  • 输入指令:

mount /dev/mmcblk2p1 /mnt/

j)复制相应的文件到/mnt目录,将原文件替换

  • 输入指令:

cp Image /mnt
cp myimx8mpek314-mipi.dtb /mnt
cp myimx8mpek314.dtb /mnt

k)保存并重启

  • 输入指令:

reboot

3)结果:

操作时的现象符合正确预期,表示功能正常。


--------------------------------------------------------------------------------
* 珠海明远智睿科技有限公司
* ZhuHai MYZR Technology CO.,LTD.
* Latest Update: 2023/4/26
* Supporter: Zhong JiaYi
--------------------------------------------------------------------------------