Tutorials - Elettronica

 
 

Caratteri CGRAM nei display LCD
 a matrice


Alcune domande comuni.


Q.: Che funzione hanno gli indirizzi da 08h a 0Fh nella tabella del CG ?

Per chi ha seguito con attenzione quanto detto, dovrebbe avere chiaro come operare con la CGRAM, ma dovrebbe essere afflitto anche da un dubbio.
Rivediamo la tabella del CG.

Se osserviamo la prima colonna, vediamo che essa si compone di 16 elementi, ovvero gli indirizzi tra 00h e 0Fh.
Abbiamo detto che i caratteri in CGRAM, 8 simboli nel formato 5x8, sono richiamati dai codici da 00h a 07h. E i codici da 08h a 0Fh ?
Si tratta di una "copia" dei primi 8 bytes. Quindi, inviando in DDRAM il codice 00h è lo stesso che inviare il codice 08h e così via.


Q.:Inizializzando il display si cancella la CGRAM?

L'inizializzazione via software non modifica il contenuto della CGRAM. 
Solamente una caduta della tensione di alimentazione danneggia quanto scritto nella RAM; la mancanza di tensione ed il suo ritorno, genera un reset hardware che azzera il contenuto della RAM.


Q.: Tutti i controller dispongono della CGRAM descritta?

Non tutti i controller possono supportare le stesse caratteristiche di CGRAM. Se il controller è dichiarato compatibile con Hitachi HD44780, allora dovrà avere al minimo le stesse funzioni base, ma potrà avere anche u superset di funzioni e una maggiore disponibilità sulla RAM.
Come al solito, occorre consultare il foglio dati del componente.

In particolare, è possibile che diverse versioni dello stesso controller abbiano generatori di carattere diversi. In particolare, le versioni realizzate OEM per un cliente particolare potranno essere differenti in qualche modo da quelle standard commerciali.


Q.: Che differenza c'è nell' uso delle matrici 5x7 e 5x8 ?

Nessuna dal punto di vista dell' impiego: il controller, inizializzato per matrici 5x7(8) utilizza 8 bytes consecutivi della CGRAM per visualizzare un simbolo. Se l' ottavo byte è a 0 (matrice 5x7) viene presentata una riga vuota; se contiene dei pixel attivi (5x8), essi saranno presenti sull' ottava riga.
Quindi è possibile avere librerie di simboli in entrambi i formati e mescolare in CGRAM le due modalità, che, dal punto di vista del controller, sono la stessa cosa.


Q.: C'è qualche precauzione da adottare nella creazione di simboli per la CGRAM ?

  1. E' sicuramente opportuno, la prima volta che si predispone il contenuto della CGRAM, scrivere tutti i bytes, in quanto, all' accensione, la RAM dovrebbe essere azzerata, ma è più sicuro assegnare il corretto valore a tutti i bit interessati alla visualizzazione, onde evitare sorprese. E la stessa operazione è consigliata anche dopo un reset software, dato che il contenuto della RAM potrebbe essere stato alterato. 
     
  2. Anche se è possibile scrivere singoli bytes in CGRAM, questa operazione va compiuta solamente se si è sicuri di cosa si sta facendo, onde evitare di ottenere simboli incomprensibili
     
  3. Però, la cosa senz'altro più importante nella creazione di un nuovo simbolo è quella di realizzarne uno efficace, ovvero di immediata comprensione. La matrice 5x7 o x8 non ha la stessa efficacia di un sistema grafico e non è possibile rappresentare qualsiasi cosa. Una volta disegnato un simbolo, provatelo sul pannello LCD e verificate con altri se il suo significato è compreso senza ambiguità.

Q.: Quale rapporto c'è tra un dato in DDRAM e un carattere visibile sul pannello LCD?

Un ulteriore dubbio può nascere dal rapporto tra la DDRAM e il pannello LCD.
Un carattere in DDRAM può corrispondere ad una visualizzazione sul pannello, ma può anche essere presente in DDRAM e non essere visualizzato in quel momento.
Tra DDRAM e display c'è una relazione che dipende dalle dimensioni del display. Ad esempio::

Modulo Caratteri visibili
Linea 1 Linea 2 Linea 3 Linea 4
16 x 2 00h - 0Fh 40h - 4Fh - -
20 x 2 80h - 93h C0h - 13h - -
40 x 2 00h - 27h 40h - 67h - -
20 x 1 00h - 13h - - -
20 x 4 00h - 13h 40h - 53h 14h - 27h 54h -  67h

Nel primo caso, un carattere scritto all' indirizzo relativo 00h (indirizzo assoluto di RAM 80h) sarà visualizzato nella prima posizione della prima riga; uno all' indirizzo relativo 40h (indirizzo assoluto di RAM C0h) sarà visualizzato nella prima posizione della seconda riga.
Un carattere scritto nella locazione relativo 10h (assoluto 90h) sarà presente in memoria DDRAM, ma non sarà visibile se non facendo shiftare il contenuto della linea a sinistra.

Per contro, la stessa situazione nel display da 20 caratteri su una riga renderà visibile il simbolo nella posizione 17.

Questo permette, se non si usa mai lo shitft, di impiegare anche la DDRAM come memoria per uso generico oppure consente di preparare messaggi che potranno essere visualizzati con uno shift del display, anche per effetti di movimento.

 


 

 

Copyright © afg. Tutti i diritti riservati.
Aggiornato il 04/12/12.