MITT 中的 I2C 控制器测试
MITT 软件包中包含的 I2C 测试模块可用于测试 I2C 控制器及其驱动程序的数据传输。 MITT 板充当连接到 I2C 总线的客户端设备。
开始之前
- 获取 MITT 板和 I2C 适配器板。 请参阅 购买硬件以使用 MITT。
- 下载 MITT 软件包。 在受测试的系统上安装它。
- 在 MITT 板上安装 MITT 固件。 请参阅 MITT 入门。
硬件设置
总线接口 | Pin-out | ACPI 和示意图 | 连接解决方案 |
---|---|---|---|
I2C | 需要的所有行(SCL、SDA 和 GND) | ACPI 表 | 简单男性块 (在调试板上) |
连接 MITT 板上的 I2C 适配器到 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 启用默认模式。
使用 RE标准版T 按钮为 MITT 板供电。 如果连接到 I2C 控制器的线路连接正确, 则 LD7 (SDA 指示器)和 LD6 (SCL 指示器)将打开。 如果任一 LED 未打开,则存在线路问题,因为 SDA 或 SCL 或 SCL 或两者都拉低。
测试驱动程序和 ACPI 配置
在测试中具有 I2C 控制器的系统上执行以下步骤:
通过运行以下命令安装 MITT 软件包中包含的 WITTTest 驱动程序:
pnputil -a WittTest.inf
Microsoft PnP Utility Processing inf : WittTest.inf Driver package added successfully. Published name : oem6.inf Total attempted: 1 Number successfully imported: 1
修改系统 ACPI 并包括此 ASL 表。 可以使用 Microsoft ASL 编译器。
注意
更改“\\_SB_。要测试的 I2 C 控制器的 I2C2“到 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 /list
Test 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 适配器示意图