Tabla de contenido:

Placa adaptadora HD44780 LCD a I2C para Bus Pirate: 9 pasos
Placa adaptadora HD44780 LCD a I2C para Bus Pirate: 9 pasos

Video: Placa adaptadora HD44780 LCD a I2C para Bus Pirate: 9 pasos

Video: Placa adaptadora HD44780 LCD a I2C para Bus Pirate: 9 pasos
Video: Демонстрация и обзор ЖК-адаптера Bus Pirate 2024, Noviembre
Anonim
Placa adaptadora HD44780 LCD a I2C para Bus Pirate
Placa adaptadora HD44780 LCD a I2C para Bus Pirate
Placa adaptadora HD44780 LCD a I2C para Bus Pirate
Placa adaptadora HD44780 LCD a I2C para Bus Pirate

Los LCD de caracteres económicos basados en el chipset HD44780 vienen en una variedad de tamaños: 2x16, 4x20, etc. Estas pantallas tienen dos modos de interfaz estándar, 4 bits y 8 bits en paralelo. 8 bits requiere un total de 11 líneas de datos, 4 bits requiere 7 (6 para solo escritura). Algunas pantallas LCD admiten un modo de datos en serie adicional, como el VFD que cubrí en Hack a Day. Las pantallas LCD HD44780 son generalmente piezas de 5 voltios con un suministro separado para la luz de fondo. El Bus Pirate solo tiene cinco pines de E / S tolerantes a 5 voltios, por lo que hicimos una pequeña placa adaptadora con suficientes pines para controlar la pantalla LCD. El Bus Pirate controla la placa adaptadora a través de su biblioteca de interfaz LCD. Continúe leyendo sobre la placa adaptadora LCD de caracteres Bus Pirate HD44780 y la biblioteca de interfaz. Puedo tener PCB, kits o kits ensamblados producidos por Seeed Studio por aproximadamente $ 15, incluido el envío mundial, más aquí. No pude incluir algunos elementos de formato y tablas HTML en un Instructable, puede ver la publicación original en Dangerous Prototypes Blog.

Paso 1: hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

En este artículo describimos una placa adaptadora I2C para pantallas LCD basadas en HD44780. Lo demostramos con una interfaz serial universal Bus Pirate. El código fuente de Bus Pirate para la biblioteca de interfaz HD44780 basada en I2C es de dominio público, por lo que es libre de adaptarse a sus propios proyectos. Hardware Imagen de circuito de tamaño completo [PNG]. El circuito y la PCB se diseñaron con la versión gratuita de Cadsoft Eagle. Los archivos de diseño se pueden descargar de Bus Pirate SVN. Antes de usar la placa adaptadora, asegúrese de verificar la hoja de datos de su LCD con el pinout del adaptador. No todas las pantallas LCD son iguales. IC expansor de E / S PCF8574 Este es un chip expansor simple de 8 E / S que se controla a través de la interfaz I2C de dos cables. Se puede acceder a la interfaz I2C desde el encabezado JP1. El PCF8574 funciona de 2,5 a 5 voltios. Los pines de E / S funcionan con el voltaje de suministro, por lo que si lo alimentamos con 5 voltios, interconecta la pantalla LCD a 5 voltios. C1 (0.1uF) desacopla el IC de las fluctuaciones en la fuente de alimentación. Un pin del PCF8574 controla un LED de 3 mm (LED1) a través de la resistencia limitadora de corriente R2 (1000 ohmios). El LED se enciende para indicar que la comunicación entre el Bus Pirate y el adaptador se ha realizado correctamente. El PCF8574 no puede generar suficiente corriente para alimentar el LED, por lo que alimentamos el LED con la fuente de 5 voltios y cambiamos la tierra. LCD La placa adaptadora se comunica con una LCD de caracteres basada en HD44780 en modo de interfaz paralela de 4 bits. Los pines de la interfaz de 4 bits (RS, RW, EN y D4-D7) están conectados a siete de los pines de E / S del PCF8574. Nos gusta usar un conector de clavija macho de 0.1 "para conectar el adaptador a una pantalla LCD; por lo general, puede apoyar la pantalla LCD contra las clavijas para crear suficiente contacto para una prueba rápida. La resistencia de ajuste R1 (10K) proporciona un voltaje de ajuste de contraste a la clavija 3 de El encabezado de la pantalla LCD. No conectamos los pines de la luz de fondo porque hay muchos estilos de luz de fondo diferentes. Proporcionar energía para una luz de fondo LED podría dañar una pantalla que requiere un suministro de voltaje negativo. encabezado JP2. Proporcionamos un segundo pin de fuente de alimentación para conectar las resistencias pull-up del Bus Pirate. PCB El circuito y el PCB se diseñaron con la versión gratuita de Cadsoft Eagle. Los archivos de diseño se pueden descargar del Bus Pirate SVN. El PCB es un diseño de un solo lado, todo orificio pasante con un solo cable de puente (mostrado en rojo). Podemos tener PCB, kits o kits ensamblados producidos por Seeed Studio por aproximadamente $ 15, incluido el envío mundial, más aquí. Partlist Part Value (todo el orificio rugoso) C10.1uF / 10 voltios + R110000 (10K) ohmios potenciómetro / potenciómetro de una sola vuelta, 6 mmR21000 (1K) resistencia de ohmios, 1/4 vatio LED 13 mm (T1), rojoJP1 + JP20.1 "conector macho, 5 pinesIC1PCF8574N, 8 bits Expansor de E / S I2C DIP16ICS Conector DIP de 116 pines para IC1 No pude incluir algunos elementos de formato y tablas HTML en un Instructable, puede ver la publicación original en el blog Dangerous Prototypes.

Paso 2: conexiones

Conexiones
Conexiones

Dispositivo: LCD de caracteres HD44780 Bus: 4 bits en paralelo, con placa adaptadora I2C PCF8574. Requisitos de alimentación: 5 voltios. Referencias: hoja de datos de ejemplo [PDF], referencia de comando HD44780, uber-site LCD HD44780. Registro completo de sesión de Bus Pirate para esta demostración. diseñó el adaptador para la biblioteca LCD de la interfaz serial universal Bus Pirate, pero funcionará con cualquier cosa que pueda hablar el protocolo I2C. Eche un vistazo al código fuente de Bus Pirate para ver un ejemplo de implementación I2C-> HD44780. Conecte el Bus Pirate a la placa adaptadora como se muestra en la tabla. La tabla también muestra las conexiones sin procesar al PCF8574 IC si lo está siguiendo sin una placa adaptadora. Conecte el adaptador a una fuente de alimentación suficiente para la pantalla LCD, generalmente de 5 voltios. La conexión I2C entre el adaptador y el Bus Pirate requiere resistencias pull-up entre 2 y 10K. Aquí hay más información sobre la interfaz de voltaje mixto con pull-ups y las resistencias pull-up integradas de Bus Pirate. No pude incluir algunos elementos de formato y tablas HTML en un Instructable, puede ver la publicación original en el blog Dangerous Prototypes.

Paso 3: Paso 1. Configurar la biblioteca

Paso 1. Configurar biblioteca
Paso 1. Configurar biblioteca

Interfaz Hemos cubierto el diseño del adaptador y cómo conectarlo al Bus Pirate, ahora finalmente es el momento de escribir algo en la pantalla LCD. Hola> m <<11 <<1 <<W <

p <<2 <<v <<< obtener informe de voltaje MONITOR DE VOLTAJE: 5V: 4.9 | 3,3 V: 3,3 | VPULLUP: 5.0 <<Presione 'm' en la terminal Bus Pirate y elija la biblioteca LCD. Actualmente solo admite LCD de caracteres HD44780 utilizando el adaptador PFC8574 descrito en la primera mitad de este artículo (opción 1). Habilite las fuentes de alimentación ('W' grande) y las resistencias pull-up (menú 'p'). Verifique el monitor de voltaje (menú 'v') y asegúrese de que el voltaje de activación (Vpullup) sea de alrededor de 5 voltios.

Paso 4: Paso 2. Restablecimiento e inicialización

Paso 2. Restablecimiento e inicialización
Paso 2. Restablecimiento e inicialización
Paso 2. Restablecimiento e inicialización
Paso 2. Restablecimiento e inicialización

Esta tabla describe los comandos de un solo byte que controlan una pantalla LCD HD44780; aquí hay una referencia detallada. Estos comandos se pueden ingresar desde la línea de comandos de Bus Pirate, pero hemos creado macros para la mayoría de ellos para ahorrar tiempo. <restablecer el LCD2. Init LCD <<< restablecer e inicializar el LCD3. Clear LCD <<< limpiar LCD, devolver el cursor a 04. Cursor posición ex: (4: 0) <<< establecer la posición del cursor5. Escribir texto de prueba <<La macro 0 muestra el menú de macros para cualquier modo Bus Pirate. LCD> (2) <<< inicializa la macro de LCD Líneas de visualización: 1. 1 <<< pantalla de una sola línea 2. Múltiple <<2 'RESET <<< macro 2 incluye una secuencia de reinicio INIT <<La macro de inicialización de LCD (2) configura la pantalla para el modo de interfaz de 4 bits, habilita la visualización del cursor y establece algunas otras opciones útiles. Configure el número de líneas de pantalla, elija 1 para una pantalla de una sola línea o 2 para todas las demás pantallas. Después de la inicialización, la pantalla debe quedar limpia con un cursor visible en la esquina. Si no funcionó, verifique la conexión I2C, las resistencias pull-up y la fuente de alimentación, luego intente nuevamente. Las pantallas LCD HD44780 deben reiniciarse con una secuencia de señal especial antes de que puedan inicializarse para el modo de interfaz de 4 bits u 8 bits. Macro 1 crea esta secuencia. La macro 2 incluye la secuencia de reinicio, por lo que no es necesario utilizar la macro 1 antes que la macro 2.

Paso 5: Paso 3. Escriba los caracteres de prueba

Paso 3. Escriba los caracteres de prueba
Paso 3. Escriba los caracteres de prueba
Paso 3. Escriba los caracteres de prueba
Paso 3. Escriba los caracteres de prueba

LCD> (6:80) <<La macro de escritura de números llena la pantalla LCD con números de prueba entre 0 y 9. El número después de los dos puntos le dice al Bus Pirate cuántos números de prueba debe escribir, estamos usando un 4x20LCD, por lo que escribimos 80 números para completarlo. Observe que el cursor termina en la posición 0, debajo del primer '0'. LCD> (7:80) <<La macro de escritura de caracteres llena la pantalla LCD con caracteres ASCII, ingrese la cantidad después de los dos puntos. Observe que la primera línea continúa en la tercera, la tercera en la segunda y la segunda en la última. Los caracteres no son continuos porque los LCD de caracteres no pasan de una línea a la siguiente. Hablaremos un poco más de esto más tarde.

Paso 6: Paso 4. Limpiar la pantalla LCD

Paso 4. Limpiar la pantalla LCD
Paso 4. Limpiar la pantalla LCD

LCD> (3) <<La macro clara de LCD envía el comando HD44780 que borra la pantalla y devuelve el cursor a la primera posición. También puede realizar cualquiera de estas operaciones sin las macros, consulte la tabla de comandos al principio de esta sección. Ingrese '[0b1' en Bus Pirate para configurar la interfaz en modo de comando ([) y envíe el comando de pantalla clara HD44780 (0b00000001) sin una macro.]

Paso 7: Paso 5. Escriba el texto

Paso 5. Escriba el texto
Paso 5. Escriba el texto
Paso 5. Escriba el texto
Paso 5. Escriba el texto

LCD> (8) <<< insertar texto de usuario Ingrese texto para insertar en la posición del cursor.Después de borrar la pantalla LCD en el paso 4, el cursor se coloca en el primer bloque. También podríamos configurarlo con la macro (4: 0), que mueve el cursor al primer carácter. Insertar texto en la macro del cursor solicita la entrada de texto, y luego lo copia en la pantalla LCD al presionar enter. LCD> (4: 0x40) <& lt

LCD> (8) <<< insertar texto Ingrese texto para insertar en la posición del cursor Bus Pirate v2go <<Escribir en la segunda línea es un poco más complicado, en realidad comienza en el carácter 64 en una pantalla LCD de 4x20. Si continúa escribiendo desde el final de la línea 1 (carácter 20), ¡terminará al principio de la línea tres! Esta página tiene una buena colección de mapas de memoria para la mayoría de los tamaños de LCD de caracteres. Primero, colocamos el cursor en la segunda línea (4: 0x40). A continuación, la macro 'insertar texto' toma nuestra entrada y la copia en la pantalla LCD. LCD> (4: 0x14) (8) (4: 0x54) (8) <<< sintaxis de macro múltiple Introduzca el texto para insertar en la posición del cursor. Firmware v2.0 + <<< escribimos estoIntroduzca el texto para insertar en la posición del cursor. Prototipos peligrosos <<Bus Pirate acepta múltiples macros en la misma línea, por lo que se puede escribir toda la pantalla a la vez. Escribimos en las dos últimas líneas con una sola línea de sintaxis. Podríamos usar '(3) (4: 0) (8) (4: 0x40) (8) (4: 0x14) (8) (4: 0x54) (8) 'para borrar la pantalla LCD y escribir las cuatro líneas con una sola entrada de sintaxis.

Paso 8: Paso 6. Leer desde la pantalla LCD

Paso 6. Leer desde la pantalla LCD
Paso 6. Leer desde la pantalla LCD

La placa adaptadora Bus Pirate y LCD puede leer en la pantalla LCD. Leeremos el texto que escribimos en la pantalla (DDRAM), pero también puede leer la configuración y la memoria RAM de caracteres personalizados (CGRAM) configurando la dirección correcta. LCD> [0b10000000 '' '<<< establecer el puntero de lectura' ' '] HD44780 RS BAJO, MODO DE COMANDO <<< registro seleccionar pin bajo CMD ESCRITURA: 0x80 <<Primero, le decimos al Bus Pirate que envíe datos al registro de comandos de la pantalla LCD ([). A continuación, usamos el comando set DDRAM address (0b1xxxxxxx) para configurar el puntero de lectura al comienzo de la DDRAM (xxxxxxx = 0000000).] LCD>] rrrrrrr <<< leer la memoria de datos HD44780 RS HIGH, DATA MODE <<< seleccionar registro pin highREAD: 0x48 <<< 'H'READ: 0x44 <<<' D'READ: 0x34 <<< '4'READ: 0x34 <<<' 4'READ: 0x37 <<< '7'READ: 0x38 < << '8'READ: 0x30 <<<' 0'LCD> Finalmente, dígale al Bus Pirate que lea de la memoria de datos (]), y luego lea unos pocos bytes (rrrrrrr). Obtuvimos "HD44780", el texto que escribimos en la pantalla en el paso 5. También debería poder usar el atajo r: 7 para leer siete bytes, pero no funciona en el firmware actual; lo arreglaremos antes de la próxima versión.

Paso 9: hacer más

Haciendo más
Haciendo más

Proporcione una descripción general del Step El adaptador LCD de caracteres HD44780 es un accesorio útil para Bus Pirate. Se puede utilizar para una prueba rápida o un desarrollo lógico más avanzado. Además de las pantallas LCD, los ocho pines de E / S de 2,5 voltios-5 voltios pueden ser útiles para otras aplicaciones Bus Pirate de alto número de pines. Podemos tener PCB, kits, o kits ensamblados producidos por Seeed Studio por aproximadamente $ 15, incluido el envío mundial, más aquí. No pude incluir algunos elementos de formato y tablas HTML en un Instructable, puede ver la publicación original en el blog Dangerous Prototypes.

Recomendado: