segunda-feira, 13 de fevereiro de 2017

Usando displays de caracteres LCD comuns compatíveis com o contolador HD44780 via barramento I²C com o PCF8574/PCF8574A.

        Há displays de caracteres LCD com interface I²C, como o Winstar WO1602 (controlador Sitronix ST7032), usado no relógio com temperatura e umidade relativa, tema de um post anterior, porém são mais caros e difíceis de encontrar. Mas existe uma maneira de usar displays comuns compatíveis com o controlador Hitachi HD44780 no barramento I²C com o IC PCF8574/PCF8574A. Este IC fornece 8 entradas/saídas digitais através do barramento I²C. Também pode fornecer mais de 20mA no nível baixo por porta, muito útil para ligar LEDs. Esta solução é muito usada nos Arduinos, havendo vários modelos de placa para tal finalidade.

Exemplos de placas com o PCF8574 disponíves.
        Porém, apesar de funcionarem com 3,3V, estas placas não servem para minhas aplicações, pois o display não alcança o contraste necessário porque requer uma diferença de tensão maior, algo entre 4 e 5V. Assim fiz uma placa que tivesse um inversor de baixa potência para que o LCD operasse abaixo dos 5V habituais. Para tal, usei o IC CAT660 da Catalyst (agora ON Semiconductor), compatível com o ICL7660 da Intersil, que converte os 3,3V em -3,3V, resultando em 6,6V totais que passa por um divisor resistivo (trimpot de 1k) que vai para o terminal Vo (ou VLCD) do display.
        Tanto o PCF8574 quanto o PCF8574A operam com clock máximo do barramento I²C de 100kHz. A comunicação com o Display é feita no modo de 4 bits, requerendo duas transmissões por caractere e no fianl de cada transmissão lê-se a posição atual do caractere bem como o busy flag. A leitura do busy flag após cada transmissão permite a operação na máxima velocidade do controlador, além de não causar problemas de temporização em controladores mais lentos. A última porta (P7), é ligada a um MOSFET-N para controlar o backlight oriundo de uma fonte externa.

Placa montada. Note que usei o PCF8574A da Texas Instruments, não o comum PCF8574. Mesma função mas com endereços I²C diferentes, um cuidado a ser tomado no firmware. Testei também com o original PCF8574 da NXP para não haver dúvidas quanto ao funcionamento e compatibilidade.
Esquemático. Note o jumper de seleção de tensão Vo (ou VLCD) que pode ou não usar a tensão fornecida pelo CAT660, quando alimentado por 5V.
Display 16x2 antigo com o HD44780 em operação alimentado com 3,3V, comprovando o funcionamento e compatibilidade do mesmo. Este display não possui backlight.
Vista inferior do mesmo display antigo, mostrando o HD44780 auxiliado por um HD44100 (usado quando se tem mais de 16 caracteres).
Display 20x4 moderno com controlador desconhecido em operação com o mesmo firmware.

        Nota: quase a totalidade do displays de caracteres vendidos atualmente usam ICs compatíveis com o HD44780 da HITACHI (agora RENESAS). Este IC não é mais fabricado, podendo ser encontrado somente em displays bem antigos como mostrado anteriormente, porém outros fabricantes dispõe seus clones ou compatíveis. Segue a lista:

KS0066 SAMSUNG
KS0076 SAMSUNG
KS0070 SAMSUNG
S6A0069 SAMSUNG
LC7985NA SANYO
SED1278 EPSON
NT3881D NOTATEK
SPLC780 SUNPLUS
MSM6222 OKI
NJU6408B NJR
NJU6468 NJR
NJU6470 NJR
UM3881B UMC (Não tenho certeza se é compatível)
T7934 TOSHIBA (Não tenho certeza se é compatível)

Nenhum comentário:

Postar um comentário