MITT の I2C コントローラー テスト

MITT ソフトウェア パッケージに含まれている I2C テスト モジュールは、I2C コントローラーとそのドライバーのデータ転送をテストするのに使用できます。 MITT ボードは、I2C バスに接続されたクライアント デバイスとして機能します。

開始する前に

ハードウェアのセットアップ

MITT I2C ハードウェアセットアップの画像。

バス インターフェイス ピン配置 ACPI と回路図 接続ソリューション
I2C 必要なすべてのライン (SCL、SDA、GND) ACPI テーブル 単純なオスブロック (デバッグ ボード上)
  1. MITT ボードの JB1 に I2C アダプターを接続します。

    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. [RESET] ボタンを使用して MITT ボードの電源を切り替えます。 I2C コントローラーへのワイヤ接続が正しい場合は、LD7 (SDA インジケーター) と LD6 (SCL インジケーター) がオンになります。 いずれかの LED がオンになっていない場合は、SDA または 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
    

    Note

    PnpUtil.exe は %SystemRoot%\System32 に含まれています。

  2. システム ACPI を変更して、この ASL テーブルを含めます。 Microsoft ASL コンパイラを使用できます。

    Note

    "\\_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)
        }
    }
    

    Note

    MITT I2C テストを実行するには、TP1-3 のみが必要です。 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> オプションを使用して 1 つのテストを実行します。 このコマンドは、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 アダプターの概略図。