Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las pruebas SPI realizan pruebas funcionales y de esfuerzo de controladores SPI expuestos al modo de usuario a través de las API de WinRT Windows.Devices.Spi. El ámbito de las pruebas incluye:
- Compruebe que se puede acceder a un controlador SPI con el nombre descriptivo especificado desde el modo de usuario.
- Compruebe que los datos se envían y reciben correctamente en un intervalo de modos SPI, frecuencias de reloj, longitudes de bits de datos y longitudes de transferencia.
- Verificación de que no hay huecos entre los bytes dentro de una transferencia. Algunos dispositivos como tiras LED y convertidores analógicos a digitales requieren una señal de reloj ininterrumpida.
- Compruebe que la velocidad del reloj real utilizada está dentro de 15% del valor solicitado.
- Compruebe que cuando se intenta realizar una transferencia con una longitud de búfer que no es un múltiplo del paso, se produce un error en la transferencia con STATUS_INVALID_PARAMETER y no se genera ninguna actividad en el bus. El paso viene determinado por DataBitLength de la siguiente manera:
Longitud de bit de datos | Zancada |
4 - 8 | 1 |
9 - 16 | 2 |
17 - 32 | 4 |
Las pruebas se ejecutan en un mbed LPC1768 externamente conectado. El LPC1768 mbed es una popular plataforma de prototipos de microcontrolador que se puede comprar de una variedad de minoristas en línea, como Farnell, Digikey y Adafruit. Programar el mbed con la imagen de firmware de prueba es tan sencillo como arrastrar y colocar la imagen de firmware en el dispositivo de almacenamiento masivo. El código fuente del firmware está disponible en github. A continuación se proporcionan instrucciones detalladas sobre cómo preparar los mbed y ejecutar las pruebas.
Detalles de la prueba
Especificaciones |
|
Plataformas | |
Versiones admitidas |
|
Tiempo de ejecución esperado (en minutos) | 15 |
Categoría | Desarrollo |
Tiempo de espera (en minutos) | 30 |
Requiere reinicio | falso |
Requiere una configuración especial | cierto |
Tipo | Automático |
Documentación adicional
Las pruebas de este área de características pueden tener documentación adicional, incluidos los requisitos previos, la configuración y la información de solución de problemas, que se pueden encontrar en los temas siguientes:
Ejecución de la prueba
Necesitará el siguiente hardware para ejecutar las pruebas:
- mbed LPC1768
- Placa de pruebas
- Cables de salto
En primer lugar, debe cargar el firmware de prueba en mbed:
- Conecte el LPC1768 mbed a través de USB a su PC. Se mostrará como una unidad extraíble en su PC.
- Abra la unidad en el Explorador de archivos.
- Copiar c:\Archivos de programa (x86)\Windows Kits\10\Hardware Lab Kit\Tests\x86\iot\busses-tester-mbed_LPC1768.bin en la unidad
- Presione el botón del mbed para restablecer el microcontrolador.
A continuación, conecte el mbed al controlador SPI bajo prueba. Para encender el mbed, puedes conectarlo a través de USB a tu dispositivo bajo prueba o conectar las patillas VIN y GND directamente a las patillas de alimentación del dispositivo bajo prueba. Realice las siguientes conexiones entre el dispositivo en prueba y el mbed: (pinout mbed),
- Conecte el pin mbed 13 (P0.15/SCK0) al pin SCK del dispositivo en prueba
- Conecte el pin mbed 30 (P0.4/CAP2.0) al pin SCK del dispositivo bajo prueba (este pin se usa para la medición precisa del reloj)
- Conecte el pin mbed 11 (P0.18/MOSI0) al pin MOSI del dispositivo bajo prueba
- Conectar el pin mbed 12 (P0.17/MISO0) al pin MISO del dispositivo en prueba
- Conectar el pin mbed 14 (P0.16/SSEL0) al pin de selección de chip en el dispositivo bajo prueba.
- Conexión de GND mbed a un pin de GND en el dispositivo sometido a prueba
Ahora puede programar las pruebas en HLK Studio.
Solución de problemas
Para solucionar problemas genéricos de errores de prueba de HLK, consulte Solución de problemas de errores de prueba de HLK de Windows.
Se recomienda ejecutar las pruebas en la línea de comandos para obtener información sobre los errores y para iterar rápidamente en las soluciones. También se recomienda enlazar un analizador lógico, como un salae. Puede ser difícil o imposible determinar la causa de un error sin la capacidad de inspeccionar el tráfico de bus.
Aquí se muestra cómo ejecutar las pruebas en la línea de comandos:
Copiar %programfiles(x86)%\Windows Kits\10\Testing\Runtimes\TAEF\<arch>\MinTe a c:\data\minte
Copie Windows.Devices.LowLevel.UnitTests.dll de %programfiles(x86)%\Windows Kits\10\Hardware Lab Kit\Tests\<arch>\iot a c:\data en su dispositivo.
Telnet o ssh en el dispositivo
Cambio de directorios a c:\data
Ejecute las pruebas:
minte\te windows.devices.lowlevel.unittests.dll /name:SpiHlk*
Uso de prueba de línea de comandos:
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: el nombre de la prueba que se va a ejecutar, que puede incluir caracteres comodín. Ejemplos: /name:SpiHlk*, /name:SpiHlkTests::VerifyClockFrequency#metadataSet0
- friendly_name: el nombre descriptivo del controlador SPI sometido a prueba. Si se omite, se usa el primer controlador enumerado. Ejemplos: /p:SpiFriendlyName=SPI1
- clock_frequency: forzar una prueba para usar la frecuencia de reloj especificada. De forma predeterminada, la frecuencia del reloj procede de los datos de prueba, que están diseñados para proporcionar cobertura en un rango de frecuencias. Este parámetro se debe omitir en circunstancias normales. Ejemplo: /p:ClockFrequency=1500000
- data_bit_length: forzar una prueba para usar la longitud de bits de datos especificada. Ejemplo: /p:DataBitLength=9
- SpiMode: obligar a una prueba a usar el modo SPI especificado. Ejemplo: /p:SpiMode=2
- length: obliga a que una prueba utilice la longitud de búfer especificada para la transferencia. Ejemplo: /p:length=128
- write_length: forzar una prueba TransferSequential para usar la longitud del búfer especificada para la parte de escritura de la transferencia. Ejemplo: /p:WriteLength=8
- read_length: forzar una prueba TransferSequential para usar la longitud del búfer especificada para la parte de lectura de la transferencia. Ejemplo: /p:ReadLength=16
- extra_clocks: especifique un ajuste para el número de relojes por byte que las pruebas usan cuando se calculan los tiempos activos esperados del reloj para las medidas de rendimiento, la detección de brechas y la validación de la frecuencia del reloj. Por ejemplo, el controlador SPI de BCM2836 espera un ciclo de reloj adicional después de cada byte, por lo que para compensar este comportamiento, se deben ajustar las medidas. Ejemplo: /p:ExtraClocks=1.5
- /p:Verbose=true - activa la salida detallada. Esto hará que los búferes completos se vuelquen en la consola cuando se produzca un error. De forma predeterminada, solo se muestra el primer byte no coincidente.
Ejemplos:
Enumerar las pruebas disponibles:
minte\te windows.devices.lowlevel.unittests.dll /list
Ejecute las pruebas de validación de Entrada/Salida (E/S).
minte\te windows.devices.lowlevel.unittests.dll /name:SpiHlkIoTests*
Ejecute las pruebas de detección de brechas:
minte\te windows.devices.lowlevel.unittests.dll /name:SpiHlkGapTests*
Ejecute la validación de frecuencia del reloj y las pruebas de paso:
minte\te windows.devices.lowlevel.unittests.dll /name:SpiHlkTests*
Ejecute una prueba específica en una instancia específica del controlador SPI:
minte\te windows.devices.lowlevel.unittests.dll /name:SpiHlkIoTests#2::VerifyTransferSequential#metadataSet9 /p:SpiFriendlyName=SPI1
Una herramienta que puede ayudar con la solución de problemas manual es SpiTestTool. SpiTestTool es una utilidad sencilla para interactuar con SPI desde la línea de comandos.
Más información
parámetros de
Nombre del parámetro | Descripción del parámetro |
---|---|
SpiFriendlyName | Nombre descriptivo del controlador SPI sometido a prueba (por ejemplo, SPI0). |