quarta-feira, fevereiro 25, 2015

Display 16x2 com Interface I2C

Os displays alfauméricos de 2 linhas e 16 colunas são bastantes práticos para apresentar informações simples, mas os modelos mais comuns tem um problema: exigem uma quantidade de pinos para interface (ou o uso de um chip auxiliar na interface).

O modelo que eu examino aqui, que comprei na Tato, usa uma interface I2C que exige apenas dois sinais (SDA e SCL).


Fisicamente o display é mais frágil que os displays 2x16 tradicionais. Ele é feito para ser soldado diretamente em uma placa e ficar internamente a uma caixa, debaixo de uma janela transparente e protetora.

O site da Tato tem um datasheet em "engrish" (inglês cheio de erros típico de documentos chineses). A documentação é bem completa, mas em alguns trechos difícil de ler.

A interface elétrica é bastante simples. O display funciona com 5.0V, porém pode operar a 3.0 bastando acrescentar dois capacitores externos (graças a um booster interno). Além da alimentação tem os sinais SDA, SDL e Reset.

Internamente o display usa o tradicional padrão HD44780, com a interface I2C "colada"por cima. O endereço I2C é fixo (portanto nada de colocar vários displays em "varal") e apenas escrita é suportada. As escritas devem ser feitas em pares de bytes compostos por um byte de controle e um byte de dado. O byte de controle indica se é o último par do bloco e  o valor do sinal RS (1 indica que o dado é uma instrução e 0 que é um dado a ser escrito na memória do display).

Como não é possível ler o sinal de Busy do controlador, é responsabilidade do software dar a pausa adequada para os comandos serem executados.

No próximo post vamos ver um teste de ligação do display a um Arduino.

Nenhum comentário: