Manual - intesc

Anuncio
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)
Descargar