测试手册

测试概览

测试项

测试结果

测试项

测试结果

测试项

测试结果

指示灯

Pass

复位按键

Pass

USB

Pass

网口

Pass

I2C

Pass

UART

Pass

GPIO

Pass

SPI

Pass

音频

Pass

TF卡

Pass

RTC

Pass

watchdog

Pass

设备信息

硬件版本

  • 核心板:MYZR_IMX8MM_CB200_RevB

  • 主板:MYZR_IMX8MM_MB200_RevB

软件版本

  • image:Image-5.10.72-492a823d1cf5a9f54f

  • fdt_file:myimx8mmek200.dtb-492a823d1cf5a9f54f

  • kernel-modules:kernel-modules.tar.bz2-492a823d1cf5a9f54f

指示灯

接口丝印:LED1、LED2、LED3

功能测试

1)说明:LED1用于指示主板电源状态。

2)操作:给设备上电,LED1亮起。给设备断电,LED1灭。

3)结果:操作时,指示灯状态能够对应,即功能正常。

复位按键

  • 接口丝印:SW2

功能测试

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

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

3)结果:按下并松开复位按键时,主板重新启动,即功能正常。

CPU温度

  • 系统接口:/sys/class/thermal/thermal_zone0/temp

功能测试

1)说明:系统支持读取CPU温度传感器数据。

2)操作

  • 输入命令:

cat /sys/class/thermal/thermal_zone0/temp
  • 输出信息:

58000

备注

输出的数值除以1000即摄氏温度

3)结果:输入命令后,输出信息正常,即功能正常。

网口

  • 接口丝印:U10

  • 系统接口:eth0

功能测试

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

2)操作

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

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

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

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.43 ms
64 bytes from 192.168.137.99: icmp_seq-2 ttl-64 time-1.53 ms

--- 192.168.137.99 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev - 1.437/1.487/1.538/0.063 ms

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

I2C

功能测试

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

2)操作

a)检测系统的 I2C 总线

  • 输入命令:

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

i2c-1    i2c             30a30000.i2c                            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。

  • 输出有类似如下信息,非 “--” 表示在 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: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- UU
70: -- -- -- -- -- -- -- --

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

UART

接口位置

管脚位置

管脚配置

系统接口

接口功能

P2

P2:4

UART2_TXD

/dev/ttymxc1

调试串口

P2:5

UART2_RXD

P2

P2:1

UART4_TXD

/dev/ttymxc3

MCU串口

P2:2

UART4_RXD

J12

J12:RX3

UART3_RXD

/dev/ttymxc2

串口

J12:TX3

UART3_TXD

J12

J12:A

UART1_TXD

/dev/ttymxc0

串口

J12:B

UART1_RXD

功能测试

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

2)操作

a)使用杜邦线连接 J12:RX3 和 J12:TX3。

b)运行测试程序:

  • 输入命令:

./serial_test_arm64.out /dev/ttymxc2 "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 号

J10:10

GPIO4_IO23

119

J10:18

GPIO5_IO27

123

J10:12

GPIO1_IO26

122

J10:20

GPIO4_IO28

124

J10:14

GPIO1_IO24

120

J10:22

GPIO4_IO29

125

J10:18

GPIO1_IO25

121

J10:31

GPIO5_IO5

133

功能测试

  • GPIO 输出测试

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

    2)操作

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

    export OUT_IO_OUT_NUM=122
    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
    

    备注

    这时用万用表测试对应的管脚,电压应当是 3.3V。

    c)控制 IO 输出低电平:

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

    备注

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

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

  • GPIO 输入测试

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

    2)操作

    a)用杜邦线或跳线帽连接 J10 的 10 和 12 脚。

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

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

    c)输入命令控制 J10:12 输出高电平并读取 J10:10 的输入电平:

    # 注释:控制 J10:12 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)输入命令控制 J10:12 输出低电平并读取 J10:10 的输入电平:

    # 注释:控制 J10:12 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)结果:在测试操作中,读取到的电平符合正确预期,即功能正常。

SPI

管脚位置

管脚配置

系统接口

管脚位置

管脚配置

系统接口

J5:4

SPI1_SS0

/dev/spidev3.0

J5:14

SPI2_SS0

/dev/spidev1.0

J5:6

SPI1_SCLK

J5:16

SPI2_SCLK

J5:8

SPI1_MOSI

J5:18

SPI2_MOSI

J5:10

SPI1_MISO

J5:20

SPI2_MISO

功能测试

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

备注

在内核源码的 tools/spi/ 目录下有 spidev_test.c 测试程序,可以自己编译。

2)操作

  • 使用跳线连接 SPI2 的 MISO 和 MOSI

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

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

备注

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

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

spi mode: 0x0
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 | 6D 79 5F 73 70 69 5F 74 65 73 74 5F 73 74 72 69 6E 67 __ __ __ __ __ __ __ __ __ __ __ __ __ __  | my_spi_test_string

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

音频

  • 系统接口:wm8960-audio

功能测试

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

2)操作

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

b)输入命令进行测试:

aplay /usr/share/sounds/alsa/Front_Center.wav

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

TF卡

  • 接口丝印:J5

功能测试

备注

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

  • TF卡插入测试

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

    2)操作

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

    b)输出信息类似如下:

    ...
    mmc1: new high speed SDHC card at address 0001
    mmcblk1: mmc1:0001 TF 4G 3.68 GiB
    ...
    

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

  • TF卡弹出测试

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

    2)操作

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

    b)输出信息类似如下:

    ...
    mmc1: card 0001 removed
    ...
    

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

USB

  • 接口丝印:J18

功能测试

  • USB设备识别

    1)说明:插入 U 盘,观察设备能否正确响应。

    2)操作:

    a)用一个 U 盘,插入到设备的 USB 接口。

    b)输出信息类似如下:

    ...
    usb 1-1.2: new high-speed USB device number 4 using xhci-hcd
    usb-storage 1-1.2:1.0: USB Mass Storage device detected
    scsi host0: usb-storage 1-1.2:1.0
    ...
    

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

  • U 盘拔出测试

    1)拔出 U 盘,观察设备能否正确响应。

    2)操作:拔出 U 盘,可以看到输出信息类似如下:

    ...
    usb 1-1.2: USB disconnect, device number 4
    ...
    

    3)结果:操作时的现象符合正确预期,表示 U 盘拔出正常。

RTC

  • 设备接口:/dev/rtc

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

功能测试

  • RTC时间

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

    2)操作

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

    • 输入指令:

    hwclock -f /dev/rtc1
    
    • 可以看到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/rtc1
    

    c)断电重启设备。

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

    • 输入指令:

    hwclock -f /dev/rtc1
    
    • 可以看到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 唤醒系统后,串口终端可以继续操作即测试正常。

Watchdog

  • 系统设备:/dev/watchdog

功能测试

  1. 看门狗超时复位

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

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

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

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

  2. 看门狗喂狗保持

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

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

    /unit_tests/Watchdog/wdt_driver_test.out 2 1 0
    

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

    备注

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


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