Conectividade do barramento do dispositivo (touchpad-device-bus-connectivity)
Observação
Este artigo contém referências ao termo servidor subordinado, um termo que a Microsoft não usa mais. Quando o termo for removido do software, também o removeremos deste artigo.
Este tópico discute os métodos de conectividade de barramento para um dispositivo Touchpad de Precisão do Windows.
Um dispositivo touchpad de precisão do Windows pode usar os drivers nativos fornecidos pela Microsoft para se conectar ao host do Windows por meio de um HID via USB, um HID via I²C ou (a partir do Windows 11) um HID via SPI. No entanto, você pode usar qualquer outro barramento desejado, desde que forneça o driver de miniporta de um HID de terceiros compatível com o Windows necessário para o dispositivo touchpad.
Dispositivos I²C
Um módulo touchpad de precisão do Windows é definido como a combinação de um controlador IC, um sensor e todos os mecanismos associados.
Um módulo touchpad de precisão do Windows conectado ao host do Windows por meio do barramento I²C precisa expor, no mínimo, os cinco seguintes pinos de conexão:
- Uma linha de dados (SDA)
- Uma linha de relógio (SCL)
- Uma linha de interrupção
- Uma linha de alimentação
- Uma GND (conexão de aterramento)
O diagrama a seguir mostra o I²C conectando linhas de sinal entre um touchpad de precisão do Windows e o respectivo host do Windows.
Durante a conexão com um controlador I²C, é importante entender as demandas de largura de banda de todos os componentes que compartilham esse controlador. Uma velocidade mínima de 400 KHz do relógio do I²C é recomendada para um módulo touchpad de precisão do Windows. É altamente recomendável que os controladores de tela touch e os controladores de touchpad de precisão do Windows não usem o mesmo controlador I²C, pois isso poderá resultar em demandas de largura de banda que excedem a capacidade do barramento.
Recomendamos que a linha de interrupção (também conhecida como linha ATTN) esteja conectada a um controlador GPIO On-SoC ou a um IOAPIC. Se a funcionalidade de ativação for desejada, o recurso GPIO ou IOAPIC ao qual a linha de interrupção está conectada precisará ter a capacidade de ativar o SoC para permitir que o touchpad de precisão do Windows ative o sistema em vários cenários.
Se você decidir usar a funcionalidade de ativação, a linha de alimentação conectada ao módulo touchpad de precisão do Windows não deverá ser compartilhada com outros dispositivos que não são compatíveis com a ativação. Para que os cenários de ativação funcionem com êxito, a linha de alimentação usada precisa ser energizada durante condições de S3 ou modo de espera conectado.
Entradas da tabela do ACPI
Um dispositivo touchpad de precisão do Windows conectado ao host do Windows por meio do barramento I²C precisa definir uma entrada na tabela do ACPI para que o dispositivo seja reconhecido. A entrada deve especificar as seguintes informações:
Entrada | Descrição |
---|---|
Nome da entrada do dispositivo ACPI | Uma identificação de quatro caracteres exclusiva para esta tabela do ACPI, a fim de referenciar o dispositivo. Por exemplo, “TPAD”. |
ID de hardware do ACPI | Uma ID de hardware do ACPI de quatro caracteres + quatro números para referenciar o dispositivo. A ID de hardware do ACPI será exposta no gerenciador de dispositivos. Por exemplo, “MSFT0001”. |
ID compatível | Ela sempre deve ser “PNP0C50” para indicar que o dispositivo é compatível com o HID I²C. |
Controlador I²C | O controlador I²C ao qual o dispositivo está conectado precisa ser especificado para que se comunique com ele. Por exemplo, “I2C3” para representar o controlador nº 3). |
Endereço subordinado do I²C | O endereço subordinado do I²C do dispositivo precisa ser especificado para permitir que o host o resolva. Por exemplo, “0x6F”. |
Velocidade do I²C | A velocidade máxima compatível com o dispositivo e o controlador I²C deve ser especificada aqui para garantir um bom desempenho de comunicação. Não deve ser inferior a 400 KHz (ou 0x61A80 em hexadecimal). |
Controlador GPIO | O controlador GPIO ao qual a linha de interrupção do dispositivo está conectada precisa ser especificado para permitir que o host o acesse. Por exemplo, “GPIO0” para o controlador 0 (zero). |
Recurso ou pino do GPIO | O pino real do controlador GPIO ao qual a linha de interrupção do dispositivo está conectada precisa ser especificado para permitir que o host associe o pino ao dispositivo. Por exemplo, “{35}” para representar o pino 35). |
Tipo de recurso GPIO | Define as restrições em relação ao recurso GPIO. Deve ser “Exclusive”, a menos que a ativação do SoC seja desejada. Nesse caso, deve ser “ExclusiveAndWake”. |
Tipo de declaração de interrupção do GPIO | Define se o dispositivo fornecerá interrupções disparadas na borda ou no nível. Os dispositivos compatíveis com HID I²C devem fornecer e indicar as interrupções disparadas por “Nível”. |
Nível de declaração de interrupção do GPIO | Define o nível de linha quando a interrupção é declarada pelo dispositivo. Pode ser especificado como “ActiveLow” ou “ActiveHigh”. |
Dispositivos USB
Um módulo touchpad de precisão do Windows conectado ao host do Windows por meio de um USB 2.0 de alta velocidade/velocidade máxima deve expor os pinos necessários para permitir a conectividade do host.
A conexão com o host pode assumir várias formas, ficando a critério do integrador.
Observe que, durante a conexão com um hub USB, é importante entender as demandas de largura de banda de todos os componentes que compartilham esse hub. É altamente recomendável que os dispositivos de alta largura de banda e os controladores do touchpad de precisão do Windows não usem o mesmo hub USB, pois isso poderá resultar em demandas de largura de banda que excedem a capacidade do barramento.
Dispositivos de ponte USB (I²C -> USB)
Se você optar por usar uma ponte USB para conectar um touchpad de precisão do Windows do I²C ao host do Windows, a ponte deverá expor o touchpad como um nó de dispositivo distinto com os atributos exclusivos do dispositivo (wVendorID, wProductID e wVersionID).
Dispositivos HID SPI
Um módulo touchpad de precisão do Windows é definido como a combinação de um controlador IC e um sensor.
Um módulo touchpad do Windows que se conecta ao host do Windows por meio do barramento SPI precisa expor, no mínimo, os cinco seguintes pinos de conexão:
- Uma linha de dados (SDA)
- Uma linha de relógio (SCL)
- Uma linha de seleção de chip (SS)
- Uma linha de interrupção
- Uma linha de alimentação
- Uma GND (conexão de aterramento)
Veja a seguir um diagrama das linhas de conexões entre um dispositivo touchpad do Windows e o respectivo host do Windows.
Entradas da tabela do ACPI
Um dispositivo touchpad de precisão do Windows conectado via SPI precisa definir uma entrada na tabela do ACPI (Interface de Energia e Configuração Avançada) do host para que o dispositivo seja reconhecido pelo host. Para obter mais informações sobre o ACPI, veja Especificação da Interface de Energia e Configuração Avançada.
A entrada da tabela do ACPI deve especificar as informações conforme descrito no artigo Suporte do Plug and Play para o HID via SPI.