MITT 中的 GPIO 测试
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) 、停靠/取消停靠 (扩展坞) ,以及从连接到 MITT) 的 GPIO 适配器板 (板/笔记本电脑 (模式) 行连接到受测系统上的相应引脚。
12 引脚标头连接到各个 GPIO 线路,如下图所示。
GPIO 板上输出引脚的示意图。 引脚必须与开关并行放置,以便 FET 可以将线路拉低,就像按下开关一样。
可选。 如果想要在卷或指示器上运行 MITT GPIO 测试,则可以通过设置这些注册表项跳过 GPIO 自动化中的相关测试。 每个条目都是一个 DWORD,值为 1 启用测试;0 禁用它。
数据量(Volume)
HKEY_CURRENT_USER\Software\Microsoft\MITT\GPIO\RunVolumeTest
指示灯
HKEY_CURRENT_USER\Software\Microsoft\MITT\GPIO\RunIndicatorsTest
运行 GPIO 自动化测试
若要使用 WDTF 手动运行 GPIO 测试,请执行以下任务:
- 将 mittsimpleioaction.dll 从 MITT 软件包复制到 %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 写入到控制通道以激活 GPIO 排序程序。 GPIO 模块将开始排序。
生成输入序列
若要生成序列,需要以下值:
间隔值
间隔值是一个位掩码,指示在间隔期间按下哪个按钮。 位掩码中的零值表示该按钮在时间间隔内未按下。 下面是可能的位索引值:
16 位值的位索引 受测系统上的使用情况 0 电源按钮启用 (“1”启用输出) 1 停靠指示器启用 (“1” 启用输出) 2 卷增大启用 (“1” 启用输出) 3 旋转锁启用 (“1” 启用输出) 4 调低音量启用 (“1”启用输出) 5 Slate/Laptop 切换启用 (“1”启用输出) 6-7 未使用 8 电源按钮值 (“1”按下开关) 9 停靠指示器值 (“1”按下开关) 10 音量增大值 (“1”按下开关) 11 旋转锁值 (“1”按下开关) 12 音量调低值 (“1”按下开关) 13 平板/笔记本电脑切换值 (“1”按下开关) 14-15 未使用 时钟乘数
时钟乘数是移动到下一个数据模式之前,按钮 (以 1 微秒为增量) 的保持时间。 GPIO 测试模块保留最后一个数据模式,直到重置线路。
使用小时钟乘数与大时钟乘数有一个权衡。 乘数值越小,精度就越高,这要求在数据模式中创建更多行以覆盖时间跨度。 创建数据模式文件时,需要确定所需的数据包与时钟乘数值之间的适当平衡。
通过使用前面的示例,可以创建输入注入文件。 若要生成输入序列,需要通信协议。 从 MITT 板发送到受测系统的数据按以下模式排列:
GPIO 测试线路中没有协议级错误检查。 如果存在协议错误,则 MITT 将显示未知错误。
GPIO 适配器示意图