Partilhar via


Testes de GPIO no MITT

Os módulos de teste do GPIO incluídos no pacote de software MITT podem ser usados para testar os seguintes botões de volume para cima, diminuir volume, energia e bloqueio de rotação. Você pode usar esses testes para detectar problemas com os drivers e microcontroladores gpio e determinar se a resposta dos sistemas a um push curto ou longo é a resposta desejada. As linhas anexadas aos botões são fisicamente puxadas para baixo pela placa MITT.

Antes de começar

Configuração de hardware

Imagem da configuração de hardware do MITT GPIO.

Interface do barramento Pin-out ACPI e esquemas Solução de conexão
Botões gpio Linhas de botão e indicador: Volume para cima/para baixo, Energia, bloqueio de rotação, indicador laptop/slate, indicador de encaixe Esquemas Bloco masculino simples (no quadro de depuração)
Controlador GPIO Pin-out e índice do controlador GPIO usados
  • Nome acpi do controlador GPIO usado para pinout.
  • Tipo de gatilho de interrupção no controlador (baseado em nível ou borda)
  • Descrição (incluindo sua ID PNP) do dispositivo (se houver) usando o pino GPIO para desabilitá-lo durante a passagem de teste
Bloco masculino simples (no quadro de depuração)
  1. No quadro MITT, identifique o conector GPIO. Ele usa o cabeçalho mais à esquerda de 12 pinos, rotulado como JA1, conforme mostrado nesta imagem.

    gpio Imagem do cabeçalho na placa MITT.

  2. Conecte a placa do adaptador GPIO ao cabeçalho JA1 .

  3. Conecte o power jumper na placa MITT a 3V3.

  4. Empurre o controle deslizante para cima na opção ao lado do cabeçalho GPIO para ligar a placa.

    Imagem da conexão de energia gpio.

  5. Conecte as linhas volume up (volu), volume down (vold), dock/undock (dock) e slate/laptop (modo) da placa do adaptador GPIO (conectada ao MITT) aos pinos correspondentes no sistema em teste.

    O cabeçalho de 12 pinos é conectado a linhas gpio individuais, conforme mostrado nesta imagem.

    Diagrama da fiação gpio no cabeçalho ja1.

    Esquema de um pino de saída na placa GPIO. O pino deve ser colocado em paralelo com um comutador para que o FET possa efetuar pull da linha baixa, como se a opção fosse enviada por push.

    Diagrama esquemal do pino de saída gpio no MITT.

  6. Opcional. Se você quiser executar os testes de GPIO do MITT em volume ou indicadores, mas não em ambos, poderá ignorar os testes relacionados na automação gpio definindo essas entradas do Registro. Cada entrada é um DWORD e o valor de 1 habilita o teste; 0 o desabilita.

    • Volume

      HKEY_CURRENT_USER\Software\Microsoft\MITT\GPIO\RunVolumeTest

    • Indicadores

      HKEY_CURRENT_USER\Software\Microsoft\MITT\GPIO\RunIndicatorsTest

Executar testes de automação gpio

Para executar testes gpio manualmente usando o WDTF, execute estas tarefas:

  1. Copie mittsimpleioaction.dll do pacote de software MITT para %ProgramFiles(x86)%\Windows Kits\8.1\Testing\Runtimes\WDTF\RunTime\Actions\SimpleIO
  2. Execute %ProgramFiles(x86)%\Windows Kits\8.1\Testing\Runtimes\WDTF\RunTime\UnRegisterWDTF.exe.
  3. Execute %ProgramFiles(x86)%\Windows Kits\8.1\Testing\Runtimes\WDTF\RunTime\Actions .. \RegisterWDTF.exe /nogacinstall
  4. Inicie testes de automação gpio executando SimpleIO_MITT_ gpio _Sample.vbs incluídos no pacote de software MITT.

Exemplo: injeção de entrada de GPIO personalizada

Este exemplo usa um arquivo, Example.txt, que contém a sequência para pressionar o botão de energia por dois segundos e, em seguida, liberar o botão. Este é o conteúdo do arquivo:

'h001E8480
'b0000000000011111
'b0000000100011111
'b0000000000011111

Execute estes comandos:

Muttutil.exe -SetChannel 00

Muttutil.exe -WriteData 0000

Muttutill.exe –SetChannel 01

Muttutil.exe –WriteDataFromFile Example.txt

Muttutil.exe –SetChannel 00

Muttutil.exe –Writedata 0001
  • SetChannel com 00 indica que o canal de controle receberá dados.
  • WriteData com 0000 pausa todos os módulos de teste.
  • Opção SetChannel especificando 01 para indicar que o canal GPIO receberá dados.
  • WriteDataFromFile com o nome do arquivo para enviar o conteúdo do arquivo de entrada de exemplo para o módulo GPIO.
  • SetChannel com 00 para voltar para o canal de controle receberá os dados.
  • WriteData com 0001 no canal de controle para ativar o sequenciador GPIO. O módulo GPIO iniciará o sequenciamento.

Gerar sequências de entrada

Para gerar uma sequência, você precisa desses valores:

  • Valor do intervalo

    O valor do intervalo é uma máscara de bits que indica qual botão é pressionado durante o intervalo. Um valor zero na máscara de bits indica que o botão não é pressionado durante o intervalo de tempo. Aqui estão os valores possíveis de índice de bits de valores:

    Índice de bits em valor de 16 bits Uso no sistema em teste
    0 Habilitação do botão de energia ("1" habilita a saída)
    1 Habilitação do indicador de encaixe ("1" habilita a saída)
    2 Habilitação de aumento de volume ("1" habilita a saída)
    3 Habilitação de bloqueio de rotação ("1" habilita a saída)
    4 Habilitação de diminuição de volume ("1" habilita a saída)
    5 Ativação de alternância Slate/Laptop ("1" habilita a saída)
    6-7 Não usado
    8 O valor do botão Ligar/Desligar ("1" pressiona a opção)
    9 Valor do indicador de encaixe ("1" pressiona a opção)
    10 Valor de aumento de volume ("1" pressiona a opção)
    11 Valor do bloqueio de rotação ("1" pressiona a opção)
    12 Valor de diminuição de volume ("1" pressiona a opção)
    13 Valor de alternância Slate/Laptop ("1" pressiona a opção)
    14-15 Não usado
  • Multiplicador de Relógio

    O multiplicador de relógio é o tempo de retenção do botão (em incrementos de microssegundos) para cada padrão de dados antes de passar para o próximo padrão de dados. O módulo de teste gpio mantém o último padrão de dados até que o circuito seja redefinido.

    Há uma compensação para usar um multiplicador de relógio pequeno versus grande. Valores menores para o multiplicador permitem mais precisão, o que exige que você crie mais linhas nos padrões de dados para cobrir um período de tempo. Você precisará decidir o equilíbrio certo entre os pacotes de dados necessários e o valor do multiplicador de relógio ao criar os arquivos de padrão de dados.

    Usando o exemplo anterior, você pode criar arquivos de injeção de entrada. Para gerar sequências de entrada, você precisa do protocolo de comunicação. Os dados enviados do quadro MITT para o sistema em teste são organizados nesse padrão:

    Diagrama do protocolo de comunicação para o módulo GPIO.

    Não há nenhuma verificação de erro no nível do protocolo no circuito de teste do GPIO. Se houver um erro de protocolo, o MITT exibirá um erro desconhecido.

Esquema do adaptador GPIO

Diagrama de esquema do adaptador GPIO.