Tutorials - Elettronica

 

 

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.

 


 


  • Copyright © afg. Tutti i diritti riservati.
    Aggiornato il 12/01/13.