Zdecydowana większość tekstowych wyświetlaczy LCD do ekranów 4x40 lub mniejszych wykorzystuje kontroler oparty na Hitachi HD44780. Jest to całkiem fajny projekt na wiele sposobów, więc jego popularność jest zrozumiała. Zastanawia mnie jednak jeden aspekt.
Kontroler ekranu został zaprojektowany do pracy z czcionkami 5x8 lub 5x10; zgodnie z arkuszem danych 44780 część jest dostępna z dwiema standardowymi konfiguracjami pamięci ROM - jedną z 248 kształtami znaków 5 x 8, oznaczonymi A02, a drugą z 160 kształtami 5 x 8 i 32 kształtami 5 x 8, oznaczonymi A00. Kształty 5x10 znaków są naprawdę użyteczne tylko na wyświetlaczach jednowierszowych, które mają matrycę LCD o wysokości 10 pikseli, i takie ekrany wydają się bardzo rzadkie (wydaje mi się, że widziałem arkusze danych dla kilku z nich, jeśli to, i ja nie wiem, czy kiedykolwiek widziałem taką osobiście).
Zastanawiam się zatem, dlaczego wydaje się, że każdy ekran LCD, który widziałem oparty na kontrolerze zgodnym z HD44780, używa wzoru czcionki A00, który ma wiele pustych komórek znakowych i którego glify dla wielu znaków (w tym 0xE4, 0xE6 , 0xE7, 0xEA, 0xF0, 0xF1 i 0xF9) są w zasadzie bezużyteczne z czymkolwiek innym niż wyświetlacz jednowierszowy 5x10. Spodziewałbym się, że przynajmniej niektórzy dostawcy zmieniliby definicje tych znaków, aby dobrze wyglądały na ekranie 5x8, ale nie jestem świadomy, że to zrobił. Pomyślałbym również, że dla wielu aplikacji wzorzec pamięci ROM A02 byłby bardziej użyteczny niż wzorzec pamięci ROM A00, ale wszystkie wyświetlacze, które widziałem na sprzedaż, używają wzorca pamięci ROM A00.
Oczywiście w wielu aplikacjach możliwość definiowania niestandardowych glifów znacznie ogranicza ograniczenia wbudowanego zestawu znaków, ale na wyświetlaczu może być pokazanych tylko osiem różnych niestandardowych glifów na raz. Posiadanie wbudowanych glifów do celów takich jak strzały oznaczałoby, że aplikacje wymagające strzałek mogłyby mieć więcej niestandardowych glifów do innych celów.
Jeśli nic więcej, logiczne wydaje się, że wyświetlacze mają opcję wypełniania zakresów znaków 0x10-0x1F i 0x80-0x9F przydatnymi znakami. Jeśli określony kontroler będzie używany tylko ze szkłem 5x8 lub 5x16 (wydaje się to całkiem prawdopodobne), powinno być prostą sprawą użycie bitu kontrolnego 5x10 czcionek, aby włączyć lub wyłączyć te znaki. To sprawiłoby, że kontroler byłby kompatybilny z oprogramowaniem, które oczekiwałoby, że wszystkie te znaki będą wyglądały na puste, ale pozwoliłoby oprogramowaniu, które wie, co to znaczy wykorzystać te inne znaki.