terça-feira, 13 de junho de 2017

Teste do display Sharp LS013B4DN04 (Memory LCD)

        O LCD LS013B4DN04 da Sharp usa uma nova tecnologia que consome muito menos energia que um LCD comum, um meio termo entre o e-Paper (cholesteric liquid crystal) e o cristal líquido comumente usado, tendo as vantagens de ambos: baixíssimo consumo de energia e velocidade de atualização. Ao contrário dos módulos LCD cujo chip do controlador/driver é montado no próprio vidro do LCD (Chip on Glass - CoG) ou no flat (Chip on Flat - CoF), no LS013B4DN04 todo o circuito já é construído no próprio vidro sendo que cada pixel é uma célula de memória (daí o nome Memory LCD).


Display visto de perto. Note as trilhas do circuito de controle do LCD no vidro. 

  

Acionamento:

        O LCD LS013B4DN04 possui 96x96 pixels, que podem estar somente no estado normal (cinza claro, bit=1) ou reflexivo (escuro espelhado, bit=0). Não há controle de contraste. Os pixels só podem ser mudados através da escrita de uma linha inteira de 96 pixels, ou seja, para se alterar um pixel em uma linha deve se ter uma cópia em um buffer, alterar o bit (pixel) desejado e então enviar toda linha novamente. Não há como ler os bits (pixels) do display de volta.
Esta abordagem de controle exige que toda operação da imagem a ser mostrada no display deva ser feita fora dele, em um buffer de memória (RAM por exemplo). Com 96x96 pixels, tem-se 96 x 96 = 9216 bits ou 1152 bytes. O LS013B4DN04 que adquiri vem montado numa placa (BoosterPack 430BOOST-SHARP96) pronto para ser usado com o LaunchPad MSP-EXP430FR2311.

Sharp LS013B4DN04 na placa 430BOOST-SHARP96. Note que nesta placa ainda há uma interface capacitiva.
Placa vista pelo lado inferior. O conversor step-up só é usado para LCDs que operam em 5V, não sendo o caso do LS013B4DN04.
Tabela de Memory LCDs da Sharp.
        O MSP430FR2311 só tem 1024 bytes de RAM, mas o display requer 1152, assim usei o artifício de duplicar as linhas enviadas, sendo necessário apenas a metade, ou seja, um buffer de 576 bytes. Os caracteres ficam um pouco mais quadriculados com esta solução, que também economiza memória FRAM para a tabela de bitmaps dos caracteres. O firmware de demostração da Texas Instruments, contudo, usa a memória FRAM como buffer.
        Como explicado anteriormente, somente pode ser enviado para o LCD linhas inteiras (96 pixels em 12 bytes). Pode-se enviar linhas inteiras individualmente e fora de ordem, ou como prefiro fazer, enviar todas de uma vez e em sequência.
        O LS013B4DN04 usa uma interface SPI com clock de até 1Mhz, LSB enviado primeiro e dados amostrados na subida do clock. O sinal SCS é ativo no nível alto. O envio da linhas segue a sequência de passos:

1º SCS muda para nível alto com uma pequena pausa em seguida (SCS setup time = 6us);

2º - O byte de comando, com os bits M0, M1 e M3 seguidos de cinco "0";
Onde:
M0 é o MODE bit, igual a 1 para entrar no Dynamic Mode, permitindo a atualização dos pixels;
M1 é o VCOM bit, este bit deve ter seu estado alternado e enviado para o LCD entre 1 a 30 vezes por segundo para alternar a polarização do LCD, característica desta tecnologia de LCD. Ou pode ser feito externamente através do terminal EXTCOMIN do LCD (selecionado pelo terminal EXTMODE). Se este operação não for feita por muito tempo, o display será danificado!
M2 é o CLEAR ALL bit, mantido em 0.

3º -  O endereço da linha a ser escrita que deve estar entre 1 e 96, não em 0 e 95;

4º - 12 bytes de dados dos pixels da linha (12 x 8 = 96 pixels);

5º - 1 byte nulo;

6º - Se for a última linha a ser escrita, mais 1 byte nulo. Caso contrário, voltar na 3º etapa para enviar mais linhas;

7º Depois do último byte a ser enviado, uma pequena pausa (SCS hold time = 2us), e então o SCS muda para nível baixo, finalizando o envio.

Display em ação.



Nenhum comentário:

Postar um comentário