MITT 软件包中包含的 I2C 测试模块可用于测试 I2C 控制器及其驱动程序的数据传输。 MITT 板充当连接到 I2C 总线的客户端设备。
在您开始之前
- 获取 MITT 板和 I2C 适配器板。 请参阅 购买硬件以使用 MITT。
- 下载 MITT 软件包。 在受测试的系统上安装它。
- 在 MITT 板上安装 MITT 固件。 请参阅 MITT 入门。
硬件设置
| 总线接口 | 引脚排列 | ACPI 和示意图 | 连接解决方案 |
|---|---|---|---|
| I2C | 需要的所有必要连接(SCL、SDA 和 GND) | ACPI 表 | 简单男性块 (在调试板上) |
将 I2C 适配器连接到 MITT 板上的 JB1 。
使用跳线连接到 I2C 标头(高于 JB1),选择 3.3V 和 1.8V 之间的正确 I2C 电压。 在此图像中,已选择 1.8V。
将适配器板上的 SCL、SDA 和 GND 引脚连接到受测系统上裸露的 SCL、SDA 和 GND 线。
使用 I2C 适配器板上的跳线选择 3.3V 和 1.8V 之间的正确 I2C 电压。 在此图片中,已选择 1.8V。
在 MITT 板上,将开关 SW0 设置为高位置。 当 MITT 通电时,此位置为 I2C 启用默认模式。
使用 RESET 按钮对 MITT 板进行电源循环。 如果连接到 I2C 控制器的线路连接正确, 则 LD7 (SDA 指示器)和 LD6 (SCL 指示器)将打开。 如果任一 LED 未打开,则存在线路问题,因为 SDA 或 SCL 或两者都被拉低。
测试驱动程序和 ACPI 配置
在测试中具有 I2C 控制器的系统上执行以下步骤:
通过运行以下命令安装 MITT 软件包中包含的 WITTTest 驱动程序:
pnputil -a WittTest.infMicrosoft PnP Utility Processing inf : WittTest.inf Driver package added successfully. Published name : oem6.inf Total attempted: 1 Number successfully imported: 1注释
%SystemRoot% \System32 中包括PnpUtil.exe。
修改系统 ACPI 并包括此 ASL 表。 可以使用 Microsoft ASL 编译器。
注释
将“\\_SB_.I2C2”更改为要测试的 I2C 控制器的 ACPI 条目名称。
//TP1 100Khz Standard Target Device(TP1) Device(TP1) { Name (_HID, "STK0001") Name (_CID, "WITTTest") Method(_CRS, 0x0, NotSerialized) { Name (RBUF, ResourceTemplate () { I2CSerialBus ( 0x11, ControllerInitiated, 100000,AddressingMode7Bit, "\\_SB_.I2C2",,, , ) }) Return(RBUF) } } //TP2 400Khz Fast Target Device(TP2) { Name (_HID, "STK0002") Name (_CID, "WITTTest") Method(_CRS, 0x0, NotSerialized) { Name (RBUF, ResourceTemplate () { I2CSerialBus ( 0x12, ControllerInitiated, 400000,AddressingMode7Bit, "\\_SB_.I2C2",,, , ) }) Return(RBUF) } } //TP3 1 Mhz FastPlus Target Device(TP3) { Name (_HID, "STK0003") Name (_CID, "WITTTest") Method(_CRS, 0x0, NotSerialized) { Name (RBUF, ResourceTemplate () { I2CSerialBus ( 0x13, ControllerInitiated, 1000000,AddressingMode7Bit, "\\_SB_.I2C2",,, , ) }) Return(RBUF) } } //TP4 1.4 Mhz High Speed, optional target Device(TP4) { Name (_HID, "STK0004") Name (_CID, "WITTTest") Method(_CRS, 0x0, NotSerialized) { Name (RBUF, ResourceTemplate () { I2CSerialBus ( 0x14, ControllerInitiated, 1400000,AddressingMode7Bit, "\\_SB_.I2C2",,, , ) }) Return(RBUF) } } //TP5 3.4 Mhz High Speed, optional target Device(TP5) { Name (_HID, "STK0005") Name (_CID, "WITTTest") Method(_CRS, 0x0, NotSerialized) { Name (RBUF, ResourceTemplate () { I2CSerialBus ( 0x15, ControllerInitiated, 3400000,AddressingMode7Bit, "\\_SB_.I2C2",,, , ) }) Return(RBUF) } }注释
只有 TP1-3 才能运行 MITT I2C 测试。 TP4 和 TP5 是可选目标。
I2C 自动化测试
在测试的系统上创建文件夹。
将 TAEF 二进制文件复制到文件夹,然后将其添加到 PATH 环境变量。 所需的 TAEF 二进制文件位于 %ProgramFiles(x86)%\Windows Kits\8.1\Testing\Runtimes\TAEF 中。
将 MITT 软件包中的 Muttutil.dll 和 Mitti2ctest.dll 复制到文件夹。
使用 /list 选项查看所有 MITT I2C 测试:
"C:\Program Files (x86)\Windows Kits\10\Testing\Runtimes\TAEF\te" MITTI2CTest.dll /listTest Authoring and Execution Framework v3.7k for x64 C:\Program Files(x86)\MITT\x64\MITTI2CTest.dll MITTI2CTest MITTI2CTest::BasicIORead MITTI2CTest::BasicIOWrite MITTI2CTest::BasicIOSeq MITTI2CTest::BasicIOKernel MITTI2CTest::DeviceNACK MITTI2CTest::LockUnlock MITTI2CTest::CancelRead MITTI2CTest::CancelWrite MITTI2CTest::CancelSequence MITTI2CTest::ClockStretching MITTI2CTest::PerfRead MITTI2CTest::PerfWrite MITTI2CTest::PerfSequence MITTI2CTest::BusRecovery MITTI2CTest::Power MITTI2CTest::Stress
现在,你已准备好运行 I2C 测试。 可以一次性运行单个测试、所有测试或手动运行测试。
使用 /name:<test name> 选项运行单个测试。 此命令运行 BasicIORead 测试:
"C:\Program Files (x86)\Windows Kits\10\Testing\Runtimes\TAEF\te" MITTI2CTest.dll /name:MITTI2CTest::BasicIORead使用以下命令运行所有测试:
"C:\Program Files (x86)\Windows Kits\10\Testing\Runtimes\TAEF\te" MITTI2CTest.dll使用 MITT 软件包中包含的 SPBCmd.exe 工具手动运行测试。
I2C 适配器示意图