Поделиться через


Предварительные требования для тестирования WITT I2C

Тесты средства тестирования windows Inter-Integrated Circuit (I2C) (WITT) проверяют соответствие комплекта Windows Hardware Lab Kit (Windows HLK) Windows Simple Peripheral Bus (SPB) и надежность контроллера I2C и связанного с ним драйвера. Тесты контроллера WITT I2C состоят из оборудования (адаптер WITT) и программного обеспечения (тестовый исполняемый файл, тестовый драйвер и служебные программы). Список тестов WITT I2C см. в разделе Тесты Device.BusController.

Содержание этой статьи

Настройка оборудования для тестирования контроллера WITT I2C

Рис. 1. Типичная настройка теста WITT показывает тест, тестовую настройку драйвера и подключения I2C, которые необходимо установить для выполнения тестов WITT.

witt соединения

Рис. 2. WITT Board с заголовок I2C отображает светодиодные индикаторы, заголовок I2C, USB-разъем, тестовый штырь, перемычку EEPROM и перемычку напряжения на типичной плате WITT.

сетевая карта интерфейса с заголовком i2c

Необходимо подключить последовательные часы (SCL), последовательные данные (SDA) и заземления (GND) к контроллеру узла I2C. Подключение общего назначения ввода-вывода (GPIO) не требуется для тестов контроллера WITT I2C. Контакты SCL, SDA и GND показаны на рис. 3. 10-контактный заголовок I2C:

Заголовок i2c

USB

Подключите USB-кабель к разъему USB (тип B). Вы можете использовать USB-подключение для обновления встроенного ПО WITT (для этого требуется драйвер Microsoft USB Test Tool (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,8 в или 3,3 в. Их можно установить, переключив перемычку напряжения на плате WITT (см . рис. 2. WITT Board).

Перемычка EEPROM

Перемычка EEPROM определяет, следует ли выполнять загрузку из EEPROM. Перемычку следует задать в том положении, которое показано на рис. 2. WiTT Board. (Для восстановления встроенного ПО WITT с помощью метода USB достаточно переключиться на другую позицию.)

Светодиодный индикатор

Светодиодные индикаторы можно интерпретировать следующим образом:

  • КРАСНЫЙ СВЕТОДИОДНЫЙ ИНДИКАТОР: ВКЛЮЧЕНИЕ ПИТАНИЯ.

  • ЖЕЛТЫЙ ИНДИКАТОР: постоянно горит, если нет трафика ШИНЫ I2C (SCL и SDA высоки).

  • СИНИЙ светодиодный индикатор: мигает, когда трафик данных I2C продолжается между узлом и платой WITT.

Перемычка напряжения I2C

Этот перемычку можно использовать для перемещения сигнала I2C на WITT. Установите положение перемычки 1–2 для 3,3 в или положение перемычки 2–3 для 1,8 в. Подключите источник питания к pin2 для дополнительных уровней напряжения, отличных от 1,8 В и 3,3 В.

Настройка программного обеспечения для тестирования контроллера WITT I2C

Двоичные файлы тестов WITT поставляются вместе с windows HLK и находятся на контроллере или сервере Windows HLK в папке \\{$HCKServer}\Tests\{$PROCESSOR_ARCHITECTURE}\spb , где HCKServer — имя сервера Windows HLK, а $PROCESSOR_ARCHITECTURE — платформа устройств (AMD64, x86 или Arm). Для тестов WITT I2C требуются следующие двоичные файлы:

  • Проверьте драйвер периферийного устройства: WITTTest.inf, WITTTest.sysи WITTTest.cat.

  • WITTTest.exe

Во время тестов необходимо использовать отладчик ядра. Вы можете скачать и установить отладчик ядра в разделе Скачивание и установка средств отладки для Windows.

Типичный шаг настройки (экземпляр с одним контроллером)

Чтобы настроить типичную тестовую конфигурацию с одним контроллером, выполните следующие действия.

Настройка типичной конфигурации теста

  1. Откройте командную строку с правами администратора.

  2. Выполните следующую команду, чтобы установить драйвер тестового периферийного устройства:

    pnputil -a witttest.inf
    

    Флаг -a добавляет пакет драйвера в хранилище драйверов Windows.

  3. Обновите таблицу Advanced Configuration and Power Interface (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.aml из измененного файла Ssdt.asl :

    asl.exe ssdt.asl
    
  5. В окне командной строки выполните следующую команду, чтобы обновить измененную таблицу ACPI:

    asl.exe /loadtable ssdt.aml
    
  6. Включите средство проверки драйверов на контроллере I2C и в Spbcx.sys с помощью параметров по умолчанию.

  7. Перезапустите систему: четыре экземпляра устройства должны отображаться в узле класс тестирования WITT в диспетчер устройств в Windows HLK.

  8. Чтобы убедиться, что тестовая среда WITT настроена правильно, выполните Spbcmd.exe из командной строки. Ниже приведен пример выходных данных команды средства 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
    

    Используйте команды Открыть и Закрыть , чтобы открыть и закрыть целевые объекты. Read, Write и WriteRead — это команды ввода-вывода вручную.

    Вы также можете использовать команду List , чтобы получить список всех доступных целевых объектов тестированияI2C I2C: I2C 0x0 0x21. Переключите адрес тестирования WITT, чтобы начать с 0x21(0x21,0x22,0x23); Например, 0, если в ASL настроен адрес I2C, отличный от стандартного.

Инструкции по ручным проверкам контроллера I2C

Вы можете запустить тест проверки контроллера I2C вручную, а также запустить его в Windows HLK Studio. В этом разделе описывается, как вручную запустить тесты контроллера 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

WITT (Средство тестирования Windows I2C) от JJG Technologies

Устранение неполадок при тестировании контроллера шины