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。
功能测试
- 说明:LED2用于指示主板电源状态。
- 操作:给设备上电,LED2亮起。给设备断电,LED2灭。
- 结果:操作时,指示灯状态能够对应,即功能正常。
2. 复位按键
- 接口丝印:SW2。
功能测试
- 说明:短按复位按键可以使设备电源复位。
- 操作:在主板电源开启的情况下,短按复位按键即可使设备电源复位。
- 结果:按下并松开复位按键时,主板重新启动,即功能正常。
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 发送的字符串。
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 --------------------------------------------------------------------------------