MÓDULO TFT MANUAL DE USUARIO ASSERTA/AVANXE + TFT REV-A (PRELIMINAR) TFT (Thin-FilmTransistor) Tabla de contenido Contenido Descripción Descripción Funcional Diagrama Funcional Entradas Alimentación Direcciones Sincronía Diagrama de sincronización Especificaciones de tiempo Ajustes de sincronía Especificaciones de tiempo ajustadas Notas de sincronización Acceso a Registros Uso del Protocolo I2C Especificación de Registros Aplicación Base Aplicación Base TFT introducción Descripción de la Aplicación REV-A (PRELIMINAR) Página 5 5 5 6 6 7 8 8 9 10 10 10 11 11 11 14 14 14 14 Programa de Aplicación Resultados de la Simulación Aplicacion Base Panel Touch Introducción Descripción de la Aplicación Programa de aplicación Información Complementaria REV-A (PRELIMINAR) 14 18 19 19 19 19 24 DESCRIPCIÓN Descripción Funcional El módulo TFT de Intesc está diseñado para que sea el FPGA, en nuestras tarjetas AVANXE y ASSERTA, quien genere las señales de control necesarias para sincronizar correctamente la TFT , además de enviar los datos para las señales RGB. Las señales RGB son vectores de 8 bits para cada colo (rojo, verde, azul). Una vez creadas las señales de sincronización, se pueden enviar los colores en combinaciones de valores enteros de 0 a 255 para cada color. de la TFT o para dibujar formas básicas se hace por coordenadas de 480 en “X” y 272 en “Y”, de tal forma que si el código del FPGA manda un ROJO(0), VERDE(0), AZUL(255), a la posición 480 , 272 mandarían un punto del tamaño de un pixel al final de la TFT (ver APLICACIÓN BASE). El panel Touchscreen es un panel capacitivo que soporta hasta 5 presiones simultaneas y usa el protocolo de comunicación I2C y para acceder a la información de los registros de dicho panel, el FPGA genera los comandos para ello (ver ACCESO A LOS REGISTROS) Para enviar colores a un determinado pixel Diagrama Funcional Figura 1: diagrama a bloques del funcionamiento de la TFT REV-A (PRELIMINAR) Diagrama de Bloques Figura 2: Diagrama de las entradas y salidas del FPGA y la TFT y Touchscreen. Alimentación La TFT y el Touchscreen funcionan con un voltaje de alimentacion de 3.3 Volts. Sin embargo, el contraste funciona con una alimentación de 19 Volts, por lo que para poder hacerla funcionar se debe de conectar el jumper 27 en la tarjeta ASSERTA o usar el módulo de Voltaje TFTVMod en AVANXE. Figura 3: conexión del jumper de alimentacion en ASSERTA. REV-A (PRELIMINAR) Direcciones (ASSERTA y AVANXE) dirección símbolo descripción C10 CLK Reloj general del FPGA A2 RED (0) Bit 0 del código RGB rojo D5 RED (1) Bit 1 del código RGB rojo C5 RED (2) Bit 2 del código RGB rojo B5 RED (3) Bit 3 del código RGB rojo A5 RED (4) Bit 4 del código RGB rojo E6 RED (5) Bit 5 del código RGB rojo C6 RED (6) Bit 6 del código RGB rojo D6 RED (7) Bit 7 del código RGB rojo B6 GREEN (0) Bit 0 del código RGB verde A6 GREEN (1) Bit 1 del código RGB verde C7 GREEN (2) Bit 2 del código RGB verde A7 GREEN (3) Bit 3 del código RGB verde E8 GREEN (4) Bit 4 del código RGB verde D8 GREEN (5) Bit 5 del código RGB verde A8 GREEN (6) Bit 6 del código RGB verde B8 GREEN (7) Bit 7 del código RGB verde E11 BLUE (0) Bit 0 del código RGB azul A9 BLUE (1) Bit 1 del código RGB azul D9 BLUE (2) Bit 2 del código RGB azul A10 BLUE (3) Bit 3 del código RGB azul B10 BLUE (4) Bit 4 del código RGB azul D11 BLUE (5) Bit 5 del código RGB azul C11 BLUE (6) Bit 6 del código RGB azul E10 BLUE (7) Bit 7 del código RGB azul C9 pclk Señal de reloj para la TFT A11 DISP Señal de display on/off B12 Hsync Señal de sincronizacion horizontal A13 Vsync Señal de sincronizacion vertical D12 DE Señal de habilitación de datos B14 SCL Reloj serial del I2C A14 SDA Datos seriales del I2C P4 INT/ Señal de interrupcion para el modulo del panel toch B15 WAKE/ Señal de interrupcion externa para el host Tabla 1: dirección, nombres y descripción de las entradas alambradas de la TFT al FPGA REV-A (PRELIMINAR) SINCRONÍA Diagrama de Sincronización Figura 4: Diagramas de sincronizacion para Hsync, Vsync y envió de datos RGB REV-A (PRELIMINAR) Especificaciones de Tiempo Parámetro Símbolo Especificación Unidad Mínimo Típico Máximo Ciclo de reloj fCLK ---------- 9 15 MHz Ciclo de Hsync 1/th ---------- 17.14 ---------- KHz Ciclo de Vsync 1/tv ---------- 59.94 ----------- Hz Horizontal Ciclo horizontal th 525 525 605 CLK Periodo de display horizontal thd 480 480 380 CLK Entrada delantera horizontal thf 2 2 82 CLK Ancho de pulso horizontal thp 2 41 41 CLK Entrada trasera horizontal thb 2 2 41 CLK Vertical Ciclo vertical tv 285 286 511 H Periodo de display vertical tvd 272 272 272 H Entrada delantera vertical tvf 1 2 227 H Ancho de pulso vertical tvp 1 10 11 H Entrada trasera vertical tvb 1 2 11 H • • • Tabla 2: Especificaciones de tiempo. CLK = 1/fCLK H = th Es necesario mantener tvp + tvb = 12 y thp + thb = 43 en modo sync. En modo DE no es necesario mantenerlo. REV-A (PRELIMINAR) Ajustes de Sincronía Las frecuencias mostradas para la TFT no se pueden logra con el reloj del FPGA por lo que estas se ajustaron aproximaciones posibles. según a las Especificaciones de tiempo ajustadas Parámetro Ciclo de reloj Ciclo de Hsync Ciclo de Vsync Símbolo fCLK 1/th 1/tv Horizontal Ciclo horizontal th Periodo de display horizontal thd Entrada delantera horizontal thf Ancho de pulso horizontal thp Entrada trasera horizontal thb Vertical Ciclo vertical tv Periodo de display vertical tvd Entrada delantera vertical tvf Ancho de pulso vertical tvp Entrada trasera vertical tvb Especificación 500 666.667 33.300 Unidad KHz Hz Hz 525 480 2 41 2 CLK CLK CLK CLK CLK 286 272 2 10 2 H H H H H Tabla 3: Especificaciones de tiempo ajustadas al reloj del FPGA (50 MHz) Notas de sincronizacion 1. Se debe de tener en cuenta que cunado se programa en VHDL se empieza en valor 0. 2. Para un mayor ajuste se sugiere cambiar los divisores de reloj por periodo en unidades de tiempo y ajustar. 3. Los valores de los divisores pueden cambiar según los ajustes. Ver aplicación base. REV-A (PRELIMINAR) ACCESO A REGISTROS DE TOUCHSCREEN Uso del protocolo I2C El panel Touchscreen de la TFT funciona accediendo a registros definidos para cada evento que sucede en el panel y se accede a ellos mediante protocolo estándar I2C. Intesc cuenta con librerías y aplicaciones especiales con las cuales se puede hacer uso de la TFT con la tarjeta ASSERTA y AVANXE: Ver APLICACIONES BASE. Para adquirir librerías y aplicaciones ver INFORMACIÓN COMPLEMENTARIA. Especificación de registros Numero de registro Nombre del registro Bits valor descripción 00h Modelo del dispositivo [2:0] 000b 100b Modo de operación normal Modo de prueba (reservado) Modo información de sistema (reservado) 001b 01h Identificación de gesto [7:0] 48h 49h 00h Zoom in Zoom out gesto no detectado 02h Puntos touch [3:0] 000b 001b 010b 011b 100b 101b 0 puntos touch detectados 1 puntos touch detectados 2 puntos touch detectados 3 puntos touch detectados 4 puntos touch detectados 5 puntos touch detectados 03h Bandera de evento del touch 1 [7:6] 00b 01b 10b 11b Comienza contacto Termina contacto Permanece contacto reservado 03h 04h 05h 06h TOUCH1_XH TOUCH1_XL TOUCH1_YH TOUCH1_YL [3:0] [7:0] [3:0] [7:0] 4 bits altos de la coordenada en X 8 bits bajos de la coordenada en X 4 bits altos de la coordenada en Y 8 bits bajos de ña coordenada en Y 09h Bandera de evento del touch 2 [7:6] 00b 01b 10b 11b Comienza contacto Termina contacto Permanece contacto reservado 09h 0Ah 08h 0Ch TOUCH2_XH TOUCH2_XL TOUCH2_YH TOUCH2_YL [3:0] [7:0] [3:0] [7:0] 4 bits altos de la coordenada en X 8 bits bajos de la coordenada en X 4 bits altos de la coordenada en Y 8 bits bajos de ña coordenada en Y REV-A (PRELIMINAR) 0h - 1h 00h - FFh 0h - 1h 00h - FFh 0h - 1h 00h - FFh 0h - 1h 00h - FFh Numero de registro Nombre del registro Bits valor descripción 0Fh Bandera de evento del touch 3 [7:6] 00b 01b 10b 11b Comienza contacto Termina contacto Permanece contacto reservado 0Fh 10h 11h 12h TOUCH3_XH TOUCH3_XL TOUCH3_YH TOUCH3_YL [3:0] [7:0] [3:0] [7:0] 4 bits altos de la coordenada en X 8 bits bajos de la coordenada en X 4 bits altos de la coordenada en Y 8 bits bajos de ña coordenada en Y 15h Bandera de evento del touch 4 [7:6] 00b 01b 10b 11b Comienza contacto Termina contacto Permanece contacto reservado 15h 16h 17h 18h TOUCH4_XH TOUCH4_XL TOUCH4_YH TOUCH4_YL [3:0] [7:0] [3:0] [7:0] 4 bits altos de la coordenada en X 8 bits bajos de la coordenada en X 4 bits altos de la coordenada en Y 8 bits bajos de ña coordenada en Y 1Bh Bandera de evento del touch 5 [7:6] 00b 01b 10b 11b Comienza contacto Termina contacto Permanece contacto reservado 1Bh 1Ch 1Dh 1Eh TOUCH5_XH TOUCH5_XL TOUCH5_YH TOUCH5_YL [3:0] [7:0] [3:0] [7:0] 4 bits altos de la coordenada en X 8 bits bajos de la coordenada en X 4 bits altos de la coordenada en Y 8 bits bajos de ña coordenada en Y 80h ID_G_THGROUP [7:0] 00h - FFh Umbral de detección de contacto válido. El valor real sera 4 veses el valor del registro. VALOR RECOMENDADO 46H 81h ID_G_THPEAK [7:0] 00h – FFh Umbral de detección de pico de contacto válido. VALOR RECOMENDADO 3CH 82h ID_G_THCAL [7:0] 00h - FFh Umbral de enforque de contacto. VALOR RECOMENDADO 1DH 83h ID_G_THWATER [7:0] 00h - FFh Umbral cuando hay agua en al superficie. VALOR RECOMENDADO D3H 84h ID_G_THTEMP [7:0] 00h - FFh Umbral de compensación de temperatura. VALOR RECOMENDADO EBH 85h ID_G_THDIFF [7:0] 00h - FFh Umbral de diferencia de contacto. El valor actual es de 32 veces el valor del registro. VALOR RECOMENDADO A0H 86h ID_G_CTRL [1:0] 00h 01h Modo de control de poder: no auto jump modo de control de poder: auto jump REV-A (PRELIMINAR) 0h - 1h 00h - FFh 0h - 1h 00h - FFh 0h - 1h 00h - FFh 0h - 1h 00h - FFh 0h - 1h 00h - FFh 0h - 1h 00h - FFh Numero de registro Nombre del registro Bits valor 87h ID_G_TIME_ENTER_MONITOR [7:0] 00h - FFh Retarzo para entrar a monitor de estatus (en segundos). VALOR RECOMENDADO C8H 88h ID_G_PERIODACTIVE [3:0] 3h - Eh Periodo de estatus “activo” (en milisegundos). VALOR RECOMENDADO 6H 89h ID_G_PERIODMONITOR [7:0] 1EH - FFH Tiempo para entrar en “idle” cuando se esta en “monitor” (en milisegundos). VALOR RECOMENDADO 28H A0H ID_G_AUTO_CLB_MODE [7:0] 00h FFh descripción Modo de Autocalibración: autocalibración habilitada Modo de Autocalibración: autocalibración deshabilitada A1h ID_G_LIB_VERSION_H [7:0] 30h Byte alto de versión de librería de Firmware A2h ID_G_LIB_VERSION_l [7:0] 01h Byte bajo de versión de librería de Firmware A3h ID_G_CIPHER [7:0] 55h ID del Circuito Integrado A4h ID_G_MODE [0:0] 00h Estatus de interrupción: interrupción habilitada para el host Estatus de interrupción: interrupción deshabilitada para el host 01h A5h ID_G_PMODE [1:0] 00h 01h 03h Modo ”activo” Modo ”monitor” Modo “hibernación” A6h ID_G_FIRMID [7:0] 05h Firmware ID A7h ID_G_STATE [7:0] 00h 01h 02h 03h 04h Estado en ejecución: Configuración Estado en ejecución: Trabajo Estado en ejecución: Calibración Estado en ejecución: Fábrica Estado en ejecución: Autocalibración A8h ID_G_FT5201ID [7:0] 79h ID de chip CTPM A9h ID_G_ERR [7:0] 00h 03h Código de error: OK código de error: inconsistencia entre escritura y lectura de registro código de error: comienzo fallido del chip código de error: calibración fallida 05h 1Ah Tabla 4: registros de la TFT REV-A (PRELIMINAR) APLICACIONES BASE Aplicación Base TFT Introducción Para el uso de la TFT es de vital importancia la sincronía de las señales. En esta aplicación se prueba la librería para sincronizar las señal en la TFT y adicionalmente se manda a pantalla los colores RGB. Ademas de ver el funcionamiento de las señales en sincronía, esta aplicación tan bien sirve para probar el correcto funcionamiento de la TFT. Descripción de la aplicación Para la aplicación en cuestión no se necesita de un alambrado especial o circuito externo, ya que las tarjetas ASSERTA y AVANXE contienen el conector para hacer la comunicación directa con la TFT(TFT no incluida en el paquete básico). En esta aplicación base lo primero es generara las señales de sincronización. Una ves creadas esas señales se generan los códigos de colores de acuerdo al habilitador de color. Programa de Aplicación El siguiente código esta diseñado para ser compilado y ejecutado el programa ISE Desing suite de Xilinx . library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity TFTRevA is port ( CLK : IN STD_LOGIC ; --RELOJ DEL SISTEMA FRAME_INI : OUT STD_LOGIC ; EMPIEZA UN CUADRO. SINCRONIZADO CON SV --ENVIA UN PULSO DE 20NS CUANDO FRAME_FIN : OUT STD_LOGIC ; TERMINA UN CUADRO. SINCRONIZADO CON SV --ENVIA UN PULSO DE 20NS CUANDO SH : OUT STD_LOGIC ; --PUERTO DE SINCRONIA HORIZONTAL SV : OUT STD_LOGIC ; --PUERTO DE SINCRONIA VERTICAL REV-A (PRELIMINAR) PCLK : OUT STD_LOGIC ; --RELOJ DE TFT DISP : OUT STD_LOGIC ; --HABILITADOR DE TFT DE : OUT STD_LOGIC ; --HABILITADOR DE COLORES INOUT STD_LOGIC ; --INDICA CUANDO ACTUALIZAR LOS PCLK_HAB : COLORES ROJO_IN : PIXELES ROJOS IN STD_LOGIC_VECTOR(7 DOWNTO 0); --ENTRADA DE VERDE_IN : PIXELES VERDES IN STD_LOGIC_VECTOR(7 DOWNTO 0); --ENTRADA DE AZUL_IN : PIXELES AZULES IN STD_LOGIC_VECTOR(7 DOWNTO 0); --ENTRADA DE ROJO : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); --PUERTO PARA COLOR VERDE : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); --PUERTO PARA COLOR AZUL : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) --PUERTO PARA COLOR ROJO VERDE AZUL ); end TFTRevA; architecture Behavioral of TFTRevA is signal hab_color : std_logic ; signal de_sig : std_logic ; signal conta_v : integer range 0 to 692649 := 0; signal conta_h : integer range 0 to 1039 := 0; signal conta_clk : integer range 0 to 4 := 0; begin DISP <= '1'; --Indica el inicio de un cuadro FRAME_INI <= '1' when conta_v = 5210 and conta_clk = 1 else '0'; FRAME_FIN <= '1' when conta_v = 150149 and conta_clk = 0 else '0'; REV-A (PRELIMINAR) --Contador para generar frecuencia de TFT y habilitador para el color de --salida process(CLK) begin if rising_edge(CLK) then if conta_clk < 4 then conta_clk <= conta_clk + 1; --Habilitador para actualizar color. Deshabilitado PCLK_HAB <= '0'; else conta_clk <= 0; --Habilitador para actualizar color. Habilitado PCLK_HAB <= '1'; end if; end if; end process; --Reloj para TFT: Dos ciclos en 1 y tres ciclos en 0. --La TFT actualiza en flancos de bajada PCLK <= '1' when conta_clk > 0 and conta_clk < 3 else '0'; --Contador de sincronia vertical. Calculado para 272 renglones process(CLK) begin if rising_edge(CLK) then if PCLK_HAB = '1' then if conta_v < 150149 then conta_v <= conta_v + 1; else conta_v <= 0; end if; end if; end if; end process; REV-A (PRELIMINAR) --Salida de Sincronia Vertical SV <= '0' when conta_v >= 0 and conta_v <= 5209 else '1'; --Contador de sincronia horizontal. Calculado para 480 columnas process(CLK) begin if rising_edge(CLK) then if PCLK_HAB = '1' then if conta_h <524 then conta_h <= conta_h + 1; else conta_h <= 0; end if; end if; end if; end process; --Salida de Sincronia Horizontal SH <= '0' when conta_h >= 0 and conta_h <= 39 else '1'; --Esta señal genera un pulso durante el tiempo que debe permanecer habilitado el --color, en todo momento. Es decir, envia el pulso aún cuando la sincronia Vertical --sea cero hab_color <= '1' when conta_h >= 41 and conta_h < 521 else '0' ; --El puerto DE, genera pulsos igual al de hab_color, pero filtrado. Es decir, respeta --los tiempos de la TFT de sincronia vertical y horizontal de_sig <= hab_color when conta_v >= 6300 and conta_v < 149099 else '0'; DE <= de_sig ; --Envia los colores a los puertos sólo cuando de_sig = '1' ROJO <= ROJO_IN when de_sig = '1' else (others => '0'); REV-A (PRELIMINAR) VERDE <= VERDE_IN when de_sig = '1' else (others => '0'); AZUL <= AZUL_IN when de_sig = '1' else (others => '0'); Para mas información sobre esta aplicación y otras a fin visite la seguite pagina: www.intesc.mx REV-A (PRELIMINAR) Aplicación Base Panel Touch Introducción El uso del panel touch depende en gran medida de la forma en que se accede a los registros. El panel touch de esta TFT usa un protocolo I2C, por lo que solo se puede acezar a solo un registro a la ves en esta aplicación base se muestra una forma sencilla de acezar de forma manual a los registros de la TFT. Descripción de la Aplicación La aplicación base del panel touch consta de 3 partes, primero la integración al programa de la librería del protocolo I2C después de la integración de la librería para el acceso a los registros del panel touch y por ultimo la visualización y utilización de la información de los registros. programa de aplicación El siguiente código esta diseñado para ser compilado y ejecutado el programa ISE Desing suite 14.4 de Xilinx. Esta apliacacion contasta de mas de una librería, aquí solo se mostrara el programa que integra todas las librerías, estas están disponibles en la pagina www.intesc.mx library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity aplicacion_base_touch is port( CLK :IN STD_LOGIC ; RST :IN STD_LOGIC ; SCL :OUT STD_LOGIC ; WAKE :OUT STD_LOGIC ; WAKE_SW :IN STD_LOGIC ; SDA :INOUT STD_LOGIC ; SWITCH :IN STD_LOGIC_vector(3 downto 0) ; T_OUT :OUT STD_LOGIC_vector(7 downto 0)); REV-A (PRELIMINAR) end aplicacion_base_touch; architecture Behavioral of aplicacion_base_touch is component IICInterfaceRevA is GENERIC (RD_REG_8 : STD_LOGIC_VECTOR ; WR_REG_8 : STD_LOGIC_VECTOR ; IIC_ADDRESS_WRITE : STD_LOGIC_VECTOR ; IIC_ADDRESS_READ : STD_LOGIC_VECTOR); PORT (CLK : IN STD_LOGIC ; IIC_RST : IN STD_LOGIC ; IIC_FIN : OUT STD_LOGIC ; SCL : OUT STD_LOGIC ; SDA : INOUT STD_LOGIC ; BUS_IIC : IN STD_LOGIC_VECTOR(18 DOWNTO 0) ; IIC_DATA_OUT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ; IIC_ERROR : OUT INTEGER RANGE 0 TO 1 ); end component; CONSTANT RD_REG : STD_LOGIC_VECTOR := "001" ; CONSTANT WR_REG : STD_LOGIC_VECTOR := "010" ; CONSTANT IIC_ADDRESS_WRITE : STD_LOGIC_VECTOR := X"70" ; CONSTANT IIC_ADDRESS_READ : STD_LOGIC_VECTOR := X"71" ; signal iic_rst : std_logic ; signal iic_fin : std_logic ; signal bus_iic : std_logic_vector(18 downto 0); signal iic_data_out : std_logic_vector(7 downto 0); signal iic_error : integer range 0 to 1 ; signal iic_edo_f,iic_edo_p : integer range 0 to 4 := 0 ; signal maq_ini , maq_fin : std_logic := '0' ; signal edo_p_t , edo_f_t : integer range 0 to 6 := 0 ; signal DATA_OUT0 : std_logic_vector(7 downto 0) := "00000000"; begin REV-A (PRELIMINAR) --Librería IIC U1 : IICInterfaceRevA IIC_ADDRESS_READ ) generic map port map iic_data_out , iic_error ); ( RD_REG , WR_REG , IIC_ADDRESS_WRITE , ( CLK , iic_rst , iic_fin , SCL, SDA, bus_iic , iic_rst <= '1'; WAKE <= WAKE_SW; process(iic_edo_p, iic_fin, iic_data_out) begin if iic_edo_p = 0 then iic_edo_f <= 1; bus_iic <= (others => '0'); elsif iic_edo_p = 1 then if SWITCH = "0000" then bus_iic <= RD_REG & X"00" & X"03" ; elsif SWITCH = "0001" then bus_iic <= RD_REG & X"01" & X"03" ; elsif SWITCH = "0010" then bus_iic <= RD_REG & X"02" & X"03" ; elsif SWITCH = "0011" then bus_iic <= RD_REG & X"03" & X"03" ; elsif SWITCH = "0100" then bus_iic <= RD_REG & X"04" & X"03" ; elsif SWITCH = "0101" then bus_iic <= RD_REG & X"05" & X"03" ; elsif SWITCH = "0110" then bus_iic <= RD_REG & X"06" & X"03" ; elsif SWITCH = "0111" then bus_iic <= RD_REG & X"09" & X"03" ; elsif SWITCH = "1000" then bus_iic <= RD_REG & X"0A" & X"03" ; elsif SWITCH = "1001" then REV-A (PRELIMINAR) bus_iic <= RD_REG & X"0B" & X"03" ; elsif SWITCH = "1010" then bus_iic <= RD_REG & X"0C" & X"03" ; elsif SWITCH = "1011" then bus_iic <= RD_REG & X"0F" & X"03" ; elsif SWITCH = "1100" then bus_iic <= RD_REG & X"10" & X"03" ; elsif SWITCH = "1101" then bus_iic <= RD_REG & X"11" & X"03" ; elsif SWITCH = "1110" then bus_iic <= RD_REG & X"12" & X"03" ; else bus_iic <= RD_REG & X"15" & X"03" ; end if; if iic_fin = '1' then iic_edo_f <= 2 ; DATA_OUT0 <= iic_data_out; else iic_edo_f <= 1; end if; elsif iic_edo_p = 2 then bus_iic <= (others => '0') ; if iic_fin = '1' then iic_edo_f <= 2 ; else iic_edo_f <= 3; end if; else bus_iic <= (others => '0') ; T_OUT <= DATA_OUT0; iic_edo_f <= 0; end if; end process; process(CLK,RST) begin REV-A (PRELIMINAR) if RST = '1' then iic_edo_p <= 0; elsif rising_edge(CLK) then iic_edo_p <= iic_edo_f ; end if; end process; end Behavioral; REV-A (PRELIMINAR) Información Complementaria Información adicional sobre la TFT y Touchscreen • • http://www.newhavendisplay.com/app_notes/HX8257.pdf http://www.newhavendisplay.com/app_notes/FT5x06.pdf Información sobre la tarjeta de desarrollo ASSERTA y AVANXE así como otros productos de interés • • • www.intesc.mx [email protected] https://www.facebook.com/pages/INTESC/191791687537700?fref=ts Información sobre las aplicaciones y librerías • • http://www.intesc.mx/index.php?option=com_content&view=article&id=4&Itemid=103 http://www.intesc.mx/index.php?option=com_content&view=article&id=3&Itemid=104 REV-A (PRELIMINAR)