MITT의 I2C 컨트롤러 테스트

MITT 소프트웨어 패키지에 포함된 I2C 테스트 모듈은 I2C 컨트롤러 및 해당 드라이버에 대한 데이터 전송을 테스트하는 데 사용할 수 있습니다. MITT 보드는 I2C 버스에 연결된 클라이언트 디바이스 역할을 합니다.

시작하기 전에

하드웨어 설정

MITT I2C 하드웨어 설정의 사진입니다.

버스 인터페이스 핀아웃 ACPI 및 도식 커넥트ion 솔루션
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. 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
    

    참고 항목

    PnpUtil.exe %SystemRoot%\System32에 포함되어 있습니다.

  2. 시스템 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)
        }
    }
    

    참고 항목

    MITT I2C 테스트를 실행하려면 TP1-3만 필요합니다. TP4 및 TP5는 선택적 대상입니다.

I2C자동화 테스트

  1. 테스트 중인 시스템에 폴더를 만듭니다.

  2. TAEF 이진 파일을 폴더에 복사한 다음 PATH 환경 변수에 추가합니다. 필요한 TAEF 이진 파일은 %ProgramFiles(x86)%\Windows Kits\8.1\Testing\Runtimes\TAEF에 있습니다.

  3. MUTTUTIL.DLL 복사하고 MITT 소프트웨어 패키지에서 폴더로 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 어댑터 도식 다이어그램.