La gran mayoría de las pantallas LCD de texto para pantallas 4x40 o más pequeñas utilizan un controlador basado en el Hitachi HD44780. Es un diseño bastante agradable en muchos sentidos, por lo que su popularidad es comprensible. Sin embargo, un aspecto me desconcierta.
El controlador de pantalla está diseñado para funcionar con fuentes 5x8 o 5x10; De acuerdo con la hoja de datos 44780, la pieza está disponible con dos configuraciones de stock ROM: una con 248 formas de 5x8 caracteres, designada A02, y otra con 160 formas de 5x8 y 32 formas de 5x10, designadas A00. Las formas de 5x10 caracteres solo son realmente útiles en pantallas de una sola línea que tienen una matriz LCD de 10 de alto, y tales pantallas parecen ser muy raras (creo que he visto hojas de datos para un puñado de ellas, si eso es así, y yo No sé si alguna vez he visto uno en persona).
Me sorprende, entonces, por qué parece que cada pantalla LCD que he visto basada en un controlador compatible con HD44780, usa el patrón de fuente A00 que tiene muchas celdas de caracteres en blanco, y cuyos glifos para una serie de caracteres (incluidos 0xE4, 0xE6 , 0xE7, 0xEA, 0xF0, 0xF1 y 0xF9) son esencialmente inútiles con cualquier cosa que no sea una pantalla de 5x10 de una sola línea. Hubiera esperado que al menos algunos proveedores hubieran cambiado al menos las definiciones para que esos caracteres se vean bien en una pantalla de 5x8, pero no estoy al tanto de que ninguno lo haya hecho. También creo que para muchas aplicaciones, el patrón ROM A02 sería más útil que el patrón ROM A00, pero todas las pantallas que he visto a la venta usan el patrón ROM A00.
Sin duda, en muchas aplicaciones, la capacidad de definir glifos personalizados mitiga sustancialmente las limitaciones del conjunto de caracteres incorporado, pero la pantalla solo puede mostrar ocho glifos personalizados diferentes a la vez. Tener glifos incorporados para cosas como flechas significaría que las aplicaciones que necesitan flechas podrían tener más glifos personalizados para otros fines.
Por lo menos, parece lógico que las pantallas tengan una opción para completar los rangos de caracteres 0x10-0x1F y 0x80-0x9F con caracteres útiles. Si un controlador en particular solo se va a usar con vidrio 5x8 o 5x16 (parece bastante probable), debería ser simple usar el bit de control de fuente 5x10 para habilitar o deshabilitar esos caracteres. Eso haría que el controlador sea compatible con el software que esperaría que todos esos caracteres aparezcan en blanco, pero permitiría que el software que sabe lo que es explotar esos otros caracteres.