MITT 软件包中包含的 GPIO 测试模块可用于测试以下按钮音量增加、音量下降、电源和旋转锁。 可以使用这些测试来检测 GPIO 驱动程序和微控制器的问题,并确定系统对短或长推送的响应是否是所需的响应。 连接到按钮的线路被 MITT 板在物理上拉低。
在您开始之前
- 获取 MITT 板和 GPIO 适配器板。 请参阅 购买硬件以使用 MITT。
- 下载 MITT 软件包。 在受测试的系统上安装它。
- 在 MITT 板上安装 MITT 固件。 请参阅 MITT 入门。
硬件设置
| 总线接口 | 引脚排列 | ACPI 和示意图 | 连接解决方案 |
|---|---|---|---|
| GPIO 按钮 | 按钮和指示器线:音量向上/向下、电源、旋转锁、笔记本电脑/石板指示器、停靠指示器 | 图表 | 简单男性块 (在调试板上) |
| GPIO 控制器 | 使用的 GPIO 控制器引脚布局和索引 |
|
简单男性块 (在调试板上) |
在 MITT 板上,标识 GPIO 连接器。 它使用最左侧的 12 针头,标记为 JA1,如这张图所示。
将 GPIO 适配器板连接到 JA1 标头。
将 MITT 板上的电源跳线连接到 3V3。
将滑块向上推送到 GPIO 标头旁边的开关上,为板供电。
将音量增加(volu)、音量下降(vold)、停靠/取消停靠(dock)和平板/笔记本模式(mode)线路从连接到 MITT 的 GPIO 适配器板连接到受测系统上的相应引脚。
12 针座接线到每个 GPIO 线路,如下图所示。
GPIO 板上输出引脚的示意图。 引脚必须与开关并行放置,使 FET 可以将线路拉低,就像按下开关一样。
可选。 如果您想要在卷或指示器上运行 MITT GPIO 测试,但不想同时运行这两个测试,可以通过设置这些注册表项来跳过 GPIO 自动化中的相关测试。 每个条目都是 DWORD,值为 1 启用测试,0 禁用测试。
音量
HKEY_CURRENT_USER\Software\Microsoft\MITT\GPIO\RunVolumeTest
指示器
HKEY_CURRENT_USER\Software\Microsoft\MITT\GPIO\RunIndicatorsTest
运行 GPIO 自动化测试
若要使用 WDTF 手动运行 GPIO 测试,请执行以下任务:
- 将 MITT 软件包中的 mittsimpleioaction.dll 复制到 %ProgramFiles(x86)%\Windows Kits\8.1\Testing\Runtimes\WDTF\RunTime\Actions\SimpleIO
- 运行 %ProgramFiles(x86)%\Windows Kits\8.1\Testing\Runtimes\WDTF\RunTime\UnRegisterWDTF.exe。
- 运行%ProgramFiles(x86)%\Windows Kits\8.1\Testing\Runtimes\WDTF\RunTime\Actions ..\RegisterWDTF.exe /nogacinstall
- 通过运行 MITT 软件包中包含的 SimpleIO_MITT_ GPIO _Sample.vbs 来启动 GPIO 自动化测试。
示例:自定义 GPIO 输入注入
此示例使用一个文件 ,Example.txt,其中包含按电源按钮两秒钟的序列,然后释放按钮。 下面是文件的内容:
'h001E8480
'b0000000000011111
'b0000000100011111
'b0000000000011111
运行以下命令:
Muttutil.exe -SetChannel 00
Muttutil.exe -WriteData 0000
Muttutill.exe –SetChannel 01
Muttutil.exe –WriteDataFromFile Example.txt
Muttutil.exe –SetChannel 00
Muttutil.exe –Writedata 0001
- 具有 00 的 SetChannel 指示控制通道将接收数据。
- 包含 0000 的 WriteData 会暂停所有测试模块。
- SetChannel 选项通过指定 01 来指示 GPIO 通道将接收数据。
- 包含文件名的 WriteDataFromFile,用于将示例输入文件的内容发送到 GPIO 模块。
- 使用 00 的 SetChannel 切换回控制通道后将接收数据。
- 将包含 0001 的 WriteData 写入控制通道以激活 GPIO 序列器。 GPIO 模块将开始排序。
生成输入序列
若要生成序列,需要以下值:
间隔值
间隔值是一个位掩码,指示在间隔期间按下哪个按钮。 位掩码中的零值表示该按钮在时间间隔内未按下。 下面是可能的值位索引值:
16 位值中的位索引 正在测试的系统上的使用情况 0 电源按钮启用(“1”表示启用输出) 1 扩展坞指示器启用(“1”启用输出) 2 音量增大启用(“1”启用输出) 3 旋转锁启用(“1”启用输出) 4 音量减小功能启用 (“1” 启用输出) 5 “平板/笔记本电脑”切换开关启用(“1”启用输出) 6-7 未使用 8 电源按钮值(“1”按开关) 9 停靠指示值(“1”表示按下开关) 10 音量增加值(“1”按开关) 11 旋转锁值(“1”表示按下开关) 12 调低音量值(“1”按开关) 13 平板/笔记本电脑切换值(“1”触发开关) 14-15 未使用 时钟乘数
时钟乘数是每个数据模式在移动到下一个数据模式之前按钮(以一微秒增量递增)的保持时间。 GPIO 测试模块保留最后一个数据模式,直到重置线路。
使用小倍频器与大倍频器存在权衡。 乘数的较小值允许更精确,这要求在数据模式中创建更多行来覆盖时间跨度。 创建数据模式文件时,需要确定所需的数据包与时钟乘数值之间的适当平衡。
通过使用前面的示例,可以创建输入注入文件。 若要生成输入序列,需要通信协议。 从 MITT 板发送到受测系统的数据按以下模式进行排列:
GPIO 测试线路中没有协议级错误检查。 如果存在协议错误,MITT 将显示未知错误。
GPIO 适配器示意图