测试手册
测试概览
测试项 |
测试结果 |
测试项 |
测试结果 |
测试项 |
测试结果 |
||
|---|---|---|---|---|---|---|---|
指示灯 |
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.81d)执行网口测试命令
输入指令:
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 ms3)结果:“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 adapterb)检测总线上的 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_string3)结果:看到的输出信息符合正确预期,表示发送成功。
音频
系统接口:wm8960-audio
功能测试
1)说明:播放音频文件进行测试。
2)操作
a)把耳机或喇叭插入丝印 P1 对应的接口。
b)输入命令进行测试:
aplay /usr/share/sounds/alsa/Front_Center.wav3)结果:执行测试命令时,耳机可以听到声音,即功能正常。
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/wakealarmb)使系统进入休眠模式,输入下面指令:
echo freeze > /sys/power/state3)结果:上面两条指令执行完后,系统将不响应串口终端输入。等 wakealarm 唤醒系统后,串口终端可以继续操作即测试正常。
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秒内设备重启(说明:硬件看门狗开启后,不会关闭,关闭程序会停止喂狗,导致超时重启)。
--------------------------------------------------------------------------------
* 珠海明远智睿科技有限公司
* ZhuHai MYZR Technology CO.,LTD.
* Latest Update: 2023/5/08
* Supporter: Zhong JiaYi
--------------------------------------------------------------------------------