LCD con caratteri a matrice
|
Il controller
La compatibilità base a livello di comandi e di interfaccia per gestire
moduli display si deve all' impiego di un chip
di controllo che è diventato uno standard de facto.
|
L'HD44780 è un microcontroller prodotto da Hitachi, che è
stato progettato proprio per controllare display a caratteri, dot matrix
LCD. La sua grande diffusione ne ha fatto il capostipite di successivi
prodotti similari, che mantengono la compatibilità con i principali
comandi, tanto che, nonostante si faccia praticamente sempre riferimento
a display LCD, lo standard di HD44780 può essere trovato anche in display VFD e
OLED.
Chip compatibili sono Samsung
KS0070S, KS0066S, KS0073, Sanyo LC7985NA, Epson SED1278, SED1330, SED1335, OKI MSM6222 e altri.
|
Il componente è un SMD a 80 pin, ma allo stato attuale
della tecnologia, il chip nella forma classica, come si vede nella foto
qui sopra,
si incontra raramente in quanto è possibile con
facilità di installare direttamente il |
die dell' integrato sul
circuito stampato, ovvero la base di silicio senza package, ricoprendolo poi di una bolla
protettiva di resina epossidica (detta in inglese epoxy blob) di colore nero.
Si definisce questo sistema chip on board e consente un
risparmio per il produttore.
Un ulteriore passaggio si ha con il COG (Chip on Glass), che
elimina anche il circuito stampato di supporto, integrando il
controller sui vetri dell' LCD, da cui fuoriescono solo i pin di
connessione.
|
|
La compatibilità dei controller può essere ristretta ai soli comandi di
base, potendo avere questi chip funzioni più estese o disposizione diversa
della mappa di memoria della RAM rispetto all' originale. Quindi occorre sempre dare uno sguardo al
foglio dati del componente specifico, sia per poterlo sfruttare a pieno sia
per non doversi trovare in difficoltà con la gestione software. HD44780 ha un buffer interno di RAM capace di contenere 80 caratteri di
testo e quindi può supportare pannelli fino a 2 linee da 40 caratteri
ciascuna. Sostanzialmente, il controller svolge la funzione di trasferire
il contenuto delle celle di memoria al display LCD vero e proprio; l' utente
scrive i codici dei caratteri da presentare nella RAM del controller e questo
svolge autonomamente tutte le operazioni necessaria al comando dei punti sul
pannello LCD.
In effetti, il controller può lavorare su diverse combinazioni di linee e
di caratteri o di array di punti, in quanto si
tratta puramente di una organizzazione costruttiva: i caratteri
possono essere organizzati, ad esempio, su una o più linee o essere espressi
in matrici da 5x7 o da 5x10 punti.
La struttura del pannello e del relativo controller può essere schematizzata
in questo diagramma:
Il controller comunica con l' esterno attraverso un bus parallelo per i
dati e per alcuni
segnali di controllo. Sul circuito stampato sono presenti anche i componenti
necessari alla gestione del pannello, come ad esempio per la generazione dei
livelli di tensione necessari ad attivare l' LCD. Una serie di driver gestiscono i singoli
punti o segmenti delle matrici. Il controller provvede al refresh del
messaggio visualizzato e può offrire varie funzioni di shift del cursore o
dei caratteri.
Controller del genere HD44780 possono gestire direttamente un certo numero
di elementi (segmenti o punti) che formano l' immagine, ma è possibile associare uno
o più integrati ausiliari, con funzione di driver per aumentare il numero
degli elementi visualizzabili.
|
A questo scopo HD 44780 può lavorare in società con un
"aiuto", il chip HD44100.
Un singolo HD44780 è in grado di visualizzare 8-16
caratteri a matrice. Se si vuole realizzare un pannello con più
caratteri, HD44780 deve essere ampliato con uno o più chip di
espansione, come l'HD 44100 (espansione 2 x 8 caratteri) o l'HD 66100
(espansione 2 x 16 caratteri).
|
Siccome i driver dei segmenti sono a gruppi di 4 o multipli, il pannello LCD può essere organizzato in vari
modi, comunque multipli di 4. Le combinazioni più comuni di righe e caratteri sono queste:
Caratteri
per linea |
Numero
linee |
1 |
2 |
3 |
4 |
8 |
x |
x |
|
|
12 |
x |
x |
|
|
16 |
x |
x |
x |
x |
20 |
|
x |
|
x |
24 |
|
x |
|
x |
40 |
|
x |
|
* |
* Per i display a 40 caratteri x 4 linee si impiegano due set di HD44780 +
HD44100 che lavorano "in parallelo" e necessitano di un bit in più
nel connettore di accesso per controllare a quale dei due gruppi si
riferiscono i comandi e i dati.
Esistono anche display con tre righe, ad esempio tra la produzione di
Electronic Assembly
e nulla vieta di organizzare i caratteri in altre soluzioni, ad esempio a
segmenti o barre o forme per presentazioni grafiche particolari, anche se si
tratterebbe di prodotti non standard (OEM).
Il controller è piuttosto complesso, contenendo:
- una interfaccia per il collegamento con l' esterno
- un core del genere di quello usato dai microcontroller, con un sistema
di decodifica delle istruzioni, contatore di indirizzi, registri dati, ecc
- un' area RAM contenente i caratteri da visualizzare
- un generatore di caratteri in ROM
- un' area RAM per la generazione di caratteri programmabili dall' utente
- un sistema di controllo per le funzioni del cursore
- un convertitore parallelo/seriale e shift register a 16 e 40 bit per il
comando dei driver esterni, che comunica in seriale
- tutta la circuiteria per generare le tensioni di comando dei segmenti
dell' LCD
E' interessante notare che queste tensioni sono forme d'onda complesse, in cui temporizzazioni e livelli
hanno un certo duty cycle e di conseguenza
sono legate alla visualizzazione dei caratteri e al loro contrasto.
|
Ecco ad esempio la schematizzazione e le temporizzazioni del 1/8
duty cycle. Altri possibili sono 1/11 e 1/16. Il fatto che le tensioni
applicate agli elettrodi del pannello LCD siano flottanti rispetto alla massa
determina che ad essi non viene mai applicata una tensione
continua, ma solo alternata. |
Infatti l' applicazione di una polarità in continua determina fenomeni di
elettroforesi e polarizzazione nel liquido a cristalli (liquido nematico) e nei metalli degli
elettrodi, con la distruzione degli stessi.
|
I livelli di queste tensioni sono definiti da un partitore resistivo
che dipende dalla tensione di alimentazione da un lato e dalla massa
dall' altro (per pannelli alimentati a 5V) oppure da una tensione
negativa (per i pannelli a temperatura estesa).
Variando l' ultimo elemento del partitore (Vh nello schema) si
modifica praticamente il contrasto dei caratteri rispetto al fondo non
attivato.
Questa regolazione è appunto detta "contrasto" e
richiede generalmente un piccolo trimmer esterno per ottenere la
migliore visualizzazione. E' possibile anche installare semplicemente
una resistenza fissa, ma la tensione di contrasto varia leggermente
con la temperatura e più decisamente con il modello di display e le
sue caratteristiche e ne può essere richiesto l' aggiustamento a
seconda delle circostanze
|
La presentazione dei caratteri dipende da questi livelli di tensione, che
stabilendo il contrasto tra punti e sfondo, sono dipendenti dalle
caratteristiche costruttive del modulo e dalla tensione di alimentazione.
In sostanza, il modulo potrà visualizzare caratteri per un certo range di
tensione differenziale tra la Vdd di alimentazione e la Vo (o Vh o Vee) del
contrasto. Da qui deriva la necessità di una tensione di contrasto negativa
se la Vdd si abbassa al di sotto di un certo valore, tipicamente 4.5V. Di
conseguenza, pannelli alimentati a 3V solitamente richiedono una tensione
negativa di contrasto, mentre gli stessi, alimentati a 5V, non ne hanno
bisogno.
Più avanti, nel capitolo dedicato al contrasto, cercheremo di presentare
le soluzioni più comunemente adottate.
|
In genere le resistenze del partitore sono facilmente individuabili.
Si tratta di componenti SMD saldati sul circuito stampato nei pressi
del controller, come vediamo in questa foto di un modulo 2x16 di
Displaytech, dove il partitore è costituito dalle cinque resistenze
R1-R5, da 2k2. |
Sui lati, possiamo osservare le linguette piegate che fissano il complesso
del pannello LCD sullo stampato di base.
I fogli dati ...
HD44780, il capostipite dello standard dei controller per display LCD a
matrice di punti, è costruito in diverse versioni. Le più comuni sono:
- HD44780A
- HD44780S
- HD44780U
Il suffisso dopo la lettera finale (ad esempio HD44780A00) fa
riferimento al set di caratteri fissati nella ROM del Character Generator. La
versione A parrebbe la prima, più vecchia, e limitata ad un funzionamento a 5
V.
In effetti attualmente pare arduo trovare documentazione che identifichi
con esattezza i vari elementi della famiglia, in quanto il loro uso è
evidentemente ristretto ai soli costruttori di moduli LCD.
Si trovano però fogli dati di prodotti che hanno installato questo componente
e che dichiarano dati di accesso e temporizzazioni: ad esempio, la
pubblicazione Hitachi CE-E613P che descrive i moduli della serie LM (LM015,
016, 020, 018 e altri molto diffusi), e che, comunque, fa riferimento a un non
meglio precisato HD44780 senza alcuna altra specifica.
Su questi moduli, per quanto è stato possibile rilevare, il chip principale
è proprio HD44780A (A00 per le versioni diffuse in occidente), mentre dove è
installato il chip ausiliario, esso può essere sia l' HD44100H (ad esempio su
LM016, 16 caratteri su due righe), come uno differente, ad esempio l' OKI
M5259 (su LM015, 16 caratteri su una riga). Attualmente
una ricerca su HD44780 rinvia in tutti i casi al foglio dati di HD44780U,
pubblicazione Hitachi ADE-207-272(Z).
La versione U è analoga alla S, ma mentre A e S sono previste per funzionare a 5 V,
la U può operare anche a partire da 2.7 V, il che la rende adatta per i
sistemi a bassissima tensione che i microntroller attuali possono
tranquillamente sfruttare oppure in apparecchi alimentati a batteria,
tipicamente 4.2 - 3.6 - 3 V.
Inoltre, le temporizzazioni sono lunghe circa la metà di quelle riportate per
i pannelli che usano la versione A. Quindi, si deve dedurre che HD44780A
ha una interfaccia più lenta di HD44780U, con tempi che sono circa il doppio.
In questo senso si risolve il dubbio che può sorgere in chi abbia
consultato il foglio dati di HD44780U, che ha, ad esempio, un tempo Tpw di 230
ns, e osservato le varie soluzioni di driver proposte sulla rete che, le poche
volte in cui viene evidenziato il problema delle temporizzazioni dei segnali
di accesso a questi moduli, parla di un Tpw di 500 ns.
Questo evidentemente dipende il fatto che gran parte dei siti che trattano questo
tema sono piuttosto datati e sono stati scritti in relazione a moduli basati
su HD44780A. Nel
tempo, numerosi altri costruttori di circuiti integrati oltre Hitachi si sono
inseriti in questo mercato con loro modelli che, giocoforza, sono compatibili
con l' originale in modo da poterlo sostituire presso i costruttori dei moduli
(che, nella maggior parte dei casi, non sono gli stessi costruttori dei
controller). Quindi, in generale, possiamo dire che possiamo trovare
prodotti del tutto equivalenti per la
struttura e le funzioni, ma che possono avere temporizzazioni di accesso in rapporto circa
2:1. Siccome attualmente i moduli LCD a caratteri sono realizzati
attorno a HD44780U o a suoi equivalenti con caratteristiche analoghe, nella trattazione seguente facciamo riferimento principalmente
a questa versione ed alle sue caratteristiche. Però, prodotti con HD44780A o analoghi,
con tempi di risposta più lenti, sono
ancora facilmente reperibili, magari anche nel surplus. Chi ha a che fare con
questi moduli, tenga presente la necessità di maggiori tempi per l' accesso,
sia in lettura che in scrittura, fermo restando tutto il resto della
trattazione per quanto riguarda la struttura, i comandi, ecc.
|