Busque no blog

quinta-feira, 11 de outubro de 2012

Controlando Display GLCD de 128x64 pixels... Parte 2


Controlando Display GLCD de 128x64 pixels...
Modelo ERM12864-2SA


                          Parte 2                




INSTRUÇÃO RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 FUNÇÃO












Display ON/OFF 0 0 0 0 1 1 1 1 1 0/1 Liga e desliga o display. O esta-











do interno e a memória RAM











não são afetadas : 0-OFF ; 1-ON
Define endereço 0 0 0 1

Endereço Y (0~63)


Define o endereço Y no conta-











dor de endereço Y
Define página 0 0 1 0 1 1 1
página
Define o endereço X no
( endereço X )







( 0 ~ 7)
registro de endereço X
Leitura de estado 0 1 O 0 O R 0 0 0 0 Leitura de estado



C
N E



Ocupado : 0 – livre.



U
/ S



1 – em operação



P
O E



ON/OFF 0 – DISPLAY ON



A
F T



1 – DISPLAY OFF



D
F




RESET 0 – NORMAL



O






1 – RESET
Escrita no display 1 0



Escrita de dados no display


Escreve os dados de DB0~DB7











na memória RAM do display.











Depois da instrução de escrita 0











endereço Y é incrementado au-











tomaticamente em 1 .
Leitura do display 1 1



Leitura dos dados do display


Lê os dados de DB0~DB7 vindos











da memória do display, para o











barramento.

Mapa de endereço da RAM de dados do display.



Considerações .

Uma das melhorias desse display é que não é preciso o uso de fonte negativa de tensão para acionar o display o que ajuda e muito na definição de projetos com o uso desse GLCD. A forma de posição dos pixels no GLCD é mostrada na figura a seguir . Observe que temos duas janelas em um GLCD e que cada janela possui oito páginas com 64 colunas de oito bits. Observe também que cada janela tem um controlador e que este é selecionado de acordo com os sinais CS1 e CS2.




Controlador 1 ( CS1 = 1 ; CS2 = 0 ) Controle 2 ( CS1 = 0 ; CS2 = 1 )





D0
Página 0 – 64 Bytes (colunas) x 8bits Página 0 – 64 bytes (colunas) x 8bits
D1
PÁGINA 1 PÁGINA 1
D2
PÁGINA 2 PÁGINA 2
D3
PÁGINA 3 PÁGINA 3
D4
PÁGINA 4 PÁGINA 4
D5
PÁGINA 5 PÁGINA 5
D6
PÁGINA 6 PÁGINA 6
D7
PÁGINA 7 PÁGINA 7







Cada linha de 64 bits cada linha de 64 bits


Devido perfil fino, baixo peso, baixo consumo de energia e fácil manipulação os displays gráficos de cristal líquidos são usados em uma variedade de aplicações, principalmente quando se deseja usar avisos ou dados em forma diferenciada das dos displays alfanuméricos. Por exemplo uma figura de um coração e números indicando seu estado. Outra aplicação importante seria a plotagem de valores gráficos de alguma medida. O importante é que se desejando emitir alguma figura gráfica o GLCD é ideal para isso.
Abaixo temos alguns valores de inicialização do GLCD que se pode usar em qualquer programa em um microcontrolador ou microcomputador para acionar o GLCD. Os valores estão em hexadecimal e seus significados logo a seguir.

  1. 0C0H (1100 0000 - binário ) - Especifica a linha inicial a ser usada de 0 até 63 de cada página. Aqui DB6~DB7 devem estar em nível lógico 1 para sinalizar que se deseja usar uma linha de início. Aqui usamos DB0~DB5 como zeros, sinalizando que queremos a primeira linha da página selecionada na coluna selecionada.
  1. 04Fh ( 0100 0000 – binário ) - Especifica o endereço da coluna Y e seleciona dentre as 64 possíveis colunas a serem usadas. Basta lembrar que esta coluna é automaticamente incrementada a cada instrução de escrita ou de leitura. Aqui DB0~DB5 são zerados para que a instrução 0C0H acima esteja na coluna zero.
  1. 0B8H ( 10111000 – binário ) - Especifica o endereço da página a ser usada. Temos a possibilidade de selecionar dentre 8 páginas possíveis. Aqui temos a página 0 com os valores de DB0~DB3 com valores de zeros.
  1. 03FH ( 0011 1111 – binário ) - Liga ou desliga o display. 03FH é o valor hexadecimal que liga o display e 03EH é o valor que desliga o display. Esta operação de ligar e desligar não afeta os bits de estado do display nem mesmo o conteúdo da memória RAM. O pino DB0 é o responsável por esta operação, com valor 0 é desligado o display e com valor 1 é ligado o display.
  1. Um exemplo é a figura a seguir. Usamos os valores de endereço Y de ( DB0~DB5 - 0100 0101 ), 69 em decimal, para colocarmos um pixel na coluna 5. Em DB0~DB2 , usamos o valor binário 011 ou 3 em decimal para definirmos a página 3 como o primeiro ponto do pixel. Na linha de início decidimos por escolher a linha 4 da página 3 na coluna 5 , com o valor binário 1100 0100 ou 0C4H em hexadecimal em DB0~DB7. Tudo na sequência mostrada acima. Como primeiro se deve ligar o display com o comando 0x3FH e reiniciar o display com um nível zero em RST passando para alto novamente, para apagar o conteúdo indesejado, basta seguir os passo acima descritos, logo após isso se vede decidir por escrever dados no display ou ler dados do display.

0 1 2 3 4 5 6 7 8 9 10 11 12 ~ 63
DB0















DB1















DB2















DB3















DB4














LINHA 4
DB5















DB6















DB7


















COLUNA
5













É isso aí ...

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 .

quarta-feira, 10 de outubro de 2012

Módulos RF de 433Mhz e 315Mhz uma abordagem

Módulos RF baixo custo

No meu site já está disponível os módulos de RF para aplicações sem fio que podem ser usados com codificadores e decodificadores e temos esses da marca Holtek, uma empresa taiwanesa de componentes eletrônicos, dentre estes, microcontroladores e circuitos integrados para telefonia e vídeo além de codificadores e decodificadores  HT12E e HT12D, que são usados com esses módulos de RF acima descritos.
         O módulo RXD1 é alimentado com 5Vcc e é o receptor nas frequências de 433Mhz ou 315Mhz e pode ser usado qualquer outro de mesma frequência e arquitetura dele para enviar sinais a este.
         O modelo RXD1 é um mini módulo receptor que recebe sinais modulados em OOK, ou seja, On-off Keyed e demodula os sinais digitais para o próximo estágio de decodificação. O oscilador deste é feito com uma estrutura LC tendo como resultado uma performance excelente com um uso muito fácil do produto com um mínimo de componentes periféricos.
          Este modelo de receptor foi desenhado para uso em controle remoto e em operação de receptores de segurança sem fio em uma frequência de banda de 434Mhz ou 315Mhz respeitando as leis internacionais de regulamentação e em especial a americana FCC, parte regulamentar 15.
          Já o modelo transmissor TXC1 é um módulo de transmissão ASK como resultado disso uma excelente performance com um uso muito fácil. É desenhado para especificamente para uso em controle remoto, mouse sem fio e operação de sistemas de alarme de casas e carros com um oscilador de 433Mhz ou 315Mhz

Uma demonstração do funcionamento dos módulos





workshop em ferramentas opensource para eletrônica