Muestra las diferencias entre dos versiones de la página.
viejulcd [01/02/2009 19:59] zako |
viejulcd [08/02/2017 21:21] |
||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | ====== 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 20x4 lineas eh. Dejo el enlace a la tienda: Fijaros que tengan retroiluminacion (with b/l): | ||
- | 2x16: http://shop.ebay.es/merchant/artronicpl?_nkw=lcd+2x16&_sacat=0&_fromfsb=&_trksid=m270.l1313&_odkw=lcd&_osacat=0 | ||
- | 2x20: http://shop.ebay.es/merchant/artronicpl?_nkw=lcd+2x20&_sacat=0&_fromfsb=&_trksid=m270.l1313&_odkw=lcd+2x16&_osacat=0 | ||
- | 4x16: http://shop.ebay.es/merchant/artronicpl?_nkw=lcd+4x16&_sacat=0&_fromfsb=&_trksid=m270.l1313&_odkw=lcd+4x20&_osacat=0 | ||
- | 4x20: 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 ==== | ||
- | |||
- | {{vieju_lcd.png|}} | ||
- | |||
- | ==== PCB del prototipo ==== | ||
- | |||
- | {{viejulcd.png|}} |