MYZR-IMX8MM-EK200-Linux-4.14.98.测试手册

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

MYZR-IMX8MM-EK200-Linux-4.14.98.测试手册

(一). 测试概览

测试项 测试结果 ---- 测试项 测试结果 ---- 测试项 测试结果
指示灯 Pass 复位按键 Pass Type-c Pass
网口 Pass I2C Pass UART2 Pass
GPIO Pass SPI Pass 音频 Pass
TF卡 Pass USB Pass Watchdog Pass
RTC Pass








(二). 设备信息

硬件版本


  • 核心板:MYZR_IMX8MM_CB200_RevA
  • 主板:MYZR_IMX8MM_MB200_RevA

软件版本


  • boot-bin: myimx8mmek200.bin@29a39bbe37ac6
  • kernel-image: Image@da548b57eb4f13af
  • kernel-dtb: myimx8mmek200.dtb@da548b57eb4f13af
  • kernel-modules: kernel-modules.tar.bz2@da548b57eb4f13af


(三). 测试内容

1. 指示灯


  • 接口丝印:LED2。

功能测试

  1. 说明:LED2用于指示主板电源状态。
  2. 操作:给设备上电,LED2亮起。给设备断电,LED2灭。
  3. 结果:操作时,指示灯状态能够对应,即功能正常。


2. 复位按键


  • 接口丝印:SW2。

功能测试

  1. 说明:短按复位按键可以使设备电源复位。
  2. 操作:在主板电源开启的情况下,短按复位按键即可使设备电源复位。
  3. 结果:按下并松开复位按键时,主板重新启动,即功能正常。


3. CPU温度


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

功能测试

  • 说明:系统支持读取CPU温度传感器数据。
  • 操作:
    1.输入信息:
    cat /sys/class/thermal/thermal_zone0/temp

    2.输出信息

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


4.网口


  • 接口丝印:U10
  • 系统接口:eth0

功能测试

  • 说明:采用设备向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”表示测试通过。


5. 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: -- -- -- -- -- -- -- -- 
  • 结果:操作过程中的输出信息与预期基本一致,即功能正常。


6. UART


接口位置 管脚配置 系统接口
J12:RX3 UART3_RXD /dev/ttymxc2
J12:TX3 UART3_TXD /dev/ttymxc2
P21:4 UART4_TXD /dev/ttymxc3
J12:TX3 P21:2 /dev/ttymxc3







功能测试

  • 使用杜邦线连接 J12:TX3 和 J12:RX3。
  • 操作:
    1.使用杜邦线连接 P22:35 和 P22:37。
    • 输入命令
      /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:  
    • 结果:执行测试操作后,输入信息符合正确预期即功能正常。


7. type-c


  • 接口丝印:J5

功能测试

​ 烧录功能,具体参照烧录手册

8. GPIO


管脚位置 管脚配置 IO号
j10:10 GPIO5_IO5 133
j10:15 GPIO4_IO28 124
J10:36 GPIO2_IO6 70
J10:38 GPIO2_IO8 72







功能测试

  • GPIO输出测试
    • 说明:通过系统的接口控制 GPIO 的输出电平。
    • 操作:
      1.输入命令导出 IO 操作接口并配置为输出:
    export OUT_IO_OUT_NUM=124
    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
    • 这时用万用表测试对应的管脚,电压应当是 3.3V。
      3.控制 IO 输出低电平:
    echo 0 > /sys/class/gpio/gpio${OUT_IO_OUT_NUM}/value
    • 这时用万用表测试 J13:16,电压应当是 0V。
    • 结果:在测试操作中控制IO电平时,测得的电压与预期符合即正常。

  • GPIO 输入测试
    • 说明:通过系统的接口配置并读取GPIO的输入电平。
    • 操作:
      1.用杜邦线或跳线帽连接 P22 的 38 和 40 脚。
      2.输入命令导出 IO 操作接口并配置为输入:
    export OUT_IO_IN_NUM=133
    echo ${OUT_IO_IN_NUM} > /sys/class/gpio/export
    echo "in" > /sys/class/gpio/gpio${OUT_IO_IN_NUM}/direction


    3.输入命令控制 P22:38 输出高电平并读取 P22:40 的输入电平:

    # 注释:控制 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.输入命令控制 P22:38 输出低电平并读取 P22:40 的输入电平:

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

9. SPI


接口位置 管脚配置 系统接口
J10:20 ECSPI1_SCLK /dev/spidev
j10:22 ECSPI1_MISO /dev/spidev
J10:24 ECSPI1_MOSI /dev/spidev
J10:18 ECSPI1_SS0 /dev/spidev







功能测试

  • 说明:通过 SPI 接口发送字符串。
  • 在内核源码的 tools/spi/ 目录下有 spidev_test.c 测试程序,可以自己编译。
  • 短接J10:24和J10:22。
  • 操作:
    1.输入命令运行测试程序:
    ./spidev_test.gcc7_arm64.out -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 | 6D 79 5F 73 70 69 5F 74 65 73 74 5F 73 74 72 69 6E 67 __ __         __ __ __ __ __ __ __ __ __ __ __ __  | ..................
  • 结果:看到的输出信息符合正确预期,表示发送成功。


10. 音频


  • 系统接口:wm8524-audio
  • 接口丝印:P1

功能测试

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


11. TF卡


  • 接口丝印:J8

功能测试

  • 设备的 TF 卡接口支持热插拔,TF 卡座是自弹式。
  • TF卡插入测试
    • 说明:插入 TF 卡,观察设备能否正确识别到卡。
    • 操作:
      1.用一张 TF 卡,插入到设备的 TF 卡接口。
      2.输出信息类似如下:
    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 卡。


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


12. USB


  • 接口丝印:J4

功能测试

1.USB设备识别

  • 说明:插入 U 盘,观察设备能否正确响应。
  • 操作:
    1.用一个 U 盘,插入到设备的 USB 接口。
    2.输出信息类似如下:
     usb 1-1.2: new high-speed USB device number 4 using ci_hdrc
    usb-storage 1-1.2:1.0: USB Mass Storage device detected
    scsi host0: usb-storage 1-1.2:1.0
    ..........
    3.结果:操作后输出信息符合正确预期,表示正确识别到 U 盘。


2.U 盘拔出测试

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


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

14. RTC


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

功能测试

1.RTC时间

  • 说明:先读取RTC时间,再设置RTC时间,之后断电重启后再核对RTC时间
  • 操作:
    1.读取 RTC 时间,具体操作如下:
    #输入
     hwclock -f /dev/rtc1
     #输出 可以看到RTC存储的时间,类似如下:
     1970-01-01 00:00:21.530265+00:00

    2.设置 RTC 时间,具体操作如下:

    #输入指令更新系统时间:
     date -s "2023-02-06 12:34:56"
     #输出 可以看到RTC存储的时间,类似如下:
     Mon Feb  6 12:34:56 UTC 2023

    3.输入指令设置系统时间到 RTC:

    hwclock -w -f /dev/rtc1

    4.断电重启设备。

    5.核对 RTC 时间,具体操作如下:

    输入指令:
       hwclock -f /dev/rtc1

    6.可以看到RTC存储的时间与我们设置的时间基本相同,类似如下:

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

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


2.wakealarm 功能

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

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

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


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