Предварительные требования для тестирования 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.
Рис. 2. WITT Board с заголовок I2C отображает светодиодные индикаторы, заголовок I2C, USB-разъем, тестовый штырь, перемычку EEPROM и перемычку напряжения на типичной плате WITT.
Необходимо подключить последовательные часы (SCL), последовательные данные (SDA) и заземления (GND) к контроллеру узла I2C. Подключение общего назначения ввода-вывода (GPIO) не требуется для тестов контроллера WITT I2C. Контакты SCL, SDA и GND показаны на рис. 3. 10-контактный заголовок I2C:
USB
Подключите USB-кабель к разъему USB (тип B). Вы можете использовать USB-подключение для обновления встроенного ПО WITT (для этого требуется драйвер Microsoft USB Test Tool (MUTT) и служебная программа Muttutil.exe , которую можно получить из пакета программного обеспечения MUTT. Так как у WITT уже есть встроенное ПО для тестирования контроллера I2C, USB-подключение используется только для питания. Если требуется обновление встроенного ПО, выполните следующие действия.
Настройте целевые объекты WITT I2C, как описано в разделе WITT I<надстрочный xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5"> 2</надстрочный>код тестового программного обеспечения контроллера C.
В окне командной строки с правами администратора выполните следующую команду:
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.
Типичный шаг настройки (экземпляр с одним контроллером)
Чтобы настроить типичную тестовую конфигурацию с одним контроллером, выполните следующие действия.
Настройка типичной конфигурации теста
Откройте командную строку с правами администратора.
Выполните следующую команду, чтобы установить драйвер тестового периферийного устройства:
pnputil -a witttest.inf
Флаг -a добавляет пакет драйвера в хранилище драйверов Windows.
Обновите таблицу 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.
В окне командной строки выполните следующую команду, чтобы создать файл Ssdt.aml из измененного файла Ssdt.asl :
asl.exe ssdt.asl
В окне командной строки выполните следующую команду, чтобы обновить измененную таблицу ACPI:
asl.exe /loadtable ssdt.aml
Включите средство проверки драйверов на контроллере I2C и в Spbcx.sys с помощью параметров по умолчанию.
Перезапустите систему: четыре экземпляра устройства должны отображаться в узле класс тестирования WITT в диспетчер устройств в Windows HLK.
Чтобы убедиться, что тестовая среда 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