共用方式為


WITT I2C 測試必要條件

Windows Inter-Integrated 線路 (I2C) 測試控管 (WITT) 控制器測試會驗證 Windows 硬體實驗室套件, (Windows HLK) Windows Simple 周邊匯流排 (SPB) 合規性,以及 I2C 控制器及其相關聯驅動程式的可靠性。 WITT I2C 控制器測試是由硬體 (WITT 配接器) 和軟體 (測試可執行檔、測試驅動程式和公用程式) 所組成。 如需 WITT I2C 測試的清單,請參閱 Device.BusController 測試

本文內容:

WITT I2C 控制器測試硬體設定

圖 1. 一般 WITT 測試設定 會顯示您必須進行的測試、測試驅動程式設定和 I2C 連線,才能執行 WITT 測試。

witt 連線

圖 2. WITT 面板 具有 I2C 標頭的 LED、I2C 標頭、USB 連接器、測試針腳、EEPROM 跳躍器,以及典型 WITT 面板上的電壓跳躍器。

具有 i2c 標頭的網路介面卡

您必須將序列時鐘 (SCL) 、序列資料 (SDA) ,以及將地面 (GND) 針腳連接到主機 I2C 控制器。 WITT I2C 控制器測試不需要常規用途輸入/輸出 (GPIO) 連線。 SCL、SDA 和 GND 針腳會顯示在圖 3 中。 I2C 10 針腳標頭:

i2c 標頭

USB

將 USB 纜線連接到 USB 連接器, (類型 B) 。 您可以使用 USB 連線來更新 WITT 韌體 (這需要 Microsoft USB 測試控管 (MUTT) 驅動程式和 Muttutil.exe 公用程式,您可以從 MUTT 軟體套件取得。 由於 WITT 已經有 I2C 控制器測試韌體,因此 USB 連線僅供電源供應之用。 如果需要韌體升級,請使用下列步驟:

  1. 設定 WITT I2C 目標,如 WITT I < 上標 xmlns=「 http://ddue.schemas.microsoft.com/authoring/2003/5" 所述; >2 < /上標 > C 控制器測試軟體設定

  2. 從具有系統管理許可權的命令提示字元視窗中,執行下列命令:

    WITTUpgrade.exe I2C9665.iic /f
    

    其中 I2C9665.iic 是韌體檔案, 而 /f 會強制升級。 (韌體 .iic 檔案會與其他測試二進位檔一起發行于 Windows HLK 中。)

測試釘選

測試針腳標頭上的 SCL/SDA/GND 連接器可以經過擷取,並用來將 I2C 連接到主機控制器。 I2C 線路的電壓必須符合主機控制器的電壓;這些通常是 1.8v 或 3.3v,而且可以透過在 WITT 面板上切換電壓跳躍器來設定 (請參閱 圖 2。WITT 面板) 。

EEPROM 跳躍器

EEPROM 跳躍器控制是否要從 EEPROM 開機。 您應該在圖 2 所示的位置設定跳躍器 。WITT 面板。 (您只需要切換到其他位置,才能透過 USB 方法復原 WITT 韌體。)

LED

您可以解譯 LED,如下所示:

  • 紅色 LED:電源開啟。

  • 黃色 LED:如果沒有 I2C 匯流排流量 (SCL 和 SDA 高) ,則持續亮起。

  • 藍色 LED:當我在主機與 WITT 面板之間進行2C 資料流量時閃爍。

I2C 電壓跳躍器

這個跳躍器可用於將 I2C 訊號平移至 WITT。 針對 3.3v 設定跳躍器位置 1-2,或設定 1.8v 的跳躍器位置 2-3。 將電源連接到 pin2,以取得 1.8v 和 3.3v 以外的額外電壓等級。

WITT I2C 控制器測試軟體設定

WITT 測試二進位檔隨附于 Windows HLK,並位於 \\{$HCKServer}\Tests\{$PROCESSOR_ARCHITECTURE}\spb 資料夾中的 Windows HLK 控制器或伺服器上,其中 HCKServer 是 Windows HLK 伺服器的名稱, 而 $PROCESSOR_ARCHITECTURE 是裝置平臺, (AMD64、x86 或 Arm) 。 WITT I2C 測試需要下列二進位檔:

  • 測試周邊驅動程式: WITTTest.infWITTTest.sysWITTTest.cat

  • WITTTest.exe

您必須在測試期間使用核心偵錯工具。 您可以從 下載並安裝適用于 Windows 的偵錯工具下載並安裝核心偵錯工具。

單一控制器實例 (一般設定步驟)

若要設定使用單一控制器的一般測試組態,請執行下列步驟。

若要設定一般測試組態

  1. 開啟具有系統管理許可權的命令提示字元。

  2. 執行下列命令以安裝測試周邊驅動程式:

    pnputil -a witttest.inf
    

    -a旗標會將驅動程式套件新增至 Windows 驅動程式存放區。

  3. 更新 [進階設定] 和 [電源介面] (ACPI) 資料表,以列舉測試裝置節點。 這些通常是在 SSDT (次要系統描述中繼資料表中定義,) 或 DSDT (區分的系統描述資料表) 。

    • 在命令提示字元視窗中,執行下列命令以產生 SSDT:

      asl.exe /tab:ssdt
      
    • 編輯產生的 SSDT.asl 資料表,如下所示:

      Device(TP1) {
          Name(_ADR,0)
          Name (_HID, "STK0001") 
          Name (_CID, "WITTTest") 
          Method(_CRS, 0x0, NotSerialized)
          {
            Name (RBUF, ResourceTemplate ()
            {
              I2CSerialBus ( 0x7F, ControllerInitiated, 100000,AddressingMode7Bit, "\\_SB_.I2C3",,, , )
            })
            Return(RBUF)
          }
      }
      Device(TP2) {
          Name(_ADR,0)
          Name (_HID, "STK0002") 
          Name (_CID, "WITTTest") 
          Method(_CRS, 0x0, NotSerialized)
          {
            Name (RBUF, ResourceTemplate ()
            {
              I2CSerialBus ( 0x11, ControllerInitiated, 100000,AddressingMode7Bit, "\\_SB_.I2C3",,, , )
            })
            Return(RBUF)
          }
      }
      Device(TP3) {
          Name(_ADR,0)
          Name (_HID, "STK0003") 
          Name (_CID, "WITTTest") 
          Method(_CRS, 0x0, NotSerialized)
          {
            Name (RBUF, ResourceTemplate ()
            {
              I2CSerialBus ( 0x12, ControllerInitiated, 400000,AddressingMode7Bit, "\\_SB_.I2C3",,, , )
            })
            Return(RBUF)
          }
      }
      Device(TP4) {
          Name(_ADR,0)
          Name (_HID, "STK0004") 
          Name (_CID, "WITTTest") 
          Method(_CRS, 0x0, NotSerialized)
          {
            Name (RBUF, ResourceTemplate ()
            {
              I2CSerialBus ( 0x13, ControllerInitiated, 1000000,AddressingMode7Bit, "\\_SB_.I2C3",,, , )
            })
            Return(RBUF)
          }
      }
      

      在此測試中,TP1 會作為測試介面 (0x7F) ,TP2 (0x11) 設定為標準 I2C 目標,TP3 (0x12) 設定為快速 I2C 目標,而 TP4 (0x13) 設定為快速加 I2C 目標。

      注意

      將資料表中列出的 I2C 控制器位址變更為實際 I2C 控制器的位址。

  4. 在命令提示字元視窗中,執行下列命令,從修改過的Ssdt.asl檔案產生Ssdt.aml檔案:

    asl.exe ssdt.asl
    
  5. 在命令提示字元視窗中,執行下列命令來更新修訂的 ACPI 資料表:

    asl.exe /loadtable ssdt.aml
    
  6. 使用預設設定,在 I2C 控制器和 Spbcx.sys 中啟用驅動程式驗證程式。

  7. 重新開機系統:四個裝置實例應該顯示在 Windows HLK 中裝置管理員的 WITT 測試類別節點底下。

  8. 您可以從命令列執行 Spbcmd.exe ,以確認 WITT 測試環境已正確設定。 Spbcmd工具的範例命令輸出如下,其中 7F 是測試介面的簽章,而 01、02 和 03 是三個測試目標的簽章。

    > list
    list
    Available connection ID:
    Target:53, Instance:0x0
    Target:54, Instance:0x0
    Target:55, Instance:0x0
    Target:56, Instance:0x0
    > i2c 0x0 0x21    //this step is not necessary if you are not testing multiple instances
    i2c 0x0 0x21
    Instance requested:0x0
    I2C address requested:0x21
    Found WITT test interface at \\.\RESOURCE_HUB\0000000000000035
    WITT Testing I2C address successfully changed to 0x21 for instance 0x0
    > open 53
    open 53
    Address 53 opened
    > read 53 1
    read 53 1
    1 bytes read
      7f
    > open 54
    open 54
    Address 54 opened
    > read 54 1
    read 54 1
    1 bytes read
      01
    > write 54 {01 02 03}
    write 54 {01 02 03}
    3 bytes written
    > writeread 54 {01 02 03} 2
    writeread 54 {01 02 03} 2
    5 bytes transferred
      01 01 52 00 c0
    

    使用 OpenClose 命令來開啟和關閉目標。 讀取寫入WriteRead 是手動 I/O 命令。

    您也可以使用 List 命令來列出所有可用的 I2C 測試目標 I2C:I2C 0x0 0x21。 將 WITT 測試位址切換為開頭為 0x21 (0x21,0x22,0x23) ;例如,如果您在 ASL 中設定非預設 I2C 位址,則為 0。

I2C 控制器驗證測試手動指示

除了在 Windows HLK Studio 中執行 I2C 控制器驗證測試之外,您還可以手動執行它。 本節說明如何手動執行 WITT I2C 控制器測試。 如需每個測試的特定資訊,請參閱個別測試主題。

您必須從具有系統管理許可權的命令提示字元視窗中執行每個測試。

wttlog.dll\\${HCKServer}\TaefBinaries 複製到 Witttest.exe 所在的相同目錄,其中 HCKServer 是 Windows HLK 伺服器的名稱。

若要列出所有可用的測試和命令列參數,請在命令提示字元中 輸入wittest.exe /? 。 例如:

Witttest.exe /?
Supported command line arguments are:
/rs:<Seed>
/sm internal use of acpsim load
/fw:firmwareware iic
/i2c:address
/ins:witt instance number
/dip:device instance path
/duration:stress duration in minutes
/test:<test_id>

Example:
WITTTest.exe /test:BasicIORead


Currently the following test id's are supported:
/test:BasicIORead
/test:BasicIOWrite
/test:BasicIOSeq
/test:BasicIOKernel
/test:ClkStretch
/test:DeviceNack
/test:LockUnlock
/test:CancelRead
/test:CancelWrite
/test:CancelSeq
/test:PerfRead
/test:PerfWrite
/test:PerfSeq
/test:MultipleTargets
/test:BusRecovery
/test:Power
/test:Stress
/test:RunAll

若要使用預設值執行個別測試,請輸入Witttest.exe /test:< Testname,其中 Testname >> 是測試的名稱;例如,Witttest.exe /test:BasicIORead。 < 若要以與預設實例 0 不同的實例來執行此測試,請輸入 Witttest.exe /test:BasicIORead /ins:0x1。 若要使用不同的測試 I2C 測試位址來執行這項測試,而不是預設測試 I2C 位址0x11,0x12,0x13,請輸入 Witttest.exe /test:BasicIORead /i2c:0x21

若要執行所有測試,請輸入 Witttest.exe /test:RunAll。 此命令會迴圈執行所有測試,並在測試順序結尾列印測試結果;例如:

*****Test run results*****

# Test cases passed:

BasicIORead
BasicIOWrite
BasicIOSeq
BasicIOKernel
ClkStretch
LockUnlock
PerfRead
PerfWrite
PerfSeq
MultipleTargets
Stress

# Test Cases passed with warning:

CancelRead
CancelWrite
CancelSeq

# Test Cases Failed:

DeviceNack

# Total:

Pass:11 Fail:1 Warn:3

JJG Technologies) WITT (Windows I2C 測試控管

針對匯流排控制器測試進行疑難排解