Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Тесты 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\Tests\<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). |