MYZR-IMX8MP-EK314-Linux-5.10.72.测试手册

来自明远智睿的wiki
跳转至: 导航搜索

MYZR-IMX8MP-EK314-Linux-5.10.72.测试手册

(一). 测试概览

测试项测试结果----测试项测试结果----测试项测试结果
电源按键 Pass 复位按键 Pass 指示灯 Pass
Watchdog Pass 休眠唤醒 Pass RTC Pass
网口 Pass CAN Pass I2C Pass
UART Pass GPIO Pass PWM Pass
SPI Pass QSPI Pass 音频 Pass
USB WiFi Pass TF卡 Pass USB USB 3.0 Pass
HDMI Pass











(二). 设备信息

硬件版本


  • 核心板:MYZR_IMX8MP_MB314_RevA
  • 主板:MYZR_IMX8MP_MB314_RevA

软件版本


  • image: Image-5.10.72-20230316.gdcb9071261a3
  • fdt_file: myimx8mpek314-5.10.72-20230316.gdcb9071261a3.dtb
  • kernel-modules: kernel-modules-5.10.72-20230316.gdcb9071261a3.tar.bz2


(三). 测试内容

1. 电源按键


  • 接口丝印:SW2

功能测试

  • 关闭电源
    1)说明:长按电源按键可以关闭设备电源。
    2)操作:在接通设备主电源并打开主电源开关的情况下,按住 SW2 按键约 5 秒左右即可关闭设备电源。
    3)结果:看到主板指示灯灭掉即功能正常。
  • 开启电源
    1)说明:短按电源按键可以开启设备电源。
    2)操作:在前面电源关闭的情况下,按住 SW2 按键约 1 秒左右即可开启设备电源。
    3)结果:看到主板指示灯亮起来即功能正常。


2. 复位按键


  • 接口丝印:SW1

功能测试

​ 1)说明:短按复位按键可以使设备电源复位。
​ 2)操作:在主板电源开启的情况下,短按 SW1 即可使设备电源复位。
​ 2)结果:按下时可以看到主板指示灯灭,松开时可以看到主板指示灯亮起,即功能正常。


3. 指示灯


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

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

功能测试

1.核心板指示灯

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

​ 2)操作:无

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

2.主板指示灯

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

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

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

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


4. 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秒内设备重启(说明:硬件看门狗开启后,不会关闭,关闭程序会停止喂狗,导致超时重启)。


5.休眠唤醒


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

功能测试

1.freeze(S0)模式休眠

  • 说明:通过系统接口可以使设备进入休眠。
  • 操作:
    • 在命令行界面输入下面指令:
    #输入
        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.
        ...
  • 结果:执行指令后的输出信息基本匹配,同时看到核心板指示灯灭掉,即功能正常。

2.mem(S2)模式休眠

  • 说明:mem(S2)模式下,设备进入低功耗模式。
  • 操作
    • 在命令行界面输入下面指令:
     #输入
         echo mem > /sys/power/state
     #输出
     [   40.562505] PM: suspend entry (deep)
     [   40.603084] Filesystems sync: 0.036 seconds
     [   40.610065] Freezing user space processes ... (elapsed 0.001 seconds) done.
     [   40.618654] OOM killer disabled.
     [   40.621893] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
     [   40.630613] printk: Suspending console(s) (use no_console_suspend to debug)
     
  • 结果:执行指令后的输出信息基本匹配,同时看到核心板指示灯灭掉,即功能正常。


6. RTC


  • 设备接口:/dev/rtc
  • 测试说明:RTC 测试需要安装纽扣电池,电池位置在丝印 BT1。

功能测试


1. RTC时间

  • 说明:先读取RTC时间,再设置RTC时间,之后断电重启后再核对RTC时间
  • 操作:
    • 读取 RTC 时间,具体操作如下:
    #输入
     hwclock -f /dev/rtc1
     #输出 可以看到RTC存储的时间,类似如下:
     1970-01-01 00:00:21.530265+00:00
    • 设置 RTC 时间,具体操作如下:
    #输入指令更新系统时间:
        date -s "2023-02-06 12:34:56"
    #输出 可以看到RTC存储的时间,类似如下:
        Mon Feb  6 12:34:56 UTC 2023
    • 输入指令设置系统时间到 RTC:
    hwclock -w -f /dev/rtc1
    • 断电重启设备。
    • 核对 RTC 时间,具体操作如下:
    • 输入指令:
    hwclock -f /dev/rtc1
    • 可以看到RTC存储的时间与我们设置的时间基本相同,类似如下:
    2023-02-06 12:35:34.485664+00:00
  • 结果:执行操作后,核对 RTC 时间基本没有问题,且操作过程中的输出符合预期即功能正常。

2.wakealarm 功能

  • 说明:设备的 RTC 可以产生 wakealarm,可用于唤醒设备休眠。
  • 操作
    1.设置 10 秒后产生一个 wakealarm 信号,输入下面指令:
    echo +10 > /sys/class/rtc/rtc1/wakealarm

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

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


7.网口


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

功能测试

1.网口一

  • 说明:采用设备向PC发送ICMP报文的方式进行测试。
  • 操作:
    1.配置电脑有线网卡IP为 192.168.137.99。
    2.把开发板的这个网口用网线跟电脑网口连接起来。
    3.配置开发板网口IP,具体配置命令如下:
ifconfig eth0 up
ifconfig eth0 192.168.137.81

​ ​ ​ ​ ​ ​ 4.执行网口测试命令。

#输入
    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=128 time=2.56 ms
    64 bytes from 192.168.137.99: icmp_seq=2 ttl=128 time=1.56 ms
    
    --- 192.168.137.99 ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1002ms
    rtt min/avg/max/mdev = 1.563/2.064/2.566/0.503 ms

​ ​ ​ ​ ​ ​ 5.结果:“0% packet loss”表示测试通过。


2.网口二

  • 说明:采用设备向PC发送ICMP报文的方式进行测试。
  • 操作:
    1.配置电脑有线网卡IP为 192.168.137.99。
    2.把开发板的这个网口用网线跟电脑网口连接起来。
    3.配置开发板网口IP,具体配置命令如下:
ifconfig eth1 up
ifconfig eth1 192.168.137.82

​ ​ ​ ​ ​ ​ 4.执行网口测试命令。

#输入指令
       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=128 time=2.56 ms
      64 bytes from 192.168.137.99: icmp_seq=2 ttl=128 time=1.56 ms
       
      --- 192.168.137.99 ping statistics ---
      2 packets transmitted, 2 received, 0% packet loss, time 1002ms
      rtt min/avg/max/mdev = 1.563/2.064/2.566/0.503 ms
      

​ ​ ​ ​ ​ ​ 5.结果:“0% packet loss”表示测试通过。


8.CAN


管脚位置管脚配置 系统接口
J14:1 CAN1H can0
J14:3 CAN1L
J14:6 CAN2L can1
J14:4 CAN2H







功能测试

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

2.操作

  • 使用杜邦线将 J14:1 与 J14:4 连接,J14:3 与 J14:6 连接。
  • 在串口终端输入命令配置 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 
  • 在串口终端输入命令使 CAN1(can0) 后台接收:
     candump can0 &
  • 在串口终端输入命令使 CAN2(can1) 发送测试数据:
     #输入命令:
      cansend can1 1F334455#1122334455667788
     #输出信息:
      can0  1F334455   [8]  11 22 33 44 55 66 77 88

3.操作时输出信息正确,即功能正常.


9. I2C


功能测试

  • 说明:执行 I2C 检测指令并观察结果。
  • 操作
    1.检测系统的 I2C 总线:
    • 输入命令
    i2cdetect -l 
    • 输出信息
    i2c-1   i2c         30a30000.i2c                        I2C adapter
    i2c-2   i2c         30a40000.i2c                        I2C adapter
    i2c-0   i2c         30a20000.i2c                        I2C adapter

    2.检测总线上的 I2C 设备

    • 输入命令
    i2cdetect -y 2
    • 输出信息
        0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
     00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
     10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
     20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
     30: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- 
     40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
     50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
     60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 6f 
     70: -- -- -- -- -- -- -- -- 
  • 结果:操作过程中的输出信息与预期基本一致,即功能正常。


10. UART


管脚位置管脚配置 系统接口
J14:8 UART1_TXD can0
J14:9 UART1_RXD
J14:10 UART1_RTS
J14:11 UART1_CTS







功能测试

  • 使用杜邦线连接J14:8和 J14:8。
  • 说明:使用串口自发自收的方式进行测试。
  • 操作
    1.使用杜邦线连接J14:8和 J14:8。
    • 输入命令
    /my-demo/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: 
    2.结果:执行测试操作后,输入信息符合正确预期即功能正常。


11. 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







功能测试

1.GPIO输出测试

  • 说明:通过系统的接口控制 GPIO 的输出电平。
  • 操作
    1.输入命令导出 IO 操作接口并配置为输出:
    export OUT_IO_OUT_NUM=52
    echo ${OUT_IO_OUT_NUM} > /sys/class/gpio/export
    echo "out" > /sys/class/gpio/gpio${OUT_IO_OUT_NUM}/direction

    2.输入命令控制 IO 输出高电平:

    echo 1 > /sys/class/gpio/gpio${OUT_IO_OUT_NUM}/value
    • 这时用万用表测试对应的管脚J13:16,电压应当是 3.3V。

    3.控制 IO 输出低电平:

    echo 0 > /sys/class/gpio/gpio${OUT_IO_OUT_NUM}/value
    • 这时用万用表测试 J13:16,电压应当是 0V。
  • 结果:在测试操作中控制IO电平时,测得的电压与预期符合即正常。


2.GPIO 输入测试

  • 说明:通过系统的接口配置并读取GPIO的输入电平。
  • 操作
    1.用杜邦线或跳线帽连接 J13 的 15 和 16 脚。
    2.输入命令导出 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

    3.输入命令控制 J13:16 输出高电平并读取 J13:15的输入电平:

    # 注释:控制 P22:38 IO 输出高电平
       echo 1 > /sys/class/gpio/gpio${OUT_IO_OUT_NUM}/value
    # 注释:读取 IO 的输入电平
       cat /sys/class/gpio/gpio${OUT_IO_IN_NUM}/value
    • 这时命令行界面终端应当输出字符“1”(表示高电平)。

    4.输入命令控制 J13:16 输出低电平并读取 J13:15 的输入电平:

    # 注释:控制 P22:38 IO 输出低电平
       echo 0 > /sys/class/gpio/gpio${OUT_IO_OUT_NUM}/value
    # 注释:读取 IO 的输入电平
       cat /sys/class/gpio/gpio${OUT_IO_IN_NUM}/value
    • 这时命令行界面终端应当输出字符“0”(表示低电平)。
  • 结果:在测试操作中,读取到的电平符合正确预期,即功能正常。


12.PWM


  • 接口位置:J13:27
  • 系统接口:/sys/class/pwm/pwmchip0

功能测试

1.说明:配置 PWM 并观察。
2.操作:

  • 输入命令配置 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 
  • 使用示波器检测 J13:27,可以看到电平周期性的变化。

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


13. SPI


功能测试

  • 说明:通过 SPI 接口发送字符串。
  • 在内核源码的 tools/spi/ 目录下有 spidev_test.c 测试程序,可以自己编译。
  • 操作:
    1.输入命令运行测试程序:
/my-demo/spidev_test -D /dev/spidev0.0 -v -p my_spi_test_string
  • “my_spi_test_string” 是通过 spi 发送的字符串。
    2.输出信息
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 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 __ __ __ __ __ __ __ __ __ __ __ __ __ __  | .................. 
  • 结果:看到的输出信息符合正确预期,表示发送成功。


14. QSPI


  • 设备接口:/dev/mtd0

功能测试

  • 说明:通过写文件并读取来验证功能。
  • 操作:
    1.输入命令准备 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

2.输入命令写文件并读取

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

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


15. 音频


  • 系统接口:wm8524-audio

功能测试

  • 说明:播放音频文件进行测试。
  • 操作
    1. 把耳机或喇叭插入丝印 P1 对应的接口。
    2. 输入命令进行测试:
aplay /unit_tests/ASRC/audio8k16S.wav
  • 结果:执行测试命令时,耳机可以听到声音,即功能正常。


16. TF卡


  • 接口丝印:J10

功能测试

  • 设备的 TF 卡接口支持热插拔,TF 卡座是自弹式.
  • TF卡插入测试:
    • 说明:插入 TF 卡,观察设备能否正确识别到卡。
    • 操作:
      • 用一张 TF 卡,插入到设备的 TF 卡接口。
      • 输出信息类似如下:
mmc1: host does not support reading read-only switch, assuming write-enable
mmc1: new high speed SDHC card at address 0001
mmcblk1: mmc1:0001 SD16G 14.9 GiB 
 mmcblk1: p1
fsl-spdif-dai 308a0000.spdif: Unbalanced pm_runtime_enable!
fsl-spdif-dai 308a0000.spdif: imx_pcm_dma_init failed: -517
imx-spdif sound-spdif: ASoC: CPU DAI (null) not registered
imx-spdif sound-spdif: snd_soc_register_card failed: -517
FAT-fs (mmcblk1p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
  • 结果:操作后输出信息符合正确预期,表示正确识别到 TF 卡。

2.TF卡弹出测试

  • 弹出 TF 卡,观察设备能否正确响应。
  • 操作:
    • 往 TF 卡插入方向往里按(听到“咔”一声松手,TF卡会弹出)。
    • 输出信息类似如下:
    mmc1: card 0001 removed
    FAT-fs (mmcblk1p1): FAT read failed (blocknr 2308)
  • 结果:操作时的现象符合正确预期,表示 TF 热插拔正常。


17. USB3.0


  • 接口丝印:J3

功能测试

1.USB设备识别

  • 说明:插入 U 盘,观察设备能否正确响应。
  • 操作:
    • 用一个 U 盘,插入到设备的 USB 接口。
    • 输出信息类似如下:
    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
  • 结果:操作后输出信息符合正确预期,表示正确识别到 U 盘。

2.U 盘拔出测试

  • 拔出 U 盘,观察设备能否正确响应。
  • 操作:
    • 拔出 U 盘,可以看到输出信息类似如下:
    ...
    usb 1-1.2: USB disconnect, device number 4
    ...
  • 结果:操作后输出信息符合正确预期,表示正确识别到 U 盘。


18. HDMI


  • 接口丝印:J4

功能测试

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

2.操作:连接 HDMI 显示屏,并为设备重新上电。

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



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