Тесты для выявления разрывов в передаче SPI WinRT (требуется mbed LPC1768)
Тесты SPI выполняют функциональное и нагрузочное тестирование контроллеров SPI, предоставляемых пользовательскому режиму через API Windows.Devices.Spi WinRT. К область тестирования относятся:
- Убедитесь, что контроллер SPI с указанным понятным именем доступен из пользовательского режима.
- Проверка правильности отправки и получения данных в различных режимах SPI, частоте синхронизации, длине битов данных и длине передачи.
- Проверка отсутствия пробелов между байтами в передаче. Для некоторых устройств, таких как светодиодные ленты и аналоговые цифровые преобразователи, требуется непрерывный сигнал времени.
- Убедитесь, что фактическая используемая тактовая частота находится в пределах 15 % от запрошенного значения.
- Убедитесь, что при попытке передачи с длиной буфера, которая не кратна шагу, передача завершается сбоем с STATUS_INVALID_PARAMETER и в шине не создается никаких действий. Шаг определяется DataBitLength следующим образом:
DataBitLength | Stride |
4 - 8 | 1 |
9 - 16 | 2 |
17 - 32 | 4 |
Тесты выполняются для подключенного извне mbed LPC1768. Mbed LPC1768 — это популярная платформа создания прототипов микроконтроллеров, которую можно приобрести у различных интернет-магазинов, включая Sparkfun, Digikey и Adafruit. Программирование mbed с использованием тестового образа встроенного ПО так же просто, как перетаскивание образа встроенного ПО на запоминающее устройство. Исходный код встроенного ПО доступен на сайте GitHub. Подробные инструкции по подготовке mbed и выполнению тестов приведены ниже.
Сведения о тесте
Характеристики |
|
Платформы | |
Поддерживаемые выпуски |
|
Ожидаемое время выполнения (в минутах) | 15 |
Категория | Разработка |
Время ожидания (в минутах) | 30 |
Требуется перезагрузка | false |
Требуется специальная конфигурация | Да |
Тип | automatic |
Дополнительная документация
Тесты в этой области функций могут содержать дополнительную документацию, включая предварительные требования, сведения о настройке и устранении неполадок, которые можно найти в следующих разделах:
Выполнение теста
Для выполнения тестов потребуется следующее оборудование:
- mbed LPC1768
- монтажная плата;
- Провода перемычки
Сначала необходимо загрузить тестовое встроенное ПО в mbed:
- Подключите mbed LPC1768 через USB к компьютеру. Он будет отображаться в качестве съемного диска на вашем компьютере.
- Открытие диска в проводнике
- Скопируйте c:\Program Files (x86)\Windows Kits\10\Hardware Lab Kit\Tests\x86\iot\busses-tester-mbed_LPC1768.bin на диск
- Нажмите кнопку на mbed, чтобы сбросить микроконтроллер.
Затем подключите mbed к тестируемму контроллеру SPI. Чтобы включить mbed, вы можете подключить его через USB к тестируемму устройству или подключить контакты VIN и GND непосредственно к контактам питания на тестируемом устройстве. Установите следующие подключения между тестируемым устройством и mbed: (закрепление mbed).
- Подключение контакта mbed 13 (P0.15/SCK0) к контакту SCK на тестируемом устройстве
- Подключите mbed pin 30 (P0.4/CAP2.0) к контакту SCK на тестируемом устройстве (этот контакт используется для точного измерения часов)
- Подключение контакта MBed 11 (P0.18/MOSI0) к контакту MOSI на тестируемом устройстве
- Подключите mbed pin 12 (P0.17/MISO0) к контакту MISO на тестируемом устройстве
- Подключите mbed pin 14 (P0.16/SSEL0) к контакту Chip Select на тестируемом устройстве
- Подключение mbed GND к контакту GND на тестируемом устройстве
Теперь вы можете запланировать тесты в HLK Studio.
Устранение неполадок
Общие сведения об устранении неполадок при тестировании HLK см. в разделе Устранение неполадок при тестировании Windows HLK.
Мы рекомендуем выполнять тесты в командной строке, чтобы получить представление о сбоях и быстро выполнить итерацию по решениям. Мы также рекомендуем подключить анализатор логики, например salae. Определить причину сбоя без возможности проверки движения автобуса может быть трудно или невозможно.
Вот как выполнить тесты в командной строке:
Скопируйте %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=1500000
- 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). |