La stragrande maggioranza dei display LCD di testo per schermi 4x40 o più piccoli utilizza un controller basato su Hitachi HD44780. È un bel design in molti modi, quindi la sua popolarità è comprensibile. Un aspetto mi confonde, comunque.
Il controller del display è progettato per funzionare con font 5x8 o 5x10; secondo la scheda tecnica 44780, la parte è disponibile con due configurazioni ROM di serie: una con 248 forme di carattere 5x8, designata A02 e una con 160 forme 5x8 e 32 forme 5x10, designata A00. Le forme dei caratteri 5x10 sono davvero utili solo su display a riga singola che hanno una matrice LCD alta 10 e tali display sembrano essere molto rari (penso di aver visto delle schede tecniche per una manciata di esse, se ciò, e io non so di averne mai visto uno di persona).
Sono perplesso, quindi, dal motivo per cui sembra che ogni display LCD che ho visto basato su un controller compatibile con HD44780, utilizzi il modello di carattere A00 che ha molte celle di caratteri vuote e i cui glifi per un numero di caratteri (inclusi 0xE4, 0xE6 , 0xE7, 0xEA, 0xF0, 0xF1 e 0xF9) sono essenzialmente inutili con qualcosa di diverso da un display 5x10 a riga singola. Mi sarei aspettato che almeno alcuni venditori avrebbero almeno cambiato le definizioni per far apparire bene quei personaggi su un display 5x8, ma non sono consapevole di averlo fatto. Penserei anche che per molte applicazioni, il modello ROM A02 sarebbe più utile del modello ROM A00, ma tutti i display che io abbia mai visto in vendita usano il modello ROM A00.
A dire il vero, in molte applicazioni, la capacità di definire glifi personalizzati mitiga sostanzialmente i limiti del set di caratteri incorporato, ma il display può mostrare solo otto glifi personalizzati diversi alla volta. Avere glifi incorporati per cose come le frecce significherebbe che alle applicazioni che necessitano di frecce potrebbero essere lasciati più glifi personalizzati per altri scopi.
Se non altro, sembrerebbe logico che i display abbiano un'opzione per riempire gli intervalli di caratteri 0x10-0x1F e 0x80-0x9F con caratteri utili. Se un determinato controller verrà utilizzato solo con il vetro 5x8 o 5x16 (sembrerebbe abbastanza probabile), dovrebbe essere semplice usare il bit di controllo del font 5x10 per abilitare o disabilitare quei caratteri. Ciò renderebbe il controller compatibile con un software che si aspetterebbe che tutti quei caratteri appaiano vuoti, ma consentirebbe a un software che sa di cosa si tratta di sfruttare quegli altri personaggi.