MITT 中的 I2C 控制器测试

MITT 软件包中包含的 I2C 测试模块可用于测试 I2C 控制器及其驱动程序的数据传输。 MITT 板充当连接到 I2C 总线的客户端设备。

开始之前

硬件设置

MITT I2C 硬件设置的图片。

总线接口 Pin-out ACPI 和示意图 连接解决方案
I2C 需要的所有行(SCL、SDA 和 GND) ACPI 表 简单男性块 (在调试板上)
  1. 连接 MITT 板上的 I2C 适配器到 JB1

    MITT I2C 标头的图片。

  2. 使用跳线连接到 I2C 标头(高于 JB1),选择 3.3V 和 1.8V 之间的正确 I2C 电压。 在此映像中,已选择 1.8V。

  3. 连接适配器板上的 SCL、SDA 和 GND 引脚连接到受测系统上公开的 SCL、SDA 和 GND 行。

    I2C 适配器的图片。

  4. 使用 I2C 适配器板上的跳线选择 3.3V 和 1.8V 之间的正确 I2C 电压。 在此映像中,已选择 1.8V。

  5. 在 MITT 板上,将开关 SW0 设置为高位置。 当 MITT 为电源时,此位置为 I2C 启用默认模式。

    MITT 板上 SW0 的图片。

  6. 使用 RE标准版T 按钮为 MITT 板供电。 如果连接到 I2C 控制器的线路连接正确, 则 LD7 (SDA 指示器)和 LD6 (SCL 指示器)将打开。 如果任一 LED 未打开,则存在线路问题,因为 SDA 或 SCL 或 SCL 或两者都拉低。

测试驱动程序和 ACPI 配置

在测试中具有 I2C 控制器的系统上执行以下步骤:

  1. 通过运行以下命令安装 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
    
  2. 修改系统 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 自动化测试

  1. 在测试的系统上创建文件夹。

  2. 将 TAEF 二进制文件复制到文件夹,然后将其添加到 PATH 环境变量。 所需的 TAEF 二进制文件位于 %ProgramFiles(x86)%\Windows Kits\8.1\Testing\Runtimes\TAEF 中。

  3. 将 MITT 软件包中的Muttutil.dll和Mitti2ctest.dll复制到该文件夹。

  4. 使用 /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 适配器示意图

I2C 适配器示意图。