Display ILI9488 com Tela de Toque XPT2046

 O display ILI9488 480x320 já vem com um controlador de tela resistiva de toque XPT2046 que é muito fácil de usar:


 


O teste montado utiliza um Atmega 8A rodando em 16MHz:



Para ler os registradores da tela de toque o sinal CS vai a 0 e então é escrito um byte no sinal DIN com SCK pulsando e registrando os bits, então há mais um pulso entre a escrita e a leitura e, então, começa-se a ler os bits do registrador. Esse registrador pode ser de 8 bits ou de maior precisão com 12 bits:

Os bits A2 A1 A0 escolhem o registrador de leitura que pode ser a coordenada x ou y da tela, e também z1 e z2 que retornam a pressão na tela. Mode define a precisão 8 ou 12 bits que serão lidos logo após, Ser/Dfr é a referência do conversor ADC e PD1 PD0 liga a tela constantemente.

Abaixo mostra-se os valores em hexa nas extremidades da tela e no caso das coordenadas xy o valor se torna proporcional ao longo do eixo: 



A tela precisa ser calibrada porque as coordenadas não são exatas no início e no fim. À esquerda, x que deveria ser 0 retorna 00A1 e à direita deveria ser 0FFF que é o máximo em 12 bits, mas retorna 0F80.

O programa então possui uma reta de compensação que faz essa calibração das leituras xy e o resultado é que a caneta fica bem precisa na tela, abaixo o gráfico para a coordenada x: 



Um vídeo mostrando os testes: 


 


 

 

 

Programa Asm 

Comentários

Postagens mais visitadas deste blog

Gerador Aleatório

MP3

HD com relês