Tabla de contenido:

Cómo hacer un controlador LCD estático con interfaz I²C: 12 pasos
Cómo hacer un controlador LCD estático con interfaz I²C: 12 pasos

Video: Cómo hacer un controlador LCD estático con interfaz I²C: 12 pasos

Video: Cómo hacer un controlador LCD estático con interfaz I²C: 12 pasos
Video: MODULO I2C PARA PANTALLAS LCD (display 16x2) + CODIGO ARDUINO + CONEXIONES|| BIEN EXPLICADO 2024, Mes de julio
Anonim
Cómo hacer un controlador LCD estático con interfaz I²C
Cómo hacer un controlador LCD estático con interfaz I²C

Las pantallas de cristal líquido (LCD) se utilizan ampliamente para aplicaciones comerciales e industriales debido a sus buenas propiedades visuales, bajo costo y bajo consumo de energía. Estas propiedades hacen que la pantalla LCD sea la solución estándar para dispositivos que funcionan con baterías, como instrumentos portátiles, calculadoras, relojes, radios, etc.

Sin embargo, para controlar adecuadamente lo que muestra la pantalla LCD, el controlador electrónico de la pantalla LCD debe generar formas de onda de voltaje adecuadas en los pines de la pantalla LCD. Las formas de onda deben ser de CA (corriente alterna) por naturaleza porque los voltajes de CC (corriente continua) dañarán permanentemente el dispositivo. El controlador apropiado enviaría estas señales a la pantalla LCD con un consumo de energía mínimo.

Existen dos tipos de LCD, el Estático, con solo un panel posterior y un pin para el control de segmento individual y el Multiplexado, con múltiples paneles posteriores y múltiples segmentos conectados para cada pin.

Este Instructable presentará el diseño de un controlador LCD estático con dispositivo SLG46537V GreenPAK ™. El controlador de LCD diseñado manejaría hasta 15 segmentos de LCD, usando unos pocos microamperios de corriente de la fuente de alimentación y ofrecería una interfaz I²C para el control.

En las siguientes secciones se mostrará:

● información de conocimientos básicos sobre LCD;

● el diseño del controlador LCD SLG46537V GreenPAK en detalle;

● cómo manejar una pantalla LCD estática de siete segmentos y 4 dígitos con dos dispositivos GreenPAK.

A continuación, describimos los pasos necesarios para comprender cómo se ha programado la solución para crear el controlador LCD estático con interfaz I²C. Sin embargo, si solo desea obtener el resultado de la programación, descargue el software GreenPAK para ver el archivo de diseño GreenPAK ya completado. Conecte el kit de desarrollo GreenPAK a su computadora y presione el programa para crear el controlador LCD estático con interfaz I²C.

Paso 1: Conceptos básicos de las pantallas de cristal líquido

Conceptos básicos de las pantallas de cristal líquido
Conceptos básicos de las pantallas de cristal líquido
Conceptos básicos de las pantallas de cristal líquido
Conceptos básicos de las pantallas de cristal líquido

Las pantallas de cristal líquido (LCD) es una tecnología que no emite luz, solo controla cómo pasa una fuente de luz externa. Esta fuente de luz externa podría ser la luz ambiental disponible, en el tipo de pantalla reflectante, o la luz de un LED o lámpara de retroiluminación, en el tipo de pantalla transmisiva. Las pantallas LCD están construidas con dos placas de vidrio (superior e inferior), una capa delgada de cristal líquido (LC) entre ellas y dos polarizadores de luz (Nota de aplicación AN-001 - Conceptos básicos de la tecnología LCD, Hitachi, Nota de aplicación AN-005 - Pantalla Modos, Hitachi). El polarizador es un filtro de luz para el campo electromagnético de luz. Solo los componentes de luz en la dirección correcta del campo electromagnético pasan a través del polarizador, mientras que los demás componentes están bloqueados.

El cristal líquido es un material orgánico que hace girar el campo electromagnético de la luz 90 grados o más. Sin embargo, cuando se aplica un campo eléctrico al LC, ya no gira la luz. Con la adición de electrodos transparentes en el cristal de la pantalla superior e inferior, es posible controlar cuándo pasa la luz y cuándo no, con una fuente externa del campo eléctrico. La Figura 1 (consulte la Nota de aplicación AN-001 - Conceptos básicos de la tecnología LCD, Hitachi) anterior ilustra este control de funcionamiento. En la Figura 1, la pantalla está oscura cuando no hay un campo eléctrico. Esto se debe a que ambos polarizadores filtran la luz en la misma dirección. Si los polarizadores son ortogonales, la pantalla estará oscura cuando el campo eléctrico esté presente. Ésta es la situación más común para las pantallas reflectantes.

El campo eléctrico mínimo, o voltaje, para controlar la pantalla LCD se llama umbral de ENCENDIDO. El LC solo se ve afectado por el voltaje y apenas hay corriente en el material LC. Los electrodos en la pantalla LCD forman una pequeña capacitancia y esta es la única carga para un controlador. Esta es la razón por la que una pantalla LCD es un dispositivo de bajo consumo para mostrar información visual.

Sin embargo, es importante tener en cuenta que la pantalla LCD no puede funcionar con una fuente de voltaje de corriente continua (CC) durante demasiado tiempo. La aplicación de un voltaje de CC provocará reacciones químicas en el material LC, dañándolo permanentemente (Nota de aplicación AN-001 - Conceptos básicos de la tecnología LCD, Hitachi). La solución es aplicar un voltaje alterno (CA) en los electrodos de LCD.

En las pantallas LCD estáticas, un electrodo de plano posterior está integrado en un vidrio y los segmentos individuales de la pantalla LCD, o píxeles, se colocan en el otro vidrio. Este es uno de los tipos de LCD más simples y el que tiene la mejor relación de contraste. Sin embargo, este tipo de pantalla generalmente requiere demasiados pines para controlar cada segmento individual.

En general, un controlador de controlador genera una señal de reloj de onda cuadrada para el plano posterior y una señal de reloj para los segmentos en el plano frontal juntos. Cuando el reloj del backplane está en fase con el reloj del segmento, la tensión cuadrática media (RMS) entre ambos planos es cero y el segmento es transparente. De lo contrario, si el voltaje RMS es mayor que el umbral de LCD ON, el segmento se oscurece. Las formas de onda para el segmento de encendido y apagado del backplane se muestran en la Figura 2. Como se puede ver en la figura, el segmento ON está desfasado en relación con la señal del backplane. El segmento desactivado está en fase en relación con la señal del backplane. El voltaje aplicado puede estar entre 3 y 5 voltios para pantallas de bajo costo y bajo consumo.

La señal de reloj para la placa posterior y los segmentos de la pantalla LCD generalmente está en el rango de 30 a 100 Hz, la frecuencia mínima para evitar un efecto de parpadeo visual en la pantalla LCD. Se evitan las frecuencias más altas para reducir el consumo de energía del sistema en general. El sistema compuesto por LCD y controladores consumiría poca corriente, del orden de microamperios. Esto los hace perfectamente adecuados para aplicaciones de fuentes de alimentación de batería y de baja potencia.

En las siguientes secciones, se presenta en detalle el diseño de un controlador estático de LCD con dispositivo GreenPAK que puede generar la señal de reloj del plano posterior y la señal de reloj de segmento individual para un LCD comercial.

Paso 2: Diagrama de bloques básico de GreenPAK Design

Diagrama de bloques básico de GreenPAK Design
Diagrama de bloques básico de GreenPAK Design
Diagrama de bloques básico de GreenPAK Design
Diagrama de bloques básico de GreenPAK Design

En la Figura 3 se muestra un diagrama de bloques que ilustra el diseño de GreenPAK. Los bloques básicos del diseño son la interfaz I²C, el controlador del segmento de salida, el oscilador interno y el selector de fuente de reloj del backplane.

El bloque de interfaz I²C controla la salida de cada segmento individual y la fuente de reloj del panel posterior de la pantalla LCD. El bloque de interfaz I²C es la única entrada del sistema para el control de salida de segmento.

Cuando la línea de control del segmento interno está configurada (nivel alto), el segmento LCD respectivo es oscuro opaco. Cuando la línea de control del segmento interno se restablece (nivel bajo), el segmento LCD respectivo es transparente.

Cada línea de control de segmento interno está conectada a un controlador de salida. El bloque del controlador del segmento de salida generará una señal de reloj en fase con relación al reloj del backplane para segmentos transparentes. Para los segmentos oscuros, esta señal está desfasada con respecto al reloj del backplane.

La fuente de reloj del backplane también se selecciona con la interfaz I²C. Cuando se selecciona la fuente de reloj del backplane interno, se enciende el oscilador interno. El oscilador interno generará una frecuencia de reloj de 48Hz. Esta señal será utilizada por el bloque del controlador del segmento de salida y se dirige al pin de salida del reloj del backplane (pin 20 de GreenPAK).

Cuando se selecciona la fuente de reloj del backplane externo, el oscilador interno se apaga. La referencia del controlador del segmento de salida es la entrada del reloj del panel posterior externo (patilla 2 de GreenPAK). En este caso, el pin de salida del reloj del backplane podría usarse como una línea de control de segmento adicional, el segmento OUT15.

Se puede utilizar más de un dispositivo GreenPAK en la misma línea I²C. Para ello, cada dispositivo debe programarse con una dirección I²C diferente. De esta forma es posible ampliar el número de segmentos de LCD activados. Un dispositivo está configurado para generar la fuente de reloj de la placa posterior, impulsando 14 segmentos, y los otros están configurados para usar una fuente de reloj de la placa posterior externa. Cada dispositivo adicional podría impulsar más de 15 segmentos de esta manera. Es posible conectar hasta 16 dispositivos en la misma línea I²C y luego es posible controlar hasta 239 segmentos de una pantalla LCD.

En este Instructable, esta idea se utiliza para controlar 29 segmentos de una pantalla LCD con 2 dispositivos GreenPAK. La funcionalidad de asignación de pines del dispositivo se resume en la Tabla 1.

Paso 3: Consumo de corriente de diseño

Una preocupación importante en este diseño es el consumo de corriente, que debería ser lo más bajo posible. La corriente de reposo estimada del dispositivo GreenPAK es 0,75 µA para funcionamiento con suministro de 3,3 V y 1,12 µA para funcionamiento con suministro de 5 V. El consumo de corriente del oscilador interno es de 7,6 µA y 8,68 µA para el funcionamiento de la fuente de alimentación de 3,3 V y 5 V, respectivamente. No se espera que tenga un aumento significativo en el consumo de corriente debido a las pérdidas de conmutación, porque este diseño opera a una frecuencia de reloj baja. La corriente máxima estimada consumida para este diseño es menor que 15 µA cuando el oscilador interno está encendido y 10 µA cuando el oscilador interno está apagado. La corriente medida consumida en ambas situaciones se muestra en la sección Resultados de la prueba.

Paso 4: Esquema del dispositivo GreenPAK

Esquema del dispositivo GreenPAK
Esquema del dispositivo GreenPAK

El proyecto diseñado en el software GreenPAK se muestra en la Figura 4. Este esquema se describirá utilizando los diagramas de bloques básicos como referencia.

Paso 5: Interfaz I²C

Interfaz I²C
Interfaz I²C
Interfaz I²C
Interfaz I²C

El bloque de interfaz I²C se utiliza como bloque de control principal del control de funcionamiento del dispositivo. En la Figura 5 se muestra una vista cercana de las conexiones del bloque y las propiedades configuradas.

Este bloque está conectado al PIN 8 y al PIN 9, que son pines I²C SCL y SDA respectivamente. Dentro del dispositivo, el bloque I²C ofrece 8 entradas virtuales. El valor inicial de cada entrada virtual se muestra en la ventana de propiedades (ver Figura 5). Las entradas virtuales desde OUT0 hasta OUT6 se utilizan como líneas de control de segmento. Estas líneas de control corresponden a la salida de segmento 1 a la salida de segmento 7 y están conectadas al controlador de salida de segmento. La entrada virtual OUT7 se utiliza como control de línea de selector de fuente de reloj de plano posterior, con el nombre de red BCKP_SOURCE. Esta red será utilizada por otros bloques en el diseño. El código de control I²C se configura con un valor diferente para cada IC en el proyecto.

Hay 8 líneas de control de segmento interno más disponibles en la salida de la Máquina de estado asíncrona (ASM), como se muestra en la Figura 6 anterior. La línea de salida del segmento 8 (SEG_OUT_8 en la ventana de propiedades) a través de la línea de salida del segmento 15 (SEG_OUT_15) son controladas por la salida de ASM en el estado 0. No hay ninguna transición de estado en el bloque ASM, siempre está en el estado 0. Las salidas de ASM son conectado a los controladores de salida de segmento.

Los controladores de salida de segmento generarán la señal de salida del dispositivo.

Paso 6: controlador de segmento de salida

El controlador del segmento de salida es esencialmente una tabla de búsqueda (LUT) configurada como un puerto lógico XOR. Para cada segmento de salida, debe ser un puerto XOR conectado a la línea de control del segmento y al reloj del backplane (BCKP_CLOCK). El puerto XOR es responsable de generar la señal en fase y fuera de fase para el segmento de salida. Cuando la línea de control del segmento está en un nivel alto, la salida del puerto XOR invertirá la señal del reloj del backplane y generará una señal fuera de fase en el pin del segmento. La diferencia de voltaje entre el panel posterior de la pantalla LCD y el segmento de la pantalla LCD, en este caso, establecerá el segmento de la pantalla LCD como un segmento oscuro. Cuando la línea de control del segmento está en un nivel bajo, la salida del puerto XOR seguirá la señal del reloj del backplane y luego generará una señal en fase para el pin del segmento. Debido a que no se aplica voltaje entre el panel posterior de la pantalla LCD y el segmento en este caso, el segmento es transparente a la luz.

Paso 7: Control de fuente de reloj del oscilador interno y del backplane

Control de fuente de reloj de placa posterior y oscilador interno
Control de fuente de reloj de placa posterior y oscilador interno

El oscilador interno se utiliza cuando la señal BCKP_CLOCK de la interfaz I²C se establece en un nivel alto. En la Figura 7 anterior se muestra una vista cercana del diagrama de control de la fuente de reloj.

El oscilador está configurado con una frecuencia RC de 25 kHz, con el divisor de salida más alto disponible en el oscilador OUT0 (8/64). La configuración completa se ve en la ventana de propiedades que se muestra en la Figura 7. De esta manera, el oscilador interno generará una frecuencia de reloj de 48 Hz.

El oscilador está activo solo cuando la señal BCKP_SOURCE está en un nivel alto junto con la señal POR. Este control se realiza conectando estas dos señales al puerto NAND de la LUT 4-L1. La salida del NAND luego se conecta a la entrada del pin de control de apagado del oscilador.

La señal BCKP_SOURCE controla el MUX construido con 3-L10 LUT. Cuando la señal BCKP_SOURCE está en un nivel bajo, la fuente de reloj del backplane proviene del PIN2. Cuando esta señal está en un nivel alto, la fuente de reloj del backplane proviene del oscilador interno.

Paso 8: Salida de reloj del backplane o control de pines de salida del segmento 15

Salida de reloj del panel posterior o control de clavija de salida del segmento 15
Salida de reloj del panel posterior o control de clavija de salida del segmento 15

El pin 20 en este diseño tiene una función doble, que depende de la fuente de reloj del backplane seleccionada. El funcionamiento de este pin se controla con una LUT de 4 entradas, como se muestra en la Figura 8. Con una LUT de 4 bits, es posible asociar la operación del puerto XOR con una salida MUX. Cuando la señal BCKP_SOURCE está en un nivel alto, la salida LUT seguirá el reloj del oscilador interno. Luego, el pin 20 funciona como una salida de reloj de plano posterior. Cuando la señal BCKP_SOURCE está en un nivel bajo, la salida LUT será la operación XOR entre SEG_OUT_15, desde la salida ASM, y la señal del reloj del backplane. La configuración de LUT de 4 bits para realizar esta operación se muestra en la Figura 8.

Paso 9: Prototipo del sistema LCD

Prototipo del sistema LCD
Prototipo del sistema LCD
Prototipo del sistema LCD
Prototipo del sistema LCD

Para demostrar el uso de la solución de diseño GreenPAK, se montó un prototipo de sistema LCD en una placa de pruebas. Para el prototipo, una pantalla LCD estática de siete segmentos y 4 dígitos es impulsada por dos dispositivos GreenPAK en la placa DIP. Un dispositivo (IC1) utiliza el oscilador interno para controlar el panel posterior de la pantalla LCD y el otro dispositivo (IC2) utiliza esta señal como referencia de entrada del panel posterior. Ambos circuitos integrados se controlan a través de la interfaz I²C mediante un microcontrolador STM32F103C8T6 (MCU) en una placa de desarrollo mínima.

La Figura 9 muestra el esquema de las conexiones entre los dos circuitos integrados GreenPAK, la pantalla LCD y la placa MCU. En el esquema, el dispositivo GreenPAK con referencia U1 (IC1) controla los dígitos uno y dos de la pantalla LCD (lado izquierdo de la pantalla LCD). El dispositivo GreenPAK con referencia U2 (IC2) controla los dígitos tres y cuatro de la pantalla LCD, más el segmento COL (parte derecha de la pantalla LCD). La fuente de alimentación para ambos dispositivos proviene del regulador en la placa de desarrollo del microcontrolador. Se agregan dos puentes extraíbles entre la fuente de alimentación y los pines VDD de cada dispositivo GreenPAK para la medición de corriente con un multímetro.

En la Figura 10 se muestra una imagen del prototipo ensamblado.

Paso 10: Comandos I²C para control LCD

Comandos I²C para control LCD
Comandos I²C para control LCD
Comandos I²C para control LCD
Comandos I²C para control LCD
Comandos I²C para control LCD
Comandos I²C para control LCD

Los dos dispositivos GreenPAK en la placa están programados con el mismo diseño, excepto por el valor del Byte de control. El byte de control de IC1 es 0 (dirección I²C 0x00), mientras que el byte de control I²C es 1 (dirección I²C 0x10). Las conexiones entre los segmentos de la pantalla y los controladores de dispositivo se resumen en la tabla anterior.

Las conexiones se seleccionaron de esta manera para crear un esquema más claro y simplificar el montaje de las conexiones de la placa de pruebas.

El control de la salida del segmento se realiza mediante comandos de escritura I²C a las entradas virtuales I²C y los registros de salida ASM. Como se describe en la nota de aplicación AN-1090 Controladores de E / S I²C simples con SLG46531V (consulte la Nota de aplicación AN-1090 Controladores de E / S I²C simples con SLG46531V, Dialog Semiconductor), el comando de escritura I²C está estructurado de la siguiente manera:

● Iniciar;

● Byte de control (el bit R / W es 0);

● Dirección de palabra;

● Datos;

● Deténgase.

Todos los comandos de escritura I²C se realizan en la dirección de palabra 0xF4 (entradas virtuales I²C) y 0xD0 (salida ASM para el estado 0). Los comandos para escribir en IC1 y los dígitos 1 y 2 de la pantalla LCD de control se resumen en la Tabla 3. En la representación de la secuencia de comandos, el corchete abierto "[" denota la señal de Inicio y el corchete de cierre "]" denota la señal de Paro.

Los dos bytes de arriba controlan los segmentos del dígito 1 y el dígito 2 de la pantalla LCD juntos. Aquí, el enfoque es utilizar una tabla de búsqueda individual (LUT) en el software para cada dígito, considerando los segmentos en ambos bytes. Los valores de bytes de la tabla de búsqueda deben mezclarse usando una operación OR bit a bit y luego enviarse al IC. La Tabla 4 muestra el valor de Byte0 y Byte1 para cada valor numérico que debe escribirse en cada dígito de la pantalla.

Por ejemplo, para escribir en el Dígito 1 el número 3 y en el Dígito 2 el número 4, Byte0 es 0xBD (0x8D bit a bit OR con 0xB0) y Byte 1 es 0x33 (0x30 bit a bit OR con 0x03).

El comando para escribir en IC2 y los controles de los dígitos 3 y 4 se describen en la Tabla 5.

La lógica de control de los dígitos 3 y 4 es como el control de los dígitos 1 y 2. La Tabla 6 muestra la LUT para estos dos dígitos.

La diferencia en IC2 es el segmento COL. Este segmento está controlado por Byte1. Para configurar este segmento oscuro, se debe realizar una operación OR bit a bit entre el Byte1 y el valor 0x40.

Paso 11: Comandos I²C para prueba de LCD

Comandos I²C para prueba de LCD
Comandos I²C para prueba de LCD

Para la prueba de LCD, se desarrolló un firmware en lenguaje C para la placa MCU. Este firmware enviará una secuencia de comandos a ambos circuitos integrados en la placa. El código fuente de este firmware se encuentra en la sección Apéndice. La solución completa se desarrolló utilizando Atollic TrueStudio para STM32 9.0.1 IDE.

La secuencia de comandos y los valores respectivos que se muestran en la pantalla se resumen en la Tabla 7 anterior.

Paso 12: Resultados de la prueba

Resultados de la prueba
Resultados de la prueba
Resultados de la prueba
Resultados de la prueba

La prueba del prototipo consiste en verificar los valores de la pantalla después de un comando MCU y medir el sumidero de corriente de cada IC durante la operación.

Las imágenes de la pantalla LCD para cada valor de comando se muestran en la Tabla 8 anterior.

El sumidero de corriente para cada dispositivo se midió con un multímetro, en su rango de corriente más bajo de 200 µA. Las imágenes de la corriente medida para cada dispositivo, durante el arranque y el funcionamiento normal, se muestran en la Tabla 9 anterior.

Conclusión y discusión de resultados

Se presentó el diseño de un controlador LCD estático de baja potencia con dispositivo GreenPAK. Este diseño muestra claramente una de las mayores características de los dispositivos GreenPAK: su baja corriente de reposo. Debido a que los dispositivos GreenPAK son una solución basada en hardware, es posible trabajar en una operación de baja frecuencia, en este caso, 48 Hz. Una solución basada en MCU requerirá una frecuencia de operación más alta, incluso durante períodos de tiempo cortos periódicamente, y luego consumirá más energía. Y, al comparar el dispositivo GreenPAK con un CPLD (Dispositivo lógico programable complejo), es evidente que normalmente un CPLD tiene una corriente de reposo superior a 20 µA.

Es interesante notar que este diseño podría modificarse fácilmente para adaptarse mejor a los requisitos de un proyecto específico. Un buen ejemplo es el pinout de los controles de segmento. Se podrían cambiar fácilmente para simplificar la placa de circuito impreso y el desarrollo de software al mismo tiempo. Esta es una característica interesante cuando el dispositivo se compara con un ASIC (Circuito Integrado Específico de Aplicación) estándar. Por lo general, los ASIC están diseñados para adaptarse a una amplia gama de aplicaciones, y se debe escribir una rutina de software inicial para configurar correctamente el IC antes de la operación. Se podría diseñar un dispositivo configurable para que esté listo para usarse después del encendido. De esta manera, es posible reducir el tiempo de desarrollo de software para la configuración inicial de IC.

El código fuente de la aplicación se puede encontrar aquí en el Apéndice A.

Recomendado: