MSP430 Lab 05 Biblioteca básica para comunicação com o Display do Nokia5110 Imagem do Display Neste Lab trataremos da rotina de implementação de um código para comunicação entre o MSP430 e um display gráfico. Este display, como já mencionado em Labs anteriores, apresenta uma grande facilidade de implementação de um código para comunicação. Além do display, faremos a leitura do sensor de temperatura interno do MSP ao qual indicaremos o valor na tela do mesmo. O processo de comunicação A primeira parte da dinâmica de comunicação entre o display e qualquer dispositivo, como um microcontrolador ou microprocessador, foi descrita no Intel Edison Lab 04 onde descrevemos a organização da memória interna do display. Neste Lab, iremos detalhar ainda mais este processo com relação a dinâmica de envio de dados e comandos de configuração para o controlador do display.
Comandos para controle do display A tabela apresentada abaixo é autoexplicativa com relação ao status dos principais comandos de configuração que devem ser enviados para o display. Tabela Instruções PCD8544 A próxima tabela indica, em detalhe, quais os valores a serem carregados nos principais parâmetros descritos acima. Valores dos Parâmetros Detalhes dos comandos Os comandos a serem enviados para o controlador do display serão descritos com mais detalhes abaixo. Comando NOP: Nenhuma operação, ou seja, não faz nada!
Comando Funções de configuração: (Function Set) É um comando para configurar a operação do LCD. -PD: É o bit para selecionar o modo de operação: PD = 0: Modo Ativo, PD = 1: Modo de economia de energia. V: É um bit para selecionar o formato de incremento dos endereços na memoria DDRAM do controlador PCD8544: V = 0: Incrementa os endereços na linha horizontal (Horizontal Address Mode, V = 1: Incrementa os endereços na linha vertical. (Vertical Address Mode H: É um bit para selecionar o formato dos comandos SCD: H = 0: Uso dos comandos básicos, H = 1: Uso de comandos adicionais. Comando Escrita de dados: (Write Data) Comando para escrita de dados na memória DDRAM do display. D7 D0: Oito bits de dados devem ser enviados para mostrar no display. Comandos configurados no Modo Básico (H=0) Comando de Controle do Display: (Display Control) Comando para enviar comandos de controle para o display.
Comando Configura Endereço em Y na RAM: Este comando serve para configurar a posição do eixo Y no mapa de memórias da RAM. Os valores de Y estão entre 0 e 5 (6 linhas do display). Comando Configura Endereço em X na RAM: Este comando configura os endereços, no mapa da memória RAM do controlador PCD8544, referentes ao eixo X do display. Os valores de posição em X devem estar entre 0 e 83 (84 Colunas), logo, tendo 6 bits para configuração desta posição, os valores devem ser de 000 0000 (00H) à 101 0011 (53H).
Comandos configurados no Modo Adicional (H=1) Comando de Controle de Temperatura do Display: Já que este display apresenta em seu interior um fluido (Display de Cristal Líquido) se a temperatura interna é muito baixa não teremos indicações legíveis na tela e os pixels não acenderão corretamente, logo é necessário compensar a tensão aplicada em cada célula do display. O gráfico abaixo mostra a relação entre a tensão aplicada VLCD e a temperatura. Gráfico Temperatura x VLCD Comando Controle de Polarização: Este comando configura a tensão de polarização do display. A tabela abaixo indica a combinação dos bits de configuração e a tensão referente a cada combinação escolhida.
Comando de Configuração do VOP: Este comando configura a tensão de operação VLCD. O usuário pode configurar os valores utilizando os bits de Vop6 a Vop0 e calcular o VLCD de acordo com a equação abaixo. Por exemplo: Se o usuário deseja um valor de 5 volts para VLCD, teremos: Aproximando, teremos o valor de 32 (20H) ou 010 0000B. Logo, o comando a ser enviado para este parâmetro será 1100 0000B ou C0H.
Sequência de comandos para operação do LCD O melhor método para o controle de operação do Display é enviar os comandos de configuração e após os dados a serem apresentados na tela. Normalmente, a ordem de operação é: Após o procedimento de inicialização do display ser finalizado, o usuário envia os dados a serem indicados no display. Normalmente, o comando referente ao posicionamento em X e Y devem ser enviados primeiro. Como exemplo, enviar a
posição em X=0, Y=0 como indicado abaixo: A tabela abaixo mostra um exemplo da escrita de um caractere na memória DDRAM no Display.
Exemplo Escrita de Caracter Esquema de montagem e algoritmo O esquema de montagem utilizado neste Lab segue as definições apontadas na tabela abaixo. O Esquema elaborado no software Fritzing é mostrado logo em seguida. Tabela de Conexões Esquema de Montagem O algoritmo, elaborado no software Code Composer Studio da
Texas Instruments, foi baseado no código escrito por RobG do fórum http://forum.43oh.com/. Acrescentamos a leitura do Sensor de temperatura interna do chip. Este código é mostrado abaixo. [crayon-59f7e591db037141901761/] [crayon-59f7e591db063793655866/] No gráfico gerado pelo analisador de sinais lógicos nós podemos observar o início da comunicação entre o Microcontrolador e o display com a mudança de estado do sinal de RESET. Imagem Analisador Lógico Sinal de Reset Já no gráfico subsequente observamos a dinâmica de comunicação entre os dois dispositivos. Imagem Analisador Lógico Sinal de Dados
Conclusão Displays de LCD são componentes importantes em um projeto de Sistemas Embarcados. O detalhe de funcionamento e da dinâmica de implementação de um algoritmo são de grande importância no auxílio de outras pessoas não são familiarizadas com o dispositivo. Detalhes importantes para a escolha deste modelo de display como baixo consumo e ocupação de memória de programa interna ao microcontrolador fazem deste uma ótima escolha em projetos futuros. Imagem Montagem Final