Herramientas de usuario

Herramientas del sitio


viejulcd

ViejuLCD

El ViejuLCD es un dispositivo hardware, basado en un microcontrolador AVR, que controla un display de texto LCD (estandard Hitachi HD 44780) a través del bus USB (con emulacion serial con un chip FTDI).

En la parte hardware, se compone de un microcontrolador AVR ATtiny2313, con un cristal de 3.6864Mhz, conectado al lcd en modo 4 bits de datos, y con su puerto UART conectado a un FTDI ft232rl para hacer de interface al puerto USB. Se puede hacer una version para el puerto serie, conectando un max232 en lugar del FTDI. Ver ViejuLCD-Serie

El microcontrolador, tiene cargado un firmware que hace todo el control del LCD y del puerto serie, asi, se pueden enviar datos y comandos al LCD con un sencillo protocolo.

Protocolo

Los datos se envian en ASCII plano al ViejuLCD, y dependiendo del caracter que reciba, el lcd lo mostrará por pantalla, o ejecutará un comando especial.

Los valores ascii del 0h al 7h son los caracteres definibles por el usuario que el protocolo permite definir.

Los comandos especiales, se enviarán precedidos del byte 9h que pondra el ViejuLCD en modo comando, a la espera de los siguientes bytes dependiendo del comando especifico que vaya a continuación. hay comandos que serán solo un byte (como borrar la pantalla), o comandos que esperan más bytes como parámetros.

De momento se definen los siguientes comandos:

9h - Entra en modo comando.
---------------------------
   0h - Sin param. - Borra la pantalla y vuelve al inicio (fila 1, columna 1).
   1h - Sin param. - Mueve el cursor al inicio.
   2h - +2 bytes   - Mueve el cursor a la posicion Columna, Fila (x,y) especificada por los dos bytes que se pasan de parametros (se empieza en 0,0).
   3h - +1 byte    - Apaga o enciende el LCD. El parámetro es un byte. 0h apaga el lcd, 1h lo enciende.
   4h - +1 byte    - Modifica el brillo del BackLight del LCD. El parámetro es un byte. 0h apagado, 1h brillo bajo, 2h brillo alto.
   5h - +1 byte    - Hace un Scroll de la pantalla en una unidad. El parámetro es un byte, 0h scroll a la derecha, 1h a la izquierda.
   8h - +9 bytes   - Define un caracter personalizado. El segundo byte indica que caracter definir de los 8 disponibles (0h-7h), 
                     los siguientes bytes definen el caracter. Los caracteres son de 5x8, se pueden calcular los valores 
                     a mandar de la siguiente manera:
     |   bits    | byte
fila | 76543210  | valor
------------------------
000  |     xxx   | 0x0E
001  |    x   x  | 0x11
010  |    x  xx  | 0x13
011  |    x x x  | 0x15
100  |    xx  x  | 0x19
101  |    x   x  | 0x11
110  |     xxx   | 0x0E
111  |    xxxxx  | 0x1F

Componentes

Para empezar, recopilo las tiendas online que conozco donde es mas barato pillar los componentes para los primeros prototipos:

FTDI FT232RL: Chip de Interfaz USB. 3€ en SparkFun. Hay que sumar los gastos de envio desde USA, pero un pedido de 5 o más ya sale a cuenta. http://www.sparkfun.com/commerce/product_info.php?products_id=650

AVR ATTiny2313: Microcontrolador: En ebay, una tienda los tiene MUY baratos (0.74€). Además tambien tiene las pantallas LCD: Los gastos de envio son 2.5 euros pidamos uno o 10, asi que merece la pena pillar 10. xD http://cgi.ebay.es/ws/eBayISAPI.dll?ViewItem&ssPageName=STRK:MEWAX:IT&item=320333796374

LCDs: Sin comentarios: El mismo tio de Ebay… tiene muchos modelos, creo que lo ideal por precio es ir a por los de 16 o 20 caracteres por dos lineas… luego el color… a vuestra elección. Aunque el firmware soporta hasta los de 20×4 lineas eh. Dejo el enlace a la tienda: Fijaros que tengan retroiluminacion (with b/l): 2×16: http://shop.ebay.es/merchant/artronicpl?_nkw=lcd+2x16&_sacat=0&_fromfsb=&_trksid=m270.l1313&_odkw=lcd&_osacat=0 2×20: http://shop.ebay.es/merchant/artronicpl?_nkw=lcd+2x20&_sacat=0&_fromfsb=&_trksid=m270.l1313&_odkw=lcd+2x16&_osacat=0 4×16: http://shop.ebay.es/merchant/artronicpl?_nkw=lcd+4x16&_sacat=0&_fromfsb=&_trksid=m270.l1313&_odkw=lcd+4x20&_osacat=0 4×20: http://shop.ebay.es/merchant/artronicpl?_nkw=lcd+4x20&_sacat=0&_fromfsb=&_trksid=m270.l1313&_odkw=lcd+4x16&_osacat=0

Conectores USB: Tengo varios conectores mini-usb que no uso, asi que podemos empezar con esos, a no ser que querais un usb tipo “b” mejor que no son caros: http://cgi.ebay.es/5x-Female-USB-Connector-Type-B-MSP430-Freescale-Arduino_W0QQitemZ180319089096QQcmdZViewItemQQptZBI_Connectors_Switches_Wire?hash=item180319089096&_trksid=p3286.c0.m14&_trkparms=72%3A895|66%3A2|65%3A12|39%3A1|240%3A1318

Cristal: de 3.6864Mhz: Nada, céntimos… facil ganar una puja asi: http://cgi.ebay.es/ACT-HC49-SMX-3-6864-MHz-Crystal_W0QQitemZ300290194802QQcmdZViewItemQQptZUK_BOI_Electrical_Components_Supplies_ET?hash=item300290194802&_trksid=p3286.m63.l1177

Potenciometro del contraste: de 10K… en cualquier tienda muy baratos… aunque como siempre, en ebay, mas baratos todavia, 10 por 3 euros: http://cgi.ebay.es/Variable-Resistor-Potentiometer-085-10k-pk-of-10-IN-UK_W0QQitemZ260351811888QQcmdZViewItemQQptZLH_DefaultDomain_3?_trksid=p3286.m20.l1116

Lo demas son alguna resistencia y condensadores, que tengo de sobra en stock.

Esquema del prototipo

PCB del prototipo

Fotos del primer prototipo

viejulcd.txt · Última modificación: d/m/Y H:i (editor externo)