Articulo de referencia

HD44780 (circuito integrado)

Controlador LCD HD44780 y controladores HD44100 en la parte posterior de un módulo LCD 40266. El HD44780 es un circuito integrado que funciona como controlador y controlador de ...

Controlador LCD HD44780 y controladores HD44100 en la parte posterior de un módulo LCD 40266.

El HD44780 es un circuito integrado que funciona como controlador y controlador de pantalla LCD de matriz de puntos alfanumérica . Fue desarrollado por Hitachi en la década de 1980. El conjunto de caracteres del controlador incluye caracteres ASCII , caracteres japoneses Kana y algunos símbolos en dos líneas de 40 caracteres. Mediante un controlador de extensión, el dispositivo puede mostrar hasta 80 caracteres. [ 1 ] Numerosas pantallas de terceros son compatibles con su interfaz de 16 pines y su conjunto de instrucciones, lo que lo convierte en un controlador LCD popular y económico. [ 2 ]

Arquitectura

Diagrama de bloques de un módulo LCD basado en HD44780U

El controlador LCD Hitachi HD44780 se limita a pantallas de texto monocromáticas y se utiliza con frecuencia en fotocopiadoras , máquinas de fax , impresoras láser , equipos de prueba industriales y equipos de red, como enrutadores y dispositivos de almacenamiento .

Las pantallas LCD compatibles se fabrican en varias configuraciones estándar. Los tamaños más comunes son una fila de ocho caracteres (8×1) y formatos de 16×2, 20×2 y 20×4. También se fabrican tamaños personalizados más grandes con 32, 40 y 80 caracteres, y con 1, 2, 4 u 8 líneas. La configuración más común para pantallas de mayor tamaño es la de 40×4 caracteres, que requiere dos controladores HD44780 direccionables individualmente con chips de expansión, ya que un solo chip HD44780 solo puede direccionar hasta 80 caracteres.

Las pantallas LCD de caracteres pueden tener retroiluminación , que puede ser LED , fluorescente o electroluminiscente . El voltaje nominal de funcionamiento para las retroiluminaciones LED es de 5 V a brillo máximo, con atenuación a voltajes más bajos dependiendo de detalles como el color del LED. Las retroiluminaciones que no son LED suelen requerir voltajes más altos.

Interfaz

Placa de desarrollo de proyectos Dragon12-P para microcontroladores Freescale HCS12 /9S12 que utiliza una pantalla LCD basada en HD44780.

Las pantallas LCD de caracteres utilizan una interfaz de 16 contactos, generalmente mediante pines o conexiones en el borde de la tarjeta con una separación de  2,54 mm (0,1 pulgadas  ). Las que no tienen retroiluminación pueden tener solo 14 pines, omitiendo los dos que alimentan la luz. Esta interfaz se diseñó para conectarse fácilmente a la interfaz Intel MCS-51 XRAM, utilizando solo dos pines de dirección, lo que permitía mostrar texto en la pantalla LCD mediante comandos MOVX sencillos, ofreciendo una opción rentable para añadir visualización de texto a los dispositivos.

La configuración de pines predominante es la siguiente (existen excepciones):

Notas:

  • Vee (también V0): Se trata de una entrada analógica, normalmente conectada a un potenciómetro. El usuario debe poder controlar esta tensión independientemente de los demás ajustes, para optimizar la visibilidad de la pantalla, que varía, entre otros factores,  con la temperatura y, en algunos casos, con la altitud. Un ajuste incorrecto puede provocar un mal funcionamiento de la pantalla.
  • Lectura/ Escritura : En la mayoría de las aplicaciones, no es necesario leer del HD44780. En ese caso, este pin puede conectarse permanentemente a tierra y no es necesario asignar pines del procesador para controlarlo.

Selección de modo

Una pantalla de 20 × 4 caracteres

En el modo de 8 bits, todas las transferencias se realizan en un ciclo del pin de habilitación (E) con los 8 bits del bus de datos y los pines RS y R/ W estables. En el modo de 4 bits , los datos se transfieren como pares de " nibbles " de 4 bits en los pines de datos superiores, D7-D4, con dos pulsos de habilitación y los pines RS y R/ W estables. Los cuatro bits más significativos (7-4) deben escribirse primero, seguidos de los cuatro bits menos significativos (3-0). La secuencia alto/bajo debe completarse cada vez; de lo contrario, el controlador no recibirá correctamente los comandos posteriores.

La selección del modo de 4 bits u 8 bits requiere una cuidadosa selección de comandos. Hay dos consideraciones principales. Primero, con D3–D0 desconectadas, estas líneas siempre aparecerán en alto (binario 1111) para el HD44780, ya que hay MOSFETs de polarización interna . [ 3 ] Segundo, la pantalla LCD puede estar inicialmente en uno de tres estados:

  • Estado 1: modo de 8 bits
  • Estado 2: modo de 4 bits, esperando el primer conjunto de 4 bits.
  • Estado 3: modo de 4 bits, esperando el segundo conjunto de 4 bits.

El estado 3 puede ocurrir, por ejemplo, si un control anterior fue abortado después de enviar solo los primeros 4 bits de un comando mientras el HD44780 estaba en modo de 4 bits.

El siguiente algoritmo garantiza que la pantalla LCD esté en el modo deseado:

El mismo comando se envía tres veces: Función configurada con interfaz de 8 bits D7–D4 = binario 0011; los cuatro bits inferiores son irrelevantes, utilizando pulsos de habilitación únicos. Si el controlador está en modo de 4 bits, los cuatro bits inferiores se ignoran, por lo que no se pueden enviar hasta que la interfaz tenga una configuración de tamaño conocido.

Comenzando en el estado 1 (configuración de 8 bits):

  • Enviar comando de configuración de función. El comando se ejecutará, configurando el modo de 8 bits.
  • Enviar comando de configuración de función. El comando se ejecutará, configurando el modo de 8 bits.
  • Enviar comando de configuración de función. El comando se ejecutará, configurando el modo de 8 bits.

Comenzando en el estado 2 (configuración de 4 bits, esperando la primera transferencia de 4 bits):

  • Envía el comando de configuración de función. Se reciben los primeros 4 bits.
  • Enviar comando de configuración de función. Últimos 4 bits, comando aceptado, configurar modo de 8 bits.
  • Enviar comando de configuración de función. El comando se ejecutará, configurando el modo de 8 bits.

Comenzando en el estado 3 (configuración de 4 bits, esperando la última transferencia de 4 bits):

  • Envía el comando de configuración de función. Últimos 4 bits, comando desconocido ejecutado.
  • Envía el comando de configuración de función. En modo de 8 bits, el comando se ejecutará; de lo contrario, se recibirán los primeros 4 bits.
  • Enviar comando de configuración de función. Se ejecutará un comando de 8 bits o los últimos 4 bits del comando anterior; configurar el modo de 8 bits.

En los tres casos iniciales, la interfaz del bus se encuentra en modo de 8 bits, 1  línea, 5×8 caracteres. Si se desea una configuración diferente en modo de 8 bits, se debe enviar un comando de configuración de función de bus de 8 bits para establecer todos los parámetros. Si se desea el modo de 4 bits, se debe enviar el valor binario 0010 en D7–D4 con un único pulso de habilitación. Ahora el controlador estará en modo de 4 bits y una secuencia completa de comandos de configuración de función de bus de 4 bits (dos habilitaciones con los bits de comando 7–4 y 3–0 en ciclos sucesivos) completará la configuración del registro de configuración de función.

Conjunto de instrucciones

El conjunto de instrucciones HD44780 se muestra a continuación: [ 4 ]

DDRAM es la RAM de datos de visualización y CGRAM es la RAM del generador de caracteres. [ 5 ] La DDRAM tiene 80 bytes (40 por fila) direccionados con un espacio entre las dos filas. La primera fila corresponde a las direcciones del 0 al 39 en decimal o del 0 al 27 en hexadecimal. La segunda fila corresponde a las direcciones del 64 al 103 en decimal o del 40 al 67 en hexadecimal.

La CGRAM es una memoria de lectura/escritura que se utiliza para codificar hasta 8 caracteres en el generador de caracteres. Consta de 64 campos en las direcciones hexadecimales 0 a 3F. Cada campo tiene 5 bits que corresponden a una fila de píxeles de cada carácter. Se utilizan 8 campos de la CGRAM para cada carácter. Los 3 bits menos significativos de los códigos de caracteres (0-7 y 8-15) seleccionan los grupos de 8 campos en la memoria CGRAM.

La lectura y escritura en la memoria DDRAM se realiza activando la entrada RS durante las transferencias del bus. La memoria DDRAM también debe seleccionarse mediante el comando "Set DDRAM address", que selecciona la memoria DDRAM para el acceso y establece la dirección de inicio para dicho acceso.

Asimismo, la lectura y escritura en la CGRAM se realiza activando la entrada RS durante las transferencias del bus. La CGRAM también debe seleccionarse mediante el comando "Set CGRAM address", que selecciona la CGRAM para el acceso y establece la dirección de inicio para dicho acceso.

Los tiempos de ejecución que se muestran en esta tabla se basan en una frecuencia de oscilador de 270  kHz. La hoja de datos indica que, con una resistencia de 91  kΩ y una tensión CC de 5  V, el oscilador puede variar entre 190  kHz y 350  kHz, lo que resulta en tiempos de espera de 52,6  μs y 28,6  μs, en lugar de 37  μs. Si una pantalla con la  resistencia recomendada de 91 kΩ se alimenta con 3,3  voltios, el oscilador funcionará mucho más lento. Si no se utiliza el bit de ocupado y las instrucciones se temporizan mediante el circuito externo, esto debe tenerse en cuenta.

Fuente

Retroiluminación ámbar en una pantalla HD44780 de 8×2 caracteres

La ROM del generador de caracteres HD44780 original contiene 208 caracteres en una matriz de puntos de 5×7 y 32 caracteres en una matriz de puntos de 5×10. Existen chips compatibles más recientes con mayor resolución, adaptados a pantallas con más píxeles.

Se han desarrollado dos versiones de la ROM: [ 5 ]

El subconjunto ASCII de 7 bits para la versión japonesa no es estándar: proporciona un símbolo de yen donde normalmente se encuentra el carácter de barra invertida , y símbolos de flecha izquierda y derecha en lugar de la tilde y el carácter de borrado .

Mediante comandos especiales , se puede programar un número limitado de caracteres personalizados en el dispositivo en forma de mapa de bits . Estos caracteres deben escribirse en el dispositivo cada vez que se enciende, ya que se almacenan en memoria volátil .

Véase también

  • LCD Smartie : controlador de pantalla de código abierto para Microsoft Windows
  • JIS X 0201 – Codificación de caracteres estándar japonesa de 7 y 8 bits

Referencias

  1. Sánchez y Canton 2007 , pág. 275 
  2. "Uso del Hitachi HD44780 con Arduino" . Best-Microcontroller-Projects . Consultado el 2 de enero de 2023 .
  3. "HD44780U (LCD-II)" (PDF) . Hitachi. pág. 54. Consultado el 5 de enero de 2023 . 
  4. Huang 2009 , pág. 326 
  5. 1 2 "Hoja de datos HD44780U" (PDF) . Consultado el 23 de diciembre de 2021 .

Lecturas adicionales

  • Huang, Han-Way (2009). HCS12 / 9S12: Introducción a la interfaz de software y hardware (2.ª  ed.). Delmar Cengage Learning. ISBN 978-1-4354-2742-6.
  • Sánchez, Julio; Cantón, María P. (2007). Programación de microcontroladores: el Microchip PIC . CRC Press. ISBN 978-0-8493-7189-9.