quinta-feira, janeiro 05, 2012

Display Gráfico Nokia 5110 - Parte 3

Neste post vamos ver alguns detalhes do controlador usado no display, o PCD8544. O respectivo datasheet pode ser baixado do site da Sparkfun.

O diagrama de blocos do controlador pode ser visto na figura 1 abaixo. A parte que nos interessa é a memória Ram e o Address Counter.
Figura 1 - Diagrama de Blocos do PCD8544

Memória Ram

A memória Ram possui 6 bancos de 84 bytes. Cada byte controla oito pontos na tela. Os bytes estão organizados "na vertical": cada byte controla 8 pontos em 8 linhas da mesma coluna (ver figura 2 abaixo).
Figura 2 - Mapeamento da tela na Ram

Para acessar o bit que controla o ponto que fica na coluna X da linha Y, nós temos que:
  • Determinar o banco onde está o byte: Y div 8
  • Determinar o byte no banco: X
  • Determinar o bit no Byte:  Y mod 8
Na comunicação com o display, podemos enviar um byte para a memória Ram, colocando o sinal D/C em "1". O Address Counter determina onde este byte será escrito. Após uma escrita, o Address Counter é incrementado, conforme o bit V de configuração (que veremos adiante). O Address Counter é dividido em duas partes, X e Y, que são carregadas por comandos separados.

É importante reparar que podemos apenas escrever na memória. Portanto, se queremos manter algum bit já existente precisamos manter uma cópia da tela na memória Ram do microcontrolador.

Comandos

Quando D/C está em "0", o byte escrito é tratado como um comando. A interpretação dos comandos depende de um modo interno do controlador: conjunto básico (H=0) e conjunto estendido (H=1).

Os comandos abaixo (figura 3) independem do modo:
Figura 3 - Comandos que independem do modo

onde
  • P: 1 controlador desligado (Power down), 0 controlador ativo
  • V: 1 endereçamento vertical, 0 endereçamento horizontal (ver figura 4)
  • H: 1 conjunto estendido, 0 conjunto básico

Figura 4 - Endereçamento vertical e horizontal
 Os comandos do conjunto básico (figura 5) são:
Figura 5 - Comandos do conjunto básico

onde

  • DE: 00 display apagado, 01 todos elementos acesos, 10 modo normal, 11 reverso
  •  yyy: endereço Y (0 a 5)
  •  xxxxxxx: endereço X (0 a 83)

Os comandos do conjunto estendido (figura 6) são usados para configuração:
Figura 6 - Comandos do conjunto estendido


No próximo post veremos como colocar tudo isto em uso.

Nenhum comentário: