Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Тесты SPI выполняют функциональное и стресс-тестирование контроллеров SPI, доступных в пользовательском режиме через API Windows.Devices.Spi WinRT. Область тестирования включает в себя:
- Проверка того, что контроллер SPI с указанным понятным именем доступен в пользовательском режиме.
- Проверка правильности отправки и получения данных в различных режимах SPI, частотах часов, длине битов данных и длине передачи данных.
- Проверка на отсутствие разрывов между байтами в передаче. Для некоторых устройств, таких как светодиодные полосы и аналоговые цифровые преобразователи, требуется непрерывный сигнал часов.
- Проверка того, что фактическая тактовая частота находится в пределах 15% от запрашиваемого значения.
- Проверка того, что при попытке передачи с длиной буфера, которая не является кратной шагу, передача завершается ошибкой с STATUS_INVALID_PARAMETER, а активность не создается на шине. Шаг определяется DataBitLength следующим образом:
ДлинаБитовДанных | Шаг |
4 - 8 | 1 |
9 - 16 | 2 |
17 - 32 | 4 |
Тесты запускаются на внешне подключённом mbed LPC1768. Mbed LPC1768 является популярной платформой прототипа микроконтроллера, которая может быть приобретена у различных онлайн-магазинов, включая Farnell, Digikey и Adafruit. Программирование mbed с использованием тестового образа прошивки так же просто, как перетаскивание образа прошивки на устройство массового хранения. Исходный код встроенного ПО доступен на сайте GitHub. Подробные инструкции по подготовке mbed и выполнению тестов приведены ниже.
Сведения о тестировании
спецификации |
|
платформы | |
Поддерживаемые Выпуски |
|
ожидаемое время выполнения (в минутах) | 15 |
Категория | Развитие |
Тайм-аут (в минутах) | 30 |
Требуется перезагрузка | неправда |
Требуется специальная конфигурация | правда |
Тип | автоматический |
Дополнительная документация
Тесты в этой области функций могут содержать дополнительную документацию, включая предварительные требования, настройку и устранение неполадок, которые можно найти в следующих разделах:
выполнение теста
Для выполнения тестов потребуется следующее оборудование:
- mbed LPC1768
- Макет
- Перемычечные провода
Сначала необходимо загрузить тестовое встроенное ПО на mbed:
- Подключите mbed LPC1768 к вашему ПК через USB. Он будет отображаться как съемный диск на компьютере.
- Откройте диск в проводнике
- Копирование c:\Program Files (x86)\Windows Kits\10\Hardware Lab Kit\Test\x86\iot\busses-tester-mbed_LPC1768.bin на диск
- Нажмите кнопку на mbed, чтобы сбросить микроконтроллер
Затем подключите mbed к тестируемому контроллеру SPI. Чтобы включить mbed, вы можете подключить его через USB к тестируемому устройству или подключить контакты VIN и GND непосредственно к контактам питания тестируемого устройства. Установите следующие соединения между вашим тестируемым устройством и mbed: (mbed pinout),
- Подключите контакт mbed 13 (P0.15/SCK0) к контакту SCK на вашем тестируемом устройстве.
- Подключите пин-код mbed 30 (P0.4/CAP2.0) к пин-коду SCK на тестируемом устройстве (этот пин-код используется для точного измерения часов).
- Подключите вывод mbed 11 (P0.18/MOSI0) к выводу MOSI на тестируемом устройстве.
- Подключите пин-код mbed 12 (P0.17/MISO0) к пин-коду MISO на устройстве под тестом
- Подключите пин-код mbed 14 (P0.16/SSEL0) к пин-коду выбора микросхемы на устройстве в тестируемом режиме
- Подключите mbed GND к контакту GND на устройстве, которое тестируется.
Теперь вы можете запланировать тесты в студии HLK.
устранение неполадок
Общие сведения об устранении неполадок тестов HLK см. в разделе Устранение неполадок тестов Windows HLK.
Мы рекомендуем выполнять тесты в командной строке, чтобы получить представление о сбоях и быстро выполнить итерацию решений. Мы также рекомендуем подключить анализатор логики, например Saleae. Это может быть трудно или невозможно определить причину сбоя без возможности проверки движения автобуса.
Вот как выполнить тесты в командной строке:
Копируйте %programfiles(x86)%\Windows Kits\10\Testing\Runtimes\TAEF<\arch>\MinTe в c:\data\minte
Скопируйте Windows.Devices.LowLevel.UnitTests.dll из %programfiles(x86)%\Windows Kits\10\Hardware Lab Kit\Тесты\<arch>\iot в c:\data на вашем устройстве.
Telnet или SSH на вашем устройстве
Изменение каталогов на c:\data
Выполните тесты:
minte\te windows.devices.lowlevel.unittests.dll /name:SpiHlk*
Использование теста командной строки:
minte\te windows.devices.lowlevel.unittests.dll [/name:test_name] [/p:SpiFriendlyName=friendly_name] [/p:ClockFrequency=clock_frequency] [/p:DataBitLength=data_bit_length] [/p:SpiMode=0|1|2|3] [/p:Length=length] [/p:WriteLength=write_length] [/p:ReadLength=read_length] [/p:ExtraClocks=extra_clocks] [/p:Verbose=true]
- test_name — имя теста, который требуется запустить и который может включать символы-шаблоны. Примеры: /name:SpiHlk*, /name:SpiHlkTests::VerifyClockFrequency#metadataSet0
- friendly_name — дружественное имя контроллера SPI под тестированием. Если опущено, используется первый перечисленный контроллер. Примеры: /p:SpiFriendlyName=SPI1
- clock_frequency — принудительное использование тестом указанной частоты часов. По умолчанию частота часов поступает из тестовых данных, которые рассчитаны на охват диапазона частот. Этот параметр должен быть опущен в обычных обстоятельствах. Пример: /p:ClockFrequency=15000000
- data_bit_length — принудительно заставить тест использовать указанную длину бита данных. Пример: /p:DataBitLength=9
- SpiMode — принудительное применение указанного режима SPI для тестирования. Пример: /p:SpiMode=2
- length — принудить тест использовать заданную длину буфера для передачи. Пример: /p:length=128
- write_length — принудительно заставить тест TransferSequential использовать указанную длину буфера для части записи передачи. Пример: /p:WriteLength=8
- read_length — принудительно заставить тест TransferSequential использовать указанную длину буфера для части чтения передачи. Пример: /p:ReadLength=16
- extra_clocks — укажите корректировку количества часов в байтах, используемых тестами при вычислении ожидаемых часов активного времени для измерений производительности, обнаружения разрывов и проверки частоты часов. Например, SPI-контроллер BCM2836 ожидает дополнительный такт после каждого байта, поэтому для компенсации этого поведения необходимо корректировать измерения. Пример: /p:ExtraClocks=1.5
- /p:Verbose=true — включите подробный вывод. Это приведет к тому, что все буферы будут выводиться в консоль в случае сбоя. По умолчанию отображается только первый байт несоответствия.
Примеры:
Список доступных тестов:
minte\te windows.devices.lowlevel.unittests.dll /list
Выполните тесты проверки ввода-вывода:
minte\te windows.devices.lowlevel.unittests.dll /name:SpiHlkIoTests*
Выполните тесты обнаружения разрывов:
minte\te windows.devices.lowlevel.unittests.dll /name:SpiHlkGapTests*
Выполните проверку тактовой частоты и тесты на производительность.
minte\te windows.devices.lowlevel.unittests.dll /name:SpiHlkTests*
Выполните конкретный тест для конкретного экземпляра контроллера SPI:
minte\te windows.devices.lowlevel.unittests.dll /name:SpiHlkIoTests#2::VerifyTransferSequential#metadataSet9 /p:SpiFriendlyName=SPI1
Средство, которое может помочь в устранении неполадок вручную, — SpiTestTool. SpiTestTool — это простая программа для взаимодействия с SPI из командной строки.
Дополнительные сведения
Параметры
Имя параметра | Описание параметра |
---|---|
SpiFriendlyName | Дружественное имя проверяемого контроллера SPI (например, SPI0). |