Índice:

Como fazer o driver de LCD estático com interface I²C: 12 etapas
Como fazer o driver de LCD estático com interface I²C: 12 etapas

Vídeo: Como fazer o driver de LCD estático com interface I²C: 12 etapas

Vídeo: Como fazer o driver de LCD estático com interface I²C: 12 etapas
Vídeo: AMD FreeSync en Monitor HP 24fw con altavoces integrados Unboxing Review 2024, Julho
Anonim
Como fazer driver de LCD estático com interface I²C
Como fazer driver de LCD estático com interface I²C

Os monitores de cristal líquido (LCD) são amplamente utilizados para aplicações comerciais e industriais devido às suas boas propriedades visuais, baixo custo e baixo consumo de energia. Essas propriedades tornam o LCD a solução padrão para dispositivos operados por bateria, como instrumentos portáteis, calculadoras, relógios, rádios, etc.

No entanto, para controlar adequadamente o que o LCD mostra, o driver eletrônico do LCD deve gerar formas de onda de voltagem apropriadas para os pinos do LCD. As formas de onda devem ser AC (corrente alternada) por natureza, porque as tensões DC (corrente contínua) danificarão permanentemente o dispositivo. O driver apropriado forneceria esses sinais para o LCD com um consumo mínimo de energia.

Existem dois tipos de LCDs, o estático, com apenas um painel traseiro e um pino para controle de segmento individual e, o multiplexado, com painéis traseiros múltiplos e segmentos múltiplos conectados para cada pino.

Este Instructable apresentará o design de um driver de LCD estático com dispositivo SLG46537V GreenPAK ™. O driver de LCD projetado acionaria até 15 segmentos de LCD, usando alguns microamperes de corrente da fonte de alimentação e ofereceria uma interface I²C para controle.

Nas seguintes seções será mostrado:

● informações básicas de conhecimento sobre LCDs;

● o design do driver SLG46537V GreenPAK LCD em detalhes;

● como conduzir um LCD estático de sete segmentos e 4 dígitos com dois dispositivos GreenPAK.

Abaixo descrevemos as etapas necessárias para entender como a solução foi programada para criar o driver de LCD estático com interface I²C. No entanto, se você deseja apenas obter o resultado da programação, baixe o software GreenPAK para visualizar o arquivo de design GreenPAK já concluído. Conecte o GreenPAK Development Kit ao seu computador e acesse o programa para criar o driver de LCD estático com interface I²C.

Etapa 1: Noções básicas de monitores de cristal líquido

Noções básicas de monitores de cristal líquido
Noções básicas de monitores de cristal líquido
Noções básicas de monitores de cristal líquido
Noções básicas de monitores de cristal líquido

Os monitores de cristal líquido (LCD) são uma tecnologia que não emite luz, apenas controla a passagem de uma fonte de luz externa. Essa fonte de luz externa pode ser a luz ambiente disponível, no tipo de tela reflexiva, ou a luz de um led ou lâmpada de luz de fundo, em tipo de tela transmissiva. LCDs são construídos com duas placas de vidro (superior e inferior), uma fina camada de cristal líquido (LC) entre eles e dois polarizadores de luz (Nota de aplicação AN-001 - Noções básicas de tecnologia LCD, Hitachi, Nota de aplicação AN-005 - Display Modos, Hitachi). O polarizador é um filtro de luz para o campo eletromagnético leve. Apenas os componentes de luz na direção correta do campo eletromagnético passam pelo polarizador, enquanto os outros componentes são bloqueados.

O cristal líquido é um material orgânico que gira o campo eletromagnético da luz 90 graus ou mais. No entanto, quando um campo elétrico é aplicado ao LC, ele não gira mais a luz. Com a adição de eletrodos transparentes no vidro superior e inferior do display, é possível controlar quando a luz passa e quando não passa por uma fonte externa de campo elétrico. A Figura 1 (consulte a Nota de Aplicação AN-001 - Fundamentos da Tecnologia LCD, Hitachi) acima ilustra este controle de operação. Na Figura 1, o display fica escuro quando não há um campo elétrico. Isso ocorre porque os dois polarizadores filtram a luz na mesma direção. Se os polarizadores forem ortogonais, o display ficará escuro quando o campo elétrico estiver presente. Esta é a situação mais comum para telas reflexivas.

O campo elétrico mínimo, ou tensão, para controlar o LCD é chamado de limite LIGADO. O LC é afetado apenas pela tensão e quase não há corrente no material LC. Os eletrodos no LCD formam uma pequena capacitância e esta é a única carga para um driver. Esta é a razão de um LCD ser um dispositivo de baixa potência para mostrar informações visuais.

No entanto, é importante notar que o LCD não pode operar com uma fonte de tensão de corrente contínua (DC) por muito tempo. A aplicação de uma tensão CC causará reações químicas no material LC, danificando-o permanentemente (Nota de aplicação AN-001 - Noções básicas de tecnologia LCD, Hitachi). A solução é aplicar uma tensão alternada (CA) nos eletrodos de LCDs.

Em LCDs estáticos, um eletrodo de backplane é construído em um vidro e segmentos individuais de LCD, ou pixels, são colocados no outro vidro. Este é um dos tipos de LCD mais simples e com a melhor relação de contraste. No entanto, esse tipo de exibição geralmente requer muitos pinos para controlar cada segmento individual.

Em geral, um controlador de driver fornece um sinal de relógio de onda quadrada para o painel traseiro e um sinal de relógio para os segmentos no plano frontal juntos. Quando o relógio do backplane está em fase com o relógio do segmento, a voltagem da raiz quadrada média (RMS) entre os dois planos é zero e o segmento é transparente. Caso contrário, se a tensão RMS for superior ao limite LIGADO do LCD, o segmento ficará escuro. As formas de onda para o backplane, segmento on e off são mostradas na Figura 2. Como pode ser visto na figura, o segmento ON está fora de fase em relação ao sinal do backplane. O segmento desligado está em fase em relação ao sinal do backplane. A tensão aplicada pode ser entre 3 e 5 volts para monitores de baixo custo e baixa potência.

O sinal do relógio para o painel traseiro do LCD e os segmentos geralmente estão na faixa de 30 a 100 Hz, a frequência mínima para evitar um efeito de oscilação visual no LCD. Freqüências mais altas são evitadas para reduzir o consumo de energia de todo o sistema. O sistema composto de LCD e drivers consumiria pouca corrente, da ordem de microamperes. Isso os torna perfeitamente adequados para aplicações de fonte de alimentação de bateria e baixa energia.

Nas seções a seguir, o projeto de um driver estático de LCD com dispositivo GreenPAK que pode gerar o sinal do relógio do backplane e o sinal do relógio do segmento individual para um LCD comercial é apresentado em detalhes.

Etapa 2: Diagrama de blocos básicos do projeto GreenPAK

Diagrama de blocos básicos do projeto GreenPAK
Diagrama de blocos básicos do projeto GreenPAK
Diagrama de blocos básicos do projeto GreenPAK
Diagrama de blocos básicos do projeto GreenPAK

Um diagrama de blocos que ilustra o design do GreenPAK é mostrado na Figura 3. Os blocos básicos do design são a interface I²C, o driver do segmento de saída, o oscilador interno e o seletor de fonte de relógio do backplane.

O bloco de interface I²C controla cada saída de segmento individual e a fonte de relógio do backplane do LCD. O bloco de interface I²C é a única entrada do sistema para controle de saída de segmento.

Quando a linha de controle de segmento interno é definida (nível alto), o respectivo segmento LCD é opaco escuro. Quando a linha de controle do segmento interno é reinicializada (nível baixo), o respectivo segmento LCD é transparente.

Cada linha de controle de segmento interno é conectada a um driver de saída. O bloco de driver do segmento de saída irá gerar um sinal de relógio em fase com relação ao relógio do backplane para segmentos transparentes. Para segmentos escuros, este sinal está fora de fase em relação ao relógio do backplane.

A fonte de relógio do backplane também é selecionada com a interface I²C. Quando a fonte de relógio do backplane interno é selecionada, o oscilador interno é ligado. O oscilador interno irá gerar uma freqüência de clock de 48Hz. Este sinal será usado pelo bloco de driver do segmento de saída e é endereçado ao pino de saída do relógio do backplane (pino 20 do GreenPAK).

Quando a fonte de relógio do backplane externo é selecionada, o oscilador interno é desligado. A referência do driver do segmento de saída é a entrada de relógio do backplane externo (pino 2 do GreenPAK). Neste caso, o pino de saída de relógio do backplane pode ser usado como uma linha de controle de segmento adicional, o segmento OUT15.

Mais de um dispositivo GreenPAK pode ser usado na mesma linha I²C. Para isso, cada dispositivo deve ser programado com um endereço I²C diferente. Desta forma, é possível estender o número de segmentos de LCD acionados. Um dispositivo é configurado para gerar a fonte de relógio de plano traseiro, conduzindo 14 segmentos, e os outros são configurados para usar uma fonte de relógio de plano traseiro externa. Cada dispositivo adicional pode conduzir mais 15 segmentos desta forma. É possível conectar até 16 dispositivos na mesma linha I²C e então controlar até 239 segmentos de um LCD.

Neste Instructable, esta ideia é usada para controlar 29 segmentos de um LCD com 2 dispositivos GreenPAK. A funcionalidade de pinagem do dispositivo é resumida na Tabela 1.

Etapa 3: Projetar o consumo atual

Uma preocupação importante neste projeto é o consumo atual, que deve ser o mais baixo possível. A corrente quiescente estimada do dispositivo GreenPAK é de 0,75 µA para operação com alimentação de 3,3 V e 1,12 µA para operação com alimentação de 5 V. O consumo de corrente do oscilador interno é 7,6 µA e 8,68 µA para operação com alimentação de 3,3 V e 5 V, respectivamente. Não é esperado que haja um aumento significativo no consumo de corrente das perdas de chaveamento, porque este projeto opera em uma baixa frequência de clock. A corrente máxima estimada consumida para este projeto é inferior a 15 µA quando o oscilador interno está ligado e 10 µA quando o oscilador interno está desligado. A corrente medida consumida em ambas as situações é mostrada na seção Resultados do teste.

Etapa 4: esquema do dispositivo GreenPAK

Esquema do dispositivo GreenPAK
Esquema do dispositivo GreenPAK

O projeto desenvolvido no software GreenPAK é mostrado na Figura 4. Este esquema será descrito usando os diagramas de blocos básicos como referência.

Etapa 5: Interface I²C

Interface I²C
Interface I²C
Interface I²C
Interface I²C

O bloco de interface I²C é usado como o bloco de controle principal do controle de operação do dispositivo. Uma visão próxima das conexões de bloco e propriedades configuradas são mostradas na Figura 5.

Este bloco é conectado ao PIN 8 e PIN 9, que são pinos I²C SCL e SDA respectivamente. Dentro do dispositivo, o bloco I²C oferece 8 Entradas Virtuais. O valor inicial de cada entrada virtual é mostrado na janela de propriedades (veja a Figura 5). As entradas virtuais de OUT0 até OUT6 são usadas como linhas de controle de segmento. Essas linhas de controle correspondem à saída do segmento 1 à saída do segmento 7 e são conectadas ao driver de saída do segmento. A entrada virtual OUT7 é usada como controle de linha do seletor de fonte de relógio do backplane, com nome de rede BCKP_SOURCE. Essa rede será usada por outros blocos no projeto. O código de controle I²C é configurado com um valor diferente para cada IC do projeto.

Mais 8 linhas de controle de segmento interno estão disponíveis na saída Asynchronous State Machine (ASM), conforme mostrado na Figura 6 acima. A linha de saída de segmento 8 (SEG_OUT_8 na janela de propriedades) até a linha de saída de segmento 15 (SEG_OUT_15) são controladas pela saída ASM no estado 0. Não há nenhuma transição de estado no bloco ASM, está sempre no estado 0. As saídas do ASM são conectado a drivers de saída de segmento.

Os drivers de saída do segmento irão gerar o sinal de saída do dispositivo.

Etapa 6: Driver do segmento de saída

O driver do segmento de saída é essencialmente uma tabela de pesquisa (LUT) configurada como uma porta lógica XOR. Para cada segmento de saída, deve ser uma porta XOR conectada à linha de controle do segmento e ao relógio do backplane (BCKP_CLOCK). A porta XOR é responsável por gerar o sinal em fase e fora de fase para o segmento de saída. Quando a linha de controle do segmento está em um nível alto, a saída da porta XOR inverte o sinal do relógio do backplane e gera um sinal fora de fase para o pino do segmento. A diferença de tensão entre o painel traseiro do LCD e o segmento do LCD, neste caso, definirá o segmento do LCD como um segmento escuro. Quando a linha de controle do segmento está em um nível baixo, a saída da porta XOR seguirá o sinal do relógio do backplane e, em seguida, gerará um sinal em fase para o pino do segmento. Como nenhuma tensão é aplicada entre o painel traseiro do LCD e o segmento neste caso, o segmento é transparente à luz.

Etapa 7: Controle de origem do relógio do oscilador interno e backplane

Oscilador interno e controle de fonte de relógio do backplane
Oscilador interno e controle de fonte de relógio do backplane

O oscilador interno é usado quando o sinal BCKP_CLOCK da interface I²C é definido para um nível alto. Uma visão mais próxima do diagrama de controle de fonte de relógio é mostrada na Figura 7 acima.

O oscilador é configurado como frequência RC de 25 kHz, com o maior divisor de saída disponível no oscilador OUT0 (8/64). Toda a configuração é visualizada na janela de propriedades mostrada na Figura 7. Desta forma, o oscilador interno irá gerar uma freqüência de clock de 48 Hz.

O oscilador está ativo somente quando o sinal BCKP_SOURCE está em um nível alto junto com o sinal POR. Esse controle é feito conectando-se esses dois sinais à porta NAND do 4-L1 LUT. A saída do NAND é então conectada à entrada do pino de controle de desligamento do oscilador.

O sinal BCKP_SOURCE controla o MUX construído com 3-L10 LUT. Quando o sinal BCKP_SOURCE está em um nível baixo, a fonte do relógio do backplane vem do PIN2. Quando este sinal está em um nível alto, a fonte do relógio do backplane vem do oscilador interno.

Etapa 8: Saída de relógio do painel traseiro ou controle de pino de saída do segmento 15

Saída de relógio do painel traseiro ou controle de pino de saída do segmento 15
Saída de relógio do painel traseiro ou controle de pino de saída do segmento 15

O pino 20 neste projeto tem uma função dupla, que depende da fonte de relógio do backplane selecionada. A operação deste pino é controlada por um LUT de 4 entradas, conforme mostrado na Figura 8. Com um LUT de 4 bits, é possível associar o funcionamento da porta XOR a um MUX de saída. Quando o sinal BCKP_SOURCE está em um nível alto, a saída LUT seguirá o relógio do oscilador interno. Em seguida, o pino 20 opera como uma saída de relógio do backplane. Quando o sinal BCKP_SOURCE está em um nível baixo, a saída LUT será a operação XOR entre SEG_OUT_15, da saída ASM e o sinal de relógio do backplane. A configuração LUT de 4 bits para fazer esta operação é mostrada na Figura 8.

Etapa 9: Protótipo do Sistema LCD

Protótipo de sistema LCD
Protótipo de sistema LCD
Protótipo de sistema LCD
Protótipo de sistema LCD

Para demonstrar o uso da solução de design GreenPAK, um protótipo de sistema LCD foi montado em uma placa de ensaio. Para o protótipo, um LCD estático de sete segmentos e 4 dígitos é acionado por dois dispositivos GreenPAK na placa DIP. Um dispositivo (IC1) usa o oscilador interno para conduzir o painel traseiro do LCD e o outro dispositivo (IC2) usa este sinal como referência de entrada do painel traseiro. Ambos os ICs são controlados pela interface I²C por um microcontrolador STM32F103C8T6 (MCU) em uma placa de desenvolvimento mínima.

A Figura 9 mostra o esquema das conexões entre os dois CIs GreenPAK, o display LCD e a placa MCU. No esquema, o dispositivo GreenPAK com referência U1 (IC1) controla os dígitos um e dois do LCD (lado esquerdo do LCD). O dispositivo GreenPAK com referência U2 (IC2) controla os dígitos três e quatro do LCD, mais o segmento COL (lado direito do LCD). A fonte de alimentação para ambos os dispositivos vem do regulador na placa de desenvolvimento do microcontrolador. Dois jumpers removíveis entre a fonte de alimentação e os pinos VDD de cada dispositivo GreenPAK são adicionados para medição de corrente com um multímetro.

Uma imagem do protótipo montado é mostrada na Figura 10.

Etapa 10: Comandos I²C para controle de LCD

Comandos I²C para controle de LCD
Comandos I²C para controle de LCD
Comandos I²C para controle de LCD
Comandos I²C para controle de LCD
Comandos I²C para controle de LCD
Comandos I²C para controle de LCD

Os dois dispositivos GreenPAK na placa de ensaio são programados com o mesmo design, exceto pelo valor do Byte de controle. O byte de controle do IC1 é 0 (endereço I²C 0x00), enquanto o byte de controle I²C é 1 (endereço I²C 0x10). As conexões entre segmentos de vídeo e drivers de dispositivo estão resumidas na tabela acima.

As conexões foram selecionadas desta forma para criar um esquema mais claro e para simplificar a montagem das conexões do breadboard.

O controle da saída do segmento é feito por comandos de gravação I²C para entradas virtuais I²C e registros de saída ASM. Conforme descrito na nota de aplicação AN-1090 Controladores I²C IO Simples com SLG46531V (consulte a Nota de Aplicação AN-1090 Controladores I²C I²C Simples com SLG46531V, Dialog Semiconductor), o comando de gravação I²C é estruturado da seguinte forma:

● Iniciar;

● Byte de controle (bit R / W é 0);

● endereço de palavra;

● Dados;

● Pare.

Todos os comandos de escrita I²C são feitos no endereço Word 0xF4 (entradas virtuais I²C) e 0xD0 (saída ASM para o estado 0). Os comandos para escrever em IC1 e controlar os dígitos 1 e 2 do LCD estão resumidos na Tabela 3. Na representação da sequência de comando, o colchete “[“denota o sinal de início e o colchete “]” denota o sinal de parada.

Os dois bytes acima controlam os segmentos do dígito 1 e 2 do LCD juntos. Aqui, a abordagem é usar uma tabela de consulta individual (LUT) no software para cada dígito, considerando os segmentos em ambos os bytes. Os valores de byte da tabela de pesquisa devem ser misturados usando uma operação OR bit a bit e, em seguida, enviados para o IC. A Tabela 4 mostra os valores de Byte0 e Byte1 para cada valor numérico que deve ser escrito em cada dígito do display.

Por exemplo, para escrever no Dígito 1 o número 3 e no Dígito 2 o número 4, Byte0 é 0xBD (0x8D bit a bit OR com 0xB0) e Byte 1 é 0x33 (0x30 bit a bit OR com 0x03).

O comando para escrever em IC2 e os controles Dígitos 3 e 4, são descritos na Tabela 5.

A lógica de controle dos dígitos 3 e 4 é como o controle dos dígitos 1 e 2. A Tabela 6 mostra o LUT para esses dois dígitos.

A diferença no IC2 é o segmento COL. Este segmento é controlado pelo Byte1. Para configurar este segmento escuro, uma operação OR bit a bit entre o Byte1 e o valor 0x40 deve ser realizada.

Etapa 11: Comandos I²C para teste de LCD

Comandos I²C para teste de LCD
Comandos I²C para teste de LCD

Para o teste do LCD, foi desenvolvido um firmware em linguagem C para a placa MCU. Este firmware enviará uma sequência de comandos para ambos os ICs na placa de ensaio. O código-fonte para este firmware está na seção Apêndice. Toda a solução foi desenvolvida usando Atollic TrueStudio for STM32 9.0.1 IDE.

A sequência de comandos e os respectivos valores mostrados no display estão resumidos na Tabela 7 acima.

Etapa 12: Resultados do teste

Resultado dos testes
Resultado dos testes
Resultado dos testes
Resultado dos testes

O teste de protótipo consiste em verificar os valores do display após um comando MCU e medir o dissipador de corrente por cada IC durante a operação.

As imagens do LCD para cada valor de comando são mostradas na Tabela 8 acima.

O dissipador de corrente para cada dispositivo foi medido com um multímetro, em sua menor faixa de corrente de 200 µA. Imagens da corrente medida para cada dispositivo, durante a inicialização e operação normal, são mostradas na Tabela 9 acima.

Conclusão e Discussão dos Resultados

O design de um driver de LCD estático de baixa potência com dispositivo GreenPAK foi apresentado. Este projeto mostra claramente uma das maiores características dos dispositivos GreenPAK: sua baixa corrente quiescente. Como os dispositivos GreenPAK são uma solução baseada em hardware, é possível trabalhar em uma operação de baixa frequência, neste caso, 48 Hz. Uma solução baseada em MCU exigirá uma frequência de operação mais alta, mesmo por períodos curtos de tempo, e então consumirá mais energia. E, comparando o dispositivo GreenPAK com um CPLD (dispositivo lógico programável complexo), é claro que geralmente um CPLD tem uma corrente quiescente superior a 20 µA.

É interessante notar que este design pode ser facilmente modificado para melhor se adequar aos requisitos de um projeto específico. Um bom exemplo é a pinagem dos controles de segmento. Eles podem ser facilmente alterados para simplificar a placa de circuito impresso e o desenvolvimento de software ao mesmo tempo. Este é um recurso interessante quando o dispositivo é comparado com um ASIC (Circuito Integrado Específico de Aplicativo). Normalmente, os ASICs são projetados para caber em uma ampla gama de aplicativos e uma rotina de software inicial deve ser escrita para configurar corretamente o IC antes da operação. Um dispositivo configurável pode ser projetado para começar a ser usado após a inicialização. Desta forma, é possível reduzir o tempo de desenvolvimento de software para a configuração inicial do IC.

O código-fonte do aplicativo pode ser encontrado aqui no Apêndice A.

Recomendado: