Busque no blog

quinta-feira, 11 de outubro de 2012

Controlando Display GLCD de 128x64 pixels... Parte1

Controlando Display GLCD de 128x64 pixels...

Modelo ERM12864-2SA


Se você já tentou fazer um desses displays funcionar em linguagem assembler do seu microcontrolador preferido e não teve sucesso sem ter de reutilizar algum código em C ou outra linguagem de alto nível ou mesmo módulos prontos de algum programa como o www.arduino.cc, www.pinguino.cc ou mesmo o programa energia para microcontroladores MSP430 e quer conhecer como manipular dados e instruções neste GLCD específico, vou mostrar a gora como é fácil e prático. Este GLCD pode ser comprado em www.cleapseletroeletronica.com a um custo bem convidativo.

Características do LCD gráfico ERM128X64SA-2B.


Dimensões e esquemático.
  1. Características elétricas (VDD=5V+/-5% , VSS=0V , Ta= 25 º C ).

    Parâmetros
    Símbolo
    condição
    Mínimo
    Típico
    Máximo
    unidade
    Logic volts
    VDD
    --------
    4,5
    5
    5,5
    V
    Logic corrente
    IDD
    --------
    ---------
    2,02
    4,01
    mA
    Alimentação
    VDD-V0
    25ºC
    8
    8,5
    9,01
    V
    Nível alto
    VIH
    ---------
    0.7VDD
    ---------
    VDD
    V
    Nível baixo
    VIL
    ---------
    0
    ---------
    0.3VDD
    V
    Backlight 40mA
    40mA
    25ºC
    -------
    3,41
    3,51
    V

    1. Ciclos de instrução e dados.



    1. Tempo de escrita no GLCD.

      Tempo de leitura no GLCD.

      1. Pinagem do GLCD. 




      Diagrama eletrônico de exemplo.


      Operação e acionamentos dos dados.

      • Buffer de I/O.

      O buffer de entrada de dados controla o estado do GLCD entre os instantes de habilitado e desabilitado. Até que CS1 ou CS2 estejam em modo ativo a entrada de dados e instruções não são executadas no GLCD. Para isso, deve-se escolher um dos dois lados do GLCD por vez e acionar ou CS1 ou CS2 para que se saiba para onde deve ser impresso o dados ou qual dos dois lados se deve gravar alguma instrução. Mesmo sem mudanças internas, RSTB funciona independentemente de CS1 ou de CS2.

      • Registro de entrada.

      O registro de entrada tem a função de interfacear o GLCD com o meio externo e sua função é guardar os dados ou instruções temporariamente até que essa informação seja gravada em definitivo na memória RAM de dados.
      Quando CS1 ou CS2 estão em modo ativo, ou seja, acionados, R/W e RS acionam o registro de entrada. Os dados vindos do microcontrolador ou computador ou microprocessador, são guardados no registro de entrada que é mais rápido que a memória RAM, depois são transferidos para esta memória. Esta operação de transferência é executada com o acionamento do pino E que habilita o registro a transferir os dados ou instruções uma vez que o registro esteja com as informações completas e prontas para aparecerem no display.

      • Registro de Saída.

      O registro de saída guardam os dados da memória de dados do display quando CS1 ou CS2 estão em modo ativo e R/W e RS estão em nível “H”. Os dados guardados no display são transferidos para a área de memória de dados e colocados no registro de saída. Quando CS1 ou CS2 estão em modo ativo e R/W em nível H e RS em nível L o bit de status pode ser lido.
      Para ler o conteúdo da memória de dados da RAM do display é necessário duas vezes a instrução de leitura. Na primeira, os dados são transferidos para o registro de memória de saída e na segunda, os dados estão disponíveis para serem lidos por qualquer meio, seja por um microcontrolador ou por um computador.
      A tabela seguinte mostra os níveis de cada pino e sua função com esses níveis. Procure seguir o que está descrito quando for fazer seu programa para o seu microcontrolador.


      RS
      R/W
      Função
      0
      0
      Instrução

      1
      Leitura de status (Busy check)
      1
      0
      Escrita de dados ( do Registro de entrada para a RAM do display )

      1
      Leitura de dados( Da RAM de dados do display para o registro de saída)



      • Resset (RST).
      O sistema de resset pode ser inicializado levando o pino RST para o nível baixo, ou zerando este pino quando estiver ligando o sistema onde ele esteja sendo usado. Recebendo instruções de um microcontrolador. Quando este pino vai a nível baixo ou zero, algumas coisas coisas podem acontecer : O display é desligado e o display coloca o primeiro endereço na posição zero, ou seja, Z-address 0 .
      Enquanto o pino RST estiver no nível baixo ou zerado, nenhuma instrução tem acesso a leitura de status do display. A condição de status de resset aparece no pino DB4 do módulo GLCD. Depois que DB4 estiver em nível baixo, qualquer instrução pode ser acessível.

      Flag de ocupado.

      Busy flag indica que o módulo está em operação ou não. Quando este flag estiver em H ou em nível alto, ele está inacessível por qualquer instrução externa. Ao chegar ao nível baixo ou zero, qualquer instrução ou dados pode ser acessado. DB7 é o pino que indica o sinal de busy flag. Observe que quando alimentamos o módulo, habilitamos o pino E, temos de esperar um pouco até que o pino DB7 vá a nível zero.

      • Efeito flipflop de display ON/OFF

      O circuito de flip flop ON/OFF do GLCD tema função de desligar e ligar o display. Quando o flip flop está em nível baixo ou em reset, aparece uma tensão seletiva e não seletiva na janela do display, através da saída dos terminais do segmento do IC KS0108B. Quando estiver em nível alto ou set, nada aparece , independente do valor na memória de dados do display.
      O circuito de flip flop ON/OFF do display pode ter o status mudado por instrução. Os dados do display, em todos os segmentos, desaparecem, quando o sinal de RST estiver em nível baixo ou zerado. O sinal de status do flip flop pode ser acessado no pino DB5 pela instrução de leitura.

    2. Registro da página X.

      O registro da página X descreve a área da memória interna do display. Este registro não possui a função de contador. O endereço é posicionado por instrução.


      Contador de endereço Y.

      O contador de endereço Y é responsável pela memória RAM interna do display. Um endereço é definido por meio de instrução e é incrementado em 1 automaticamente por meio das instruções de leitura ou escrita de dados do display.


      Memória de dados do display.

      É responsável por guardar as informações que serão mostradas no display. Para aparecer um pixel no display é necessário que o pixel seja um bit 1 na memória do display, por outro lado se nada aparecer é por que temos um bit 0.


      Registro de linha inicial do display.

      O registro de início de linha do display indica o endereço dos dados da memória do display a serem mostrados no início na janela do do display. Os bits DB0~DB5 do início de linha do display são definidos por instrução. Este registro também é usado para o efeito de movimento de figuras e caracteres na janela do display.

      Instrução de controle do display.

      O controle de do display é feito por uma série de métodos e instruções onde o efeito desejado é visto por meio desse controle. As instruções são enviadas por qualquer microcontrolador ou computador para o módulo GLCD e são processadas pelo circuito interno de controle do display.
      A tabela a seguir mostra as várias instruções desse display. Demais recursos podem ser adquiridos lendo o datasheet do KS0108B .

Um comentário: