MSP430 Lab 06 Comunicação com display de 40 2 e análise das formas de onda no analisador lógico Neste Lab iremos descrever os passos para a implementação do processo de comunicação entre o MSP430G2553, embarcado na LaunchPad da Texas Instruments, e um display de LCD de 40 colunas x 2 linhas sob o controle do clássico Hitachi HD4470. Imagem tela LCD Interface com o display O controlador para Display s de LCD HD44780 oferece uma interface de comunicação de 8 bits utilizando os 8 pinos de dados do D0 ao D7 ou em 4 bits utilizando somente os pinos D4 ao D7. Além dos pinos de comunicação, o controlador também necessita dos sinais de controle nos terminais RS (Register Select), RW (Read/Write) e E (Enable). Uma descrição detalhada da função de cada terminal é exposta abaixo: RS -> Register Select: Indica se estamos enviando um comando para o controlador do display (RS=0) ou um dado a ser mostrado na tela (RS=1). RW -> Read/Write: Indica se os dados expostos nos pinos
D0 a D7 são dados de escrita (RW=0) ou leitura de registros do controlador do display (RS=1). A maioria das aplicações preferem manter este dado em nível 0 (Aterrado) devido a necessidade de apenas escrita de comandos e dados. E Enable: Este terminal serve para indicar ao controlador o momento exato de apanhar os comandos ou dados disponíveis em D0 a D7. Obs: O controlador faz leitura dos dados somente na borda de descida do Enable. D0 a D7: Terminais utilizados para a exposição dos dados ou comandos para o controlador do LCD. O modo em 4 bits No modo de trabalho em 4 bits, somente os pinos D4 a D7 são utilizados para enviar comandos e dados ao display. Este modo proporciona uma economia de 4 portas do microcontrolador em relação ao modo em 8 bits. Uma rotina de inicialização deve ser respeitada quando trabalhando em 4 bits para que o HD44780 possa entender que os comandos/dados serão enviados em 2 etapas, sendo elas o nibble (4bits de dados) mais significativo enviado primeiro e, logo após o pulso de enable, o nibble menos significativo. Abordando o ponto de vista de velocidade, neste modo o tempo de comunicação entre o microcontrolador e o display dobra em relação ao modo de 4 bits pois os dados são enviados em duas etapas sendo intermediado pelo pulso de enable. Inicialização do display O diagrama abaixo ilustra o modo de inicialização do display quando trabalhamos 4 bits. Os tempos entre os comandos, descritos no diagrama, devem ser respeitados principalmente no início quando é estabelecido o modo de reset do controlador para que não haja erros de leitura e modo de operação do controlador.
Fluxograma inicialização
Para o nosso algoritmo, a função criada para a sequência de inicialização do display está ilustrada abaixo. Cada comando está devidamente comentado para um fácil entendimento do leitor. Função Start LCD Set de instruções O set de instruções básico deste controlador, retirado do datasheet do HD44780, está indicado abaixo.
Set de instruções HD44780 A descrição de cada parâmetro, assim como os valores possíveis de cada um, está descrito na imagem subsequente.
Descrição dos parâmetros do set de instruções A leitura do Busy Flag e dos dados dos registradores do display é melhor indicada em aplicações onde necessita-se saber a exata posição do cursor, na elaboração de menus utilizando a tela do display ou em construção de rotinas de Scroll mais complexas. Na maioria dos casos, nenhum dado é lido do display. Para o correto funcionamento, é necessário apenas aguardas os tempos indicados no datasheet. Algoritmo e teste O algoritmo utilizado para esta aplicação está indicado abaixo. Todas as linhas estão comentadas para um melhor entendimento. De uma forma geral, este código é simples de ser implementado, visto que o datasheet é rico de comentários e indicações dos comandos exatos a serem enviados. [crayon-59f2e685adf2d955647510/] O diagrama de ligação está indicado abaixo. Um display genérico, de 16 2, foi utilizado neste esquema já que o Fritzing não dispunha de um de 40 2 em sua biblioteca. Esta troca não afeta em nada o projeto já que os displays de 16 2 também operam com este algoritmo.
Esquema de ligação O diagrama temporal abaixo, utilizado para debug do funcionamento da comunicação, mostra a inicialização e configuração do controlador do display, onde os comandos são enviados já que o pino anexado no canal 0, RS, está em nível baixo.
Imagem Analisador Lógico -1 Já na imagem subsequente, ilustramos o envio dos dados referentes as letras S (0101 0011) e c (0110 0011) da palavra Scroll enviados ao display.
Imagem Analisador Lógico 2 Na próxima imagem, detalhamos o envio da letra S (0101 0011), enviada em duas etapas. Os cursores em Azul indicam o momento que o controlador do display apanha os dados, que é exatamente na borda de descida do sinal de E (Enable).
Imagem Analisador Lógico 3 Uma imagem da aplicação montada na protoboard está indicada abaixo, Imagem Montagem Final
Conclusão Neste Lab indicamos o processo de comunicação entre o MSP e o clássico controlador para displays HD44780. Como observado, este padrão de comunicação é simples e já está difundido no mercado a muitos anos. Utilizando a plataforma de desenvolvimento LaunchPad e um analisador lógico de baixo custo, o desenvolvimento da aplicação se tornou menos doloroso grassas ao debug dos dados e de registradores do microcontrolador. Fica a cargo do leitor implementar outras aplicações que atendam aplicações específicas.