Apêndice: Tecnologia One-Wire
Assim como na maioria das placas, observamos que usar a conversão ADC da CPU não funcionava muito bem para LCDs de tamanho grande (7" e maiores) com toque resistivo de quatro fios. Alguns fornecedores usam um módulo USB ou UART externo para conectar esses LCDs. Para economizar recursos de hardware da CPU e minimizar o uso de módulos externos, desenvolvemos a tecnologia one-wire, que usa apenas um pino GPl0, e integramos essa tecnologia em todas as nossas placas controladoras de LCD. Essa tecnologia usa um MCU para se comunicar com o chip do painel de toque (usamos o chip ADS7843 ou outros chips compatíveis com ADS7843) e processar os sinais analógicos do resistor de quatro fios e enviar os sinais estáveis filtrados para a placa via GPl0. Testamos essa tecnologia em vários LCDs e ela funcionou muito bem, mesmo em um LCD grande de 19", e alguns problemas comumente observados, como inversão de tela e trepidação, não foram encontrados.
Hoje em dia, a maioria dos LCDs com tamanho menor que 12" tem luz de fundo LED. Usamos o MCU do fio único para processar a luz de fundo também. A luz de fundo é definida com uma variedade de valores. Os usuários podem definir um valor para a luz de fundo e esse valor é passado ao MCU para processamento por meio do pino GPl0 do one-wire.
Cada módulo LCD da FriendlyElec tem um ID exclusivo que é salvo no MCU do one-wire. Quando o MCU lê as informações de iD dos sinais GPl0, ele reconhece o modelo do LCD e instrui o bootloader a carregar o driver do LCD correspondente, tornando o FriendlyElec LCD plug and play.
Quanto à tecnologia de um fio para nossos LCDs com toque capacitivo, removemos o chip do painel de toque resistivo, mas mantivemos a função de ajuste de luz de fundo e as informações de ID do LCD. Portanto, a comunicação entre o toque capacitivo e a placa ainda é padrão llC.
Observe que a tecnologia de um fio é diferente da comunicação de barramento único comumente conhecida. Na verdade, na placa usamos um temporizador PWM (não pinos PWM) para gerar a frequência de comunicação (9600Hz). Para mais detalhes, consulte o código-fonte do driver.