====== Pantalla LCD i2c ====== El soporte de las pantallas LCD se restringe a aquellas con las siguientes características: * Pantallas LCD de caracteres de 16x2 con driver ''Hitachi HD44780'' o compatibles. * Backpack I2C con el expansor de puertos ''PCF8574''. //**El módulo LCD es el siguiente:**// {{ :pub:lcd_16_2.jpeg?500 }} //**El módulo I2C es el siguiente:**// {{ :pub:i2c_lcd_backpack.jpg?direct500 }} Se deberán soldar los pines del módulo I2C a la pantalla LCD, tal y como se muestra la siguiente imagen: {{ :pub:i2c_lcd.jpg?direct&500 |}} ==== Activación y uso de la pantalla LCD en el PSoC Creator (Leer con atención) ==== Para activar la pantalla LCD se necesitan llevar a cabo tres pasos. * //**Activar y configurar la pantalla LCD en software en el fichero ''gnome_config.h''.**// #define GNOME_LCD_MODULE_ACTIVE 0x01 // Pantalla LCD activa * //**Activar la interfaz I2C, en la tercera página del ''TopDesign.cysch''.**// {{ :pub:i2c_topdesign.png?direct&800 |}} * //**Incluir en el diseño de usuario (primera página del ''TopDesign.cysch'') el módulo LCD que se puede encontrar en el catálogo de componentes, en la pestaña ''Default''.**// {{ :pub:i2c_lcd_topdesign.png?direct&800 |}} //**El módulo LCD debe llamarse necesariamente ''LCD_gnome''.**// El puerto A y el puerto B son los datos que se representarán en la pantalla, en formato hexadecimal. El dato en el puerto A se representará en la pantalla en la primera línea, mientras que el puerto B lo hará en la segunda línea. La señal de reloj debe ser el reloj de sistema ''BUS_CLK'', a 24 MHz. ==== Bus I2C y Conexiones ==== El bus I2C es un bus serie síncrono que se compone de 2 señales. * ''SCL'' (Señal de reloj). Por defecto está configurado en el ''P1.6'' del PSoC 5lp. * ''SDA'' (Señal de datos, bidireccional). Por defecto está configurado en el ''P1.7'' del PSoC 5lp. En el bus pueden existir multitud de esclavos (teóricamente hasta 128, limitados por el fan-out). Toda transacción la inicia el dispositivo maestro (en este caso el PSOC) y proporciona la dirección del esclavo con el que quiere comunicarse. Las direcciones son típicamente de 7 bits + 1 bit para indicar lectura/escritura del esclavo. El envío de la dirección y el bit de R/W irán seguidos de un ACK, en el que el bus está por defecto en alto, y si el esclavo lo lleva a cero, significa que se ha producido acknowledge. Posteriormente se transmiten 8 bits de dato + otro bit de acknowledge. Una trama de transferencia en el bus se puede observar en la siguiente imagen. {{ :pub:i2c_trama.png?direct&1000 |}} == Resistencias de pull-up == En este bus, se debe disponer de resistencias de pull-up, puesto que los maestros y esclavos son del tipo ''Open collector'', que significa que la salida es una conexión directa al colector del transistor, y por tanto, sólo puede llevarlo a masa, nunca a Vdd. Por ello, la resistencia de pull-up se encarga de mantener el bus en alto mientras ningún dispositivo lo lleve a nivel bajo. La siguiente imagen ilustra esta situación. {{ :pub:i2c_bus_opencollector.png?direct&600 |}}