TODOPIC

Microcontroladores PIC => * PROYECTOS * => Mensaje iniciado por: groundman en 01 de Diciembre de 2016, 12:21:04

Título: TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 01 de Diciembre de 2016, 12:21:04
hola a todos.

despues de haber medio aprendido a manejar la camara OV7670.donde pongo aqui el enlace:http://www.todopic.com.ar/foros/index.php?topic=46485.0

me he decidido a aprender el funcionamiento de esta LCD TFT de 2.4". que sale por 3.50€

(http://www.4shared.com/img/ejATIW6sba/s25/158badac3e8/ZC13500-D-9-1) (http://www.4shared.com/photo/ejATIW6sba/ZC13500-D-9-1.html)
(http://www.4shared.com/img/m0vvkG0mce/s25/158bafe12f8/ZC13500-D-10-1__1_) (http://www.4shared.com/photo/m0vvkG0mce/ZC13500-D-10-1__1_.html)

Esta Lcd.por lo que he leido.ademas de la controladora Lcd .tambien tiene pantalla tactil y lector microSD incorporado

este es el datasheet de la controladora grafica:http://www.displaytech-us.com/sites/default/files/driver-ic-data-sheet/Ilitek-ILI9340.pdf


mi intencion es conectar directammente la camara OV7670 a la LCD.por supuesto que habria que confiurar la camara con el formato QVGA 320x240pixels
y configurar los registros tanto de la camara como de la LCD para adaptar las señales de sincronismo de forma compatible con la LCD.

ire poniendo los resultados de las pruebas.y aceptare cualquier sugerencia si voy por el camino equivocado.o si alguien quiere ayudar a agilizar
el desarroyo de este proyecto.tal y como hizo nuestro amigo luismh en el tema de la camara OV7670.que si no hubiera sido por el.igual todabia
estaria rompiendome la cabeza con aquel proyecto.

y es que hay un monton de circunstancias.por las que un circuito no funcione.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: KILLERJC en 01 de Diciembre de 2016, 15:45:36
Creo que lo mejor para el LCD es buscarte ya algunas librerias.. Mas que nada la inicializacion que suele ser el mayor dolor de cabeza.

Respecto a la pantalla tactil, el que tengo yo me da salida SPI, los cuales lo haces leyendo 12bits ( 2 de 8) o 8 bits segun como tenes configurado el micro ADC (ya que es un micro totalmente aparte). Luego necesitas calibrar la pantalla.

La SD usa alguna libreria y conectalo que seguro funciona.

Obviamente todo en C, ni hablar de hacerlo en ASM a esto. ( aunque la pantalla y el tactil puede hacerse )
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 01 de Diciembre de 2016, 17:14:15

si KILLERJC.lo hare todo en ASM.excepto lo de la SD.

aunque mi prioridad es el control de la LCD.cuando tenga controlado esto,ya me pondria con la parte del tactil.la SD seria algo a parte.ya que esto es algo mas compliccado.
solo porque no se C.


de momento no me ha llegado la TFT pero quiero ir adelantandome.lo mas seguro es que no halla nada en asm para esta pantalla.pero algo habra para arduino.supongo que habra
que analizar estas librerias para pasarlo a ASM.


lo que mas me gusta de este proyecto es que es muy asequible al bolsillo.y creo que va ha ser muy versatil.
con una TFT por  unos 3.50€ y la camara OV7670 por un poco menos.eso si sin FIFO.aunque mi objetivo es no usar una fifo para visualizar la imagen.ya veremos si se puede o no.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 01 de Diciembre de 2016, 17:37:25

he estado mirando el datasheet de esta pantalla.y he visto que hay dos pins llamados VSYNC y HSYNC.esto me hizo pensar la compatibilidad directa entre esta pantalla y la camara OV7670.
pero la pantalla que he pedido.las de la foto,veo que no dispone de estos pin.supongo que estaran incluidos en la propia pantalla.pero no estan soldados a la placa base.
sera porque esta pantalla esta diseñada para el Arduino UNO.

no se si se podra acceder a esta conexion.si no habria que buscar otro tipo de pantalla o desoldar esta pantalla de esa base. y hacerse otra base donde poder soldar todos los pin de la LCD.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: KILLERJC en 01 de Diciembre de 2016, 18:50:08
Citar
,veo que no dispone de estos pin.supongo que estaran incluidos en la propia pantalla.pero no estan soldados a la placa base.
sera porque esta pantalla esta diseñada para el Arduino UNO.

El driver imagino que debe estar por debajo del LCD, y no se si vale la pena desarmarlo, lo mas seguro que sea una gota negra a la cual no puedas acceder.

Por lo demas es una interfaz paralela de 16bits, es decir que tendrias 565 en RGB como maximo para enviar.

Citar
lo mas seguro es que no halla nada en asm para esta pantalla.pero algo habra para arduino.supongo que habra que analizar estas librerias para pasarlo a ASM.
Si las hay. Incluso tenia uno realizado en C que imagino iba a ser facil de entender. Parece que en algun formateado lo perdi..

PD: Si lo perdi..  :5] cerca de 1/2 mes/es renegando con ambas cosas desde 0, y lo borre sin querer, eso me paso por dejarlo justo con las librerias de TI. Y no tenerlo aparte. Ahora me quiero matar jeje.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 02 de Diciembre de 2016, 12:26:28
valla.el tiempo vale mas que el oro.lo mejor es tener una copia en la nube.este tipo de archivos no suele ocupar mucho.y te evita un disgusto.

respecto a esta LCD.he visto que tambien se vende una version donde sale un planar de muchos pins.pero sale mas cara.

(http://www.4shared.com/img/Op7fw76_ba/s25/158bfdd1d28/ili9340-2__1_) (http://www.4shared.com/photo/Op7fw76_ba/ili9340-2__1_.html)
y aqui otra mas varata: http://www.ebay.es/itm/TOP-2-4-240x320-SPI-Serial-TFT-Color-LCD-Module-Display-ILI9341-Driver-GM-/262136737704?hash=item3d08912fa8:g:hQcAAOSwLnlWnJAJ


supongo que la version preparada para arduino procede de esta pantalla.igual el planar esta soldado a la otra placa y podria desoldarse.

la cuestion es si vale la pena o no.por si es mas eficiente el control de la LCD por esos pins que estan ocultos.o usar los pins que trae esta placa preparada para arduino.
pero para eso hay que entender el funcionamiento de esta LCD.

esta LCD para arduino solo le veo 5pins de control.RST,CS,RS,WR,RD. y el bus de datos D0..D7 aparte de la alimentacion.los demas son para el control de la SD.
supongo que con estos pins tiene de sobra para enviar una imagen a la memoria interna de la LCD.pero creo que las imagenes aparecerian muy lentas en la pantalla.

por eso queria usar la conexion directa a la LCD con las señales de sincronismo VSYNC Y HREF de la OV7670.pero como ya dige.no se si se podra.




bueno me he puesto a leer el datasheet de la pantalla.y segun este se puede realizar una conexion serie SPI.pero en la LCD de arduino no veo estos pins.
por eso para enviar los datos a la LCD hay que escribir en ella de forma paralela.

estos son los pin de la correspondencia al datasheet ili9340 y la LCD preparada para arduino.

RESX   ->   LCD_RST     reset
CSX   ->   LCD_CS   chip select 
D/CX   ->   LCD_RS   command/status 
WRX   ->   LCD_WR   write 
RDX   ->   LCD_RD   read 


Esta LCD tiene 4 pin para configurar la LCD en los diferentes modos con los que puede trabajar.que son los IM3,IM2,IM1,IM0. pero estos pin no estan accesibles
por esta LCD para arduino.por eso creo que tienen un valor fijo.el cual configura la LCD en el modo 8bit.y paralelo.que seria poner IM3,IM2,IM1 y IM0 a masa.
asi que el bus SPI queda inhabilitado.




Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 22 de Enero de 2017, 13:16:13
aqui estamos de nuevo.para seguir avanzando en el estudio de las TFT.

ya recivi la TFT de 2.4" que pedi por ebay.y las primeras practicas con la conexion con un pic fueron infructuosas.por eso decidi conectarla al aurduino uno.ya que los pines son compatibles para
conectarlos a esta.estube cargandole diferentes librerias.pero no funcionaban correctamente.en una de ellas pude ver con mucha interferencia como un boton. donde se pulsaba el touch
y con la imagen invertida se apreciaba el cambio de su enfoque.pero no he profundizado mucho en esto porque mi prioridad es conectarlo a un pic.se que el fallo esta en el driver de arduino
y con esto me basta.

lo primoldiar es saber que la LCD no esta averiada.y esto ya lo he probado con un programa que le carge desde arduino para saber el numero de serie y el valor de sus registros.

me lo he descargado de aqui: http://misc.ws/2015/01/24/lcd-touch-screen-information/   

lo que hace es pintar la pantalla de color rojo.y si modificamos el valor del color tambien se puede pintar de otros colores.ademas si activamos una linea que esta comentada tambien podemos
imprimir por el puerto serie el valor de los registros de la TFT.

estos son los valores de los registros de esta TFT.de la primera imagen que puse al principio de este hilo:

Código: [Seleccionar]

Register 0x00 : 0x9320
Register 0x01 : 0x0100
Register 0x02 : 0x0700
Register 0x03 : 0x1030
Register 0x04 : 0x0000
Register 0x05 : 0x0000
Register 0x06 : 0x0000
Register 0x07 : 0x0173
Register 0x08 : 0x0202
Register 0x09 : 0x0000
Register 0x0A : 0x0000
Register 0x0B : 0x0000
Register 0x0C : 0x0000
Register 0x0D : 0x0000
Register 0x0E : 0x0000
Register 0x0F : 0x0000
Register 0x10 : 0x17B0
Register 0x11 : 0x0037
Register 0x12 : 0x0138
Register 0x13 : 0x0700
Register 0x14 : 0x0000
Register 0x15 : 0x0000
Register 0x16 : 0x0000
Register 0x17 : 0x0000
Register 0x18 : 0x0000
Register 0x19 : 0x0000
Register 0x1A : 0x0000
Register 0x1B : 0x0000
Register 0x1C : 0x0000
Register 0x1D : 0x0000
Register 0x1E : 0x0000
Register 0x1F : 0x0000
Register 0x20 : 0x0000
Register 0x21 : 0x0000
Register 0x22 : 0x0000
Register 0x23 : 0x0000
Register 0x24 : 0x0000
Register 0x25 : 0x0000
Register 0x26 : 0x0000
Register 0x27 : 0x0000
Register 0x28 : 0x0000
Register 0x29 : 0x000D
Register 0x2A : 0x0000
Register 0x2B : 0x0000
Register 0x2C : 0x0000
Register 0x2D : 0x0000
Register 0x2E : 0x0000
Register 0x2F : 0x0000
Register 0x30 : 0x0001
Register 0x31 : 0x0606
Register 0x32 : 0x0304
Register 0x33 : 0x0202
Register 0x34 : 0x0202
Register 0x35 : 0x0103
Register 0x36 : 0x011D
Register 0x37 : 0x0404
Register 0x38 : 0x0404
Register 0x39 : 0x0404
Register 0x3A : 0x0000
Register 0x3B : 0x0000
Register 0x3C : 0x0700
Register 0x3D : 0x0A1F
Register 0x3E : 0x0000
Register 0x3F : 0x0000
Register 0x40 : 0x0000
Register 0x41 : 0x0000
Register 0x42 : 0x0000
Register 0x43 : 0x0000
Register 0x44 : 0x0000
Register 0x45 : 0x0000
Register 0x46 : 0x0000
Register 0x47 : 0x0000
Register 0x48 : 0x0000
Register 0x49 : 0x0000
Register 0x4A : 0x0000
Register 0x4B : 0x0000
Register 0x4C : 0x0000
Register 0x4D : 0x0000
Register 0x4E : 0x0000
Register 0x4F : 0x0000
Register 0x50 : 0x0000
Register 0x51 : 0x00EF
Register 0x52 : 0x0000
Register 0x53 : 0x013F
Register 0x54 : 0x0000
Register 0x55 : 0x0000
Register 0x56 : 0x0000
Register 0x57 : 0x0000
Register 0x58 : 0x0000
Register 0x59 : 0x0000
Register 0x5A : 0x0000
Register 0x5B : 0x0000
Register 0x5C : 0x0000
Register 0x5D : 0x0000
Register 0x5E : 0x0000
Register 0x5F : 0x0000
Register 0x60 : 0x2700
Register 0x61 : 0x0001
Register 0x62 : 0x0000
Register 0x63 : 0x0000
Register 0x64 : 0x0000
Register 0x65 : 0x0000
Register 0x66 : 0x0000
Register 0x67 : 0x0000
Register 0x68 : 0x0000
Register 0x69 : 0x0000
Register 0x6A : 0x0000
Register 0x6B : 0x0000
Register 0x6C : 0x0000
Register 0x6D : 0x0000
Register 0x6E : 0x0000
Register 0x6F : 0x0000
Register 0x70 : 0x0000
Register 0x71 : 0x0000
Register 0x72 : 0x0000
Register 0x73 : 0x0000
Register 0x74 : 0x0000
Register 0x75 : 0x0000
Register 0x76 : 0x0000
Register 0x77 : 0x0000
Register 0x78 : 0x0000
Register 0x79 : 0x0000
Register 0x7A : 0x0000
Register 0x7B : 0x0000
Register 0x7C : 0x0000
Register 0x7D : 0x0000
Register 0x7E : 0x0000
Register 0x7F : 0x0000
Register 0x80 : 0x0000
Register 0x81 : 0x0000
Register 0x82 : 0x0000
Register 0x83 : 0x0000
Register 0x84 : 0x0000
Register 0x85 : 0x0000
Register 0x86 : 0x0000
Register 0x87 : 0x0000
Register 0x88 : 0x0000
Register 0x89 : 0x0000
Register 0x8A : 0x0000
Register 0x8B : 0x0000
Register 0x8C : 0x0000
Register 0x8D : 0x0000
Register 0x8E : 0x0000
Register 0x8F : 0x0000
Register 0x90 : 0x0010
Register 0x91 : 0x0000
Register 0x92 : 0x0000
Register 0x93 : 0x0003
Register 0x94 : 0x0000
Register 0x95 : 0x0101
Register 0x96 : 0x0000
Register 0x97 : 0x0000
Register 0x98 : 0x0000
Register 0x99 : 0x0000
Register 0x9A : 0x0000
Register 0x9B : 0x0000
Register 0x9C : 0x0000
Register 0x9D : 0x0000
Register 0x9E : 0x0000
Register 0x9F : 0x0000
Register 0xA0 : 0x0000
Register 0xA1 : 0x0000
Register 0xA2 : 0x0000
Register 0xA3 : 0x0000
Register 0xA4 : 0x0000
Register 0xA5 : 0x0000
Register 0xA6 : 0x0000
Register 0xA7 : 0x0000
Register 0xA8 : 0x0000
Register 0xA9 : 0x0000
Register 0xAA : 0x0000
Register 0xAB : 0x0000
Register 0xAC : 0x0000
Register 0xAD : 0x0000
Register 0xAE : 0x0000
Register 0xAF : 0x0000
Register 0xB0 : 0x0000
Register 0xB1 : 0x0000
Register 0xB2 : 0x0000
Register 0xB3 : 0x0000
Register 0xB4 : 0x0000
Register 0xB5 : 0x0000
Register 0xB6 : 0x0000
Register 0xB7 : 0x0000
Register 0xB8 : 0x0000
Register 0xB9 : 0x0000
Register 0xBA : 0x0000
Register 0xBB : 0x0000
Register 0xBC : 0x0000
Register 0xBD : 0x0000
Register 0xBE : 0x0000
Register 0xBF : 0x0000
Register 0xC0 : 0x0000
Register 0xC1 : 0x0000
Register 0xC2 : 0x0000
Register 0xC3 : 0x0000
Register 0xC4 : 0x0000
Register 0xC5 : 0x0000
Register 0xC6 : 0x0000
Register 0xC7 : 0x0000
Register 0xC8 : 0x0000
Register 0xC9 : 0x0000
Register 0xCA : 0x0000
Register 0xCB : 0x0000
Register 0xCC : 0x0000
Register 0xCD : 0x0000
Register 0xCE : 0x0000
Register 0xCF : 0x0000
Register 0xD0 : 0x0000
Register 0xD1 : 0x0000
Register 0xD2 : 0x0000
Register 0xD3 : 0x0000
Register 0xD4 : 0x0000
Register 0xD5 : 0x0000
Register 0xD6 : 0x0000
Register 0xD7 : 0x0000
Register 0xD8 : 0x0000
Register 0xD9 : 0x0000
Register 0xDA : 0x0000
Register 0xDB : 0x0000
Register 0xDC : 0x0000
Register 0xDD : 0x0000
Register 0xDE : 0x0000
Register 0xDF : 0x0000
Register 0xE0 : 0x0000
Register 0xE1 : 0x0000
Register 0xE2 : 0x0000
Register 0xE3 : 0x000C
Register 0xE4 : 0x1411
Register 0xE5 : 0x8000
Register 0xE6 : 0x0000
Register 0xE7 : 0x0693
Register 0xE8 : 0x200F
Register 0xE9 : 0x0000
Register 0xEA : 0x0000
Register 0xEB : 0x0000
Register 0xEC : 0x0000
Register 0xED : 0x0000
Register 0xEE : 0x0000
Register 0xEF : 0x0000
Register 0xF0 : 0x0000
Register 0xF1 : 0x0000
Register 0xF2 : 0x0000
Register 0xF3 : 0x0000
Register 0xF4 : 0x0000
Register 0xF5 : 0x0000
Register 0xF6 : 0x0000
Register 0xF7 : 0x0000
Register 0xF8 : 0x0000
Register 0xF9 : 0x0000
Register 0xFA : 0x0000
Register 0xFB : 0x0000
Register 0xFC : 0x0000
Register 0xFD : 0x0000
Register 0xFE : 0x0000
Register 0xFF : 0x0000


aunque en la laca de la TFT indica que el driver es el 9340 la realidad es que es la 9320.tal y como se indica en el registro 0x00.

esta LCD solo podemos controlarla con el puerto paralelo.D0..D7 y los pin de control RST,CD,RS,WR,RD. no puede accederse al puerto SPI ni a la interfaz RGB.donde se enecesitan los pin Vsync,Hsync y DotClk
tal y como biene montada en la PCB.

(http://www.4shared.com/img/g0csiYoNba/s25/159c6cf9ce0/IMAG2433__1_) (http://www.4shared.com/photo/g0csiYoNba/IMAG2433__1_.html)

aunque tenemos acceso a mas pin.todabia no se puede acceder a los pin SPI ni al interfaz RGB.


tenemos esta version para el acceso por SPI:

(http://www.4shared.com/img/5SSjDaDmce/s25/159c69b36d0/ili9341_spi) (http://www.4shared.com/photo/5SSjDaDmce/ili9341_spi.html)

pero si queremos tener acceso a todos los pin del controlador 9341.hay que adquirir esta version con 50pin.que cuesta unos 10€

http://www.ebay.es/itm/Color-2-4-inch-TFT-LCD-Module-Display-240x320-Serial-SPI-w-Touch-Panel-Tutorial-/302049522976?hash=item46538df520:g:YbEAAOSwgZ1Xulps

(http://www.4shared.com/img/xHw8aojLba/s25/159c6e5e400/tft24_50pin) (http://www.4shared.com/photo/xHw8aojLba/tft24_50pin.html)

podemos buscar el datasheet por esta serie: ER-TFT024-3


ya he pedido una.pero mientras espero ha recibirla estare haciendo pruebas con la que tengo.


tambien es aconsejable adquirir los conectores: FPC 50pin

http://www.ebay.es/itm/5x-FFC-FPC-50-pin-0-5mm-Pitch-Ribbon-Flat-Connector-Socket-ZIF-Bottom-Contact-/172405330441?hash=item2824289209:g:wIMAAOSwZQRYd03j




Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: elgarbe en 23 de Enero de 2017, 09:08:51
groundman, ya van varios proyectos tuyos que sigo en silencio (por falta de tiempo y ahora que me mudé por falta de lugar) este particularmente me resulta muy interesante.
Espero terminar pronto de instalar el tallercito en casa para ver si me puedo enganchar.

Saludos y exitos!
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 23 de Enero de 2017, 11:18:24
gracias elgarbe.me alegra que te llame la atencion mis proyectos.ayer ya pude leer registros de la TFT.cuando termine la llibreria para el control de esta.ya la posteare.

creo que estas TFT pueden ser de bastante utilidad para nuestros aparatitos.me molan todos estos dispositivos que se pueden hacer tantas cosas y lo baratos que son.
lo malo es el tiempo que hay que esperar para que te llegen de china.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: elgarbe en 23 de Enero de 2017, 14:14:44
Sería mucho pedir que me pases un link a una pantalla como la que elegiste, pero en aliexpress?

saludos!
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 24 de Enero de 2017, 11:22:52
si te refires a la TFT de 50pin.esa no la vi en aliexpress.estan los otros tipos que te pueden servir para practicar y es lo que te aconsejo primero.no es lo mismo romper la TFT de 3.5€
que la de 10€.

el principal motivo de adquirir la version de 50pin es para conectar la camara OV7620 directamente a la TFT.ya que el PIC no es lo suficiente rapido para gestionar las señales de la camara.
pero tampoco se si esto funcionara.por eso si quieres esperar a que pueda desarrollar el proyecto.igual te puede servir la que puse en la primera imagen.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 28 de Enero de 2017, 16:56:49

ya he logrado hacer algo con la TFT.he creado una rutinas a partir del codigo del arduino.y he podido
leer y escribir en los registros internos.y en la memoria de imagen.abajo pongo un video:


para que podamos enviar los datos a la memoria de imagen.antes hay que configurar los registros internos de la TFT.
estos son los registros que he encontrado en el ejemplo del LCD_ID_Reader.

Código: [Seleccionar]
dt 0xe5,0x80,0x00, 0x00,0x00,0x01, 0x01,0x01,0x00, 0x02,0x07,0x00, 0x03,0x10,0x30, 0x04,0x00,0x00
dt 0x08,0x02,0x02, 0x09,0x00,0x00, 0x0a,0x00,0x00, 0x0c,0x00,0x00, 0x0d,0x00,0x00, 0x0f,0x00,0x00
dt 0x10,0x00,0x00, 0x11,0x00,0x00, 0x12,0x00,0x00, 0x13,0x00,0x00, 0x10,0x17,0xb0, 0x11,0x00,0x37
dt 0x12,0x01,0x38, 0x13,0x17,0x00, 0x29,0x00,0x0d, 0x20,0x00,0x00, 0x21,0x00,0x00, 0x30,0x00,0x01
dt 0x31,0x06,0x06, 0x32,0x03,0x04, 0x33,0x02,0x02, 0x34,0x02,0x02, 0x35,0x01,0x03, 0x36,0x01,0x1d
dt 0x37,0x04,0x04, 0x38,0x04,0x04, 0x39,0x04,0x04, 0x3c,0x07,0x00, 0x3d,0x0a,0x1f, 0x50,0x00,0x00
dt 0x50,0x00,0x00, 0x51,0x00,0xef, 0x52,0x00,0x00, 0x53,0x01,0x3f, 0x60,0x27,0x00, 0x61,0x00,0x01
dt 0x6a,0x00,0x00, 0x90,0x00,0x10, 0x92,0x00,0x00, 0x93,0x00,0x03, 0x95,0x01,0x01, 0x97,0x00,0x00
dt 0x98,0x00,0x00, 0x07,0x00,0x21, 0x07,0x00,0x31, 0x07,0x01,0x73

los datos estan separados de tres en tres.el primer byte es la direccion del registro.los otros dos son el dato.
no se si esta configuracion es la adecuada para el ili9320.pero es la que me ha funcionado.

aunque de momento lo estoy puliendo.porque he enviado el color rojo y ha salido el azul.
las primeras lineas si son rojas.pero luego salen azules.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 29 de Enero de 2017, 07:52:30
sigo con las pruebas.y resulta de que sucede algo que de momento no he encontrado la solucion.

cuando configuro los registros de la TFT.la pantalla se oscurece un poco.esto tambien sucede con el arduino y no es cosa de la retroiluminacion.
y le afecta a las lineas pares o impares.no lo he comprobado.pero esto me da igual,mas bien me interesa que lo haga.
ya que cuando no lo hace.no puedo pintar la pantalla.es como si algunos registros se les quedara almacenado algun dato y la TFT se bloqueara.
solo se soluciona apagando la TFT y esperando un rato.y habeces ni aun asi.

y cuando funciona la pantalla no pinta los colores correctos.

aunque me he dado cuenta que el fallo del bloqueo se produce despues de pintar la pantalla.ya que puedo configurar los registros las veces que quiera sin bloquear la TFT.
pero en cuanto pinto la pantalla esta se bloquea.

estos son los valores de los colores:

#define   BLACK   0x0000  // Definimos los colores
#define   BLUE    0x001F  // que utilizaremos para
#define   RED     0xF800  // el texto y los elementos graficos
#define   GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0
#define WHITE   0xFFFF
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: KILLERJC en 29 de Enero de 2017, 10:24:31
No te estaras pasando en los valores de las direcciones?
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 29 de Enero de 2017, 13:54:32

he realizado las pruebas con proteus y envio 76800bytes.de todas maneras enviare don bytes menos y comprobare en la pantalla si se pintaron
esos dos ultimos pixels.

he seguido haciendo pruebas y he conseguido esto:


como estoy usando el ICD3 a la pantalla igual no le sienta bien que me pare en determinados ciclos.
seguire haciendo pruebas.lo que si he notado es que si toco el cable plano del buss de datos,las inteferencias disminuyen.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 29 de Enero de 2017, 18:05:08
KILLERJC.he comprobado lo del envio de datos y son exactamente los 320x240.ya no tengo problemas con los bloqueos.
resulta que hera fallo del ICD3.asi que he programado directamente el pic.y ya no falla.

pero cuando pinto la pantalla de rojo esta lo hace en azul y con rayas rojas.

he averiguado cual es el problema.aunque no lo he podido solucionar por el momento.

cada pixel ocupa dos bytes.y hay que enviar primero uno y luego el otro.pero entremedias hay que poner WR_LOW y WR_HI
pues resulta que no se porque.se pierde el envio de uno de los bytes o pulsos.y esto hace que se inviertan los valores
de los bytes y con ello los colores.

lo he averiguado porque si envio los dos bytes iguales los colores salen intactos.

haber si encuentro el problema.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 29 de Enero de 2017, 18:55:05

y ya esta  :-/ :-/ :-/ :-/


al final resulto que el fallo hera del pin LCD_WR de la TFT.le he puesto una resistencia de 1k a masa y todo solucionado.
el fallo no hera del ICD3.
es increible la cantidad de tiempo que se pierde buscando fallos tontos.


Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 31 de Enero de 2017, 11:55:33

bueno.voy a poner las librerias que he creado en ASM. por lo menos por lo que voy por ahora.para la visualizacion
de los colores.

porque lo siguiente que voy a hacer es capturar una imagen con la camara OV7670 y visualizarla en la TFT ili9320.

este codigo lo pongo en el programa principal para realizar la llamada a la libreria.

Código: [Seleccionar]
PRINCIPAL BANK7
call ILI9320_INI

movlw 0x55 ;direccion alta de la tabla 0x55
movwf TBLPTRH
clrf TBLPTRL ;direccion baja de la tabla 0x00
call TFT_CONFIG ;configura registros de la TFT

rep_prin movlw 0x00 ;dato para el color negro
movwf GRAM_H
movlw 0x00
movwf GRAM_L
call lcdFillScreen
movlw 0x00 ;dato para el color azul
movwf GRAM_H
movlw 0x1f
movwf GRAM_L
call lcdFillScreen
movlw 0xf8 ;dato para el color rojo
movwf GRAM_H
movlw 0x00
movwf GRAM_L
call lcdFillScreen
movlw 0x07 ;dato para el color verde
movwf GRAM_H
movlw 0xe0
movwf GRAM_L
call lcdFillScreen
movlw 0x07 ;dato para el color  cyan
movwf GRAM_H
movlw 0xff
movwf GRAM_L
call lcdFillScreen
movlw 0xf8 ;dato para el color magneta
movwf GRAM_H
movlw 0x1f
movwf GRAM_L
call lcdFillScreen
movlw 0xff ;dato para el color amarillo
movwf GRAM_H
movlw 0xe0
movwf GRAM_L
call lcdFillScreen
movlw 0xff ;dato para el color banco
movwf GRAM_H
movlw 0xff
movwf GRAM_L
call lcdFillScreen

goto rep_prin



y esta es la libreria para el control de la TFT

Código: [Seleccionar]
CBLOCK ILI9340_VAR

CONT_PIXL1
CONT_PIXL2
CONT_PIXL3

TFT_DIR_H
TFT_DIR_L
TFT_DAT_H
TFT_DAT_L

FLAGS_TFT
GRAM_H
GRAM_L

ENDC


#define TFT_CONF_9320     0X5500  ;direccion de hubicacion de tabla



#define     RS_LO_TFT bcf LATE,0 ;read command
#define     RS_HI_TFT bsf LATE,0 ;write command
#define     CS_LO_TFT bcf LATE,1 ;habilta chip
#define     CS_HI_TFT bsf LATE,1 ;deshabilita chip
#define     WR_LO_TFT bcf LATE,4 ;write low
#define     WR_HI_TFT bsf LATE,4 ;write hi
#define     RD_LO_TFT bcf LATE,5 ;read low
#define     RD_HI_TFT bsf LATE,5 ;read hi
#define     RST_LO bcf LATE,6 ;reset activo a nivel bajo
#define     RST_HI bsf LATE,6

;*********************************************************ILI9320_INI ***************************************************************
;inicializa la TFT
ILI9320_INI bcf TRISE,0 ;RS-D/C
bcf TRISE,1 ;CS
bcf TRISE,4 ;WR
bcf TRISE,5 ;RD
bcf TRISE,6

bsf LATE,0
bsf LATE,1
bsf LATE,4
bsf LATE,5
bsf LATE,6
call RST_TFT
movlw .89 ;500ms
call retardo_s
return


;**************************************************************** RST_TFT ********************************************************
;reset de la TFT
RST_TFT RST_LO
movlw .89 ;500ms
call retardo_s
RST_HI
clrf TFT_DAT_H
clrf TFT_DAT_L
call lcdWriteData
call lcdWriteData
call lcdWriteData
call lcdWriteData
return





;*************************************************************** lcdWriteData ********************************************************
;escribir dato
lcdWriteData clrf TRISH ;puerto como salidas
CS_LO_TFT ;habilita chip
RS_HI_TFT ;modo datos
RD_HI_TFT ;lectura hi
WR_HI_TFT ;escritura hi
movff TFT_DAT_H,LATH ;manda el dato al puerto
WR_LO_TFT ;escritura low
movlw .20 ;10us
call retardo_us
WR_HI_TFT ;escritura hi
movff TFT_DAT_L,LATH ;manda el datos al puerto
WR_LO_TFT ;escritura low
movlw .20 ;10us
call retardo_us
WR_HI_TFT ;escritura hi
CS_HI_TFT ;inhabilita chip
return

;************************************************************* lcdReadData ************************************************************
;leer dato
lcdReadData setf TRISH ;puerto como entradas
CS_LO_TFT ;habilita chip
RS_HI_TFT ;modo datos
RD_HI_TFT ;lectura hi
WR_HI_TFT ;escritura hi
 
RD_LO_TFT ;lectura low 
movlw .20 ;10us
call retardo_us
movff PORTH,TFT_DAT_H ;lee dato del puerto y pasalo al registro
RD_HI_TFT ;lectura hi
movlw .20 ;10us
call retardo_us
RD_LO_TFT ;lectura low
movlw .20 ;10us
call retardo_us
movff PORTH,TFT_DAT_L ;lee dato del puerto y pasalo al registro
RD_HI_TFT ;lectura hi
CS_HI_TFT ;inhabilita chip
return

;************************************************************ lcdWriteCommand *******************************************************
;escribir comando
lcdWriteCommand clrf TRISH ;puerto como salidas
CS_LO_TFT ;habilita chip
RS_LO_TFT ;modo comandos
RD_HI_TFT ;lectura hi
WR_HI_TFT ;escritura hi

movff TFT_DIR_H,LATH ;manda el dato de direccion al puerto
WR_LO_TFT ;escritura low
movlw .20 ;10us
call retardo_us
WR_HI_TFT ;escritura hi

movff TFT_DIR_L,LATH ;manda el datod de direccion al puerto
WR_LO_TFT ;escritura low
movlw .20 ;10us
call retardo_us
WR_HI_TFT ;escritura hi
CS_HI_TFT ;inhabilita chip
return

;******************************************************** lcdWriteRegister *******************************************************
;escribir en registro
lcdWriteRegister

call lcdWriteCommand
call lcdWriteData
return
;******************************************************** lcdReadRegister ********************************************************

lcdReadRegister ;leer de un registro
;introducir en BYTE_2 la direccion del registro. Los datos son introducidos en TFT_DAT_H y TFT_DAT_L
call lcdWriteCommand
call lcdReadData
return

;********************************************************** lcdReadID ***********************************************************
;lectura de la version de la LCD. Los datos son introducidos en TFT_DAT_H y TFT_DAT_L
lcdReadID movlw 0x00 ;siempre a cero
movwf TFT_DIR_H
movlw 0x00 ;numero del registro a gestionar
movwf TFT_DIR_L
call lcdReadRegister ;lee dato del registro
return



;********************************************************** lcdFillScrreen *******************************************************
;envia datos a la RAM grafica
lcdFillScreen clrf TFT_DIR_H
movlw 0x20 ;
movwf TFT_DIR_L
clrf TFT_DAT_H
clrf TFT_DAT_L
call lcdWriteRegister ;pon a cero el registro de direccionamiento de la GRAM Horizntal registro 0x0020
incf TFT_DIR_L,F
call lcdWriteRegister ;pon a cero el registro de direccionamiento de la GRAM Vertical registro 0x0021
incf TFT_DIR_L,F
call lcdWriteCommand ;comando de escritura en la GRAM 0x0022
 
CS_LO_TFT ;habilita chip
RS_HI_TFT ;modo datos
RD_HI_TFT ;lectura hi
WR_HI_TFT ;escritura hi
 
clrf TRISH ;puerto como salidas
 
;valores para el envio de 320x240 bytes =76800 bytes
movlw .2
movwf CONT_PIXL3
movlw .44
movwf CONT_PIXL2
movlw .255
movwf CONT_PIXL1

bcf FLAGS_TFT,0
rep_fill movff GRAM_H,LATH ;manda el dato al puerto
WR_LO_TFT ;escritura low
movlw .20 ;10us
call retardo_us
WR_HI_TFT ;escritura hi
movff GRAM_L,LATH ;manda el dato al puerto
WR_LO_TFT ;write low
movlw .20 ;10us
call retardo_us
WR_HI_TFT ;write hi


btfsc FLAGS_TFT,0
goto exit_fill

;rutina de contage para el envio de datos
decfsz CONT_PIXL1
goto rep_fill
decfsz CONT_PIXL2
goto rep_fill
decfsz CONT_PIXL3
goto rep_fill
bsf FLAGS_TFT,0 ;un byte mas de contage
goto rep_fill
exit_fill CS_HI_TFT ;inhabilita chip
setf TRISH ;puerto como entrada
return




;****************************************************** TFT_CONFIG ********************************************************************
;configura los registros de la TFT
TFT_CONFIG tblrd*+ ;incrementa puntero de tabla antes de su lectura
movlw 0xff ;byte de fin de lectura de tabla
cpfseq TABLAT ;coprueba si el byte coincide con el valor 0xff
goto tft_dat_tab
return ;retorna si se encontro el byte de fin de tabla(0xff)
tft_dat_tab movff TABLAT,TFT_DIR_L ;carga en el registro de direccion TFT el valor leido de la tabla.
call lcdWriteCommand ;envia comando a la pantalla TFT
tblrd*+ ;incrementa puntero de tabla antes de su lectura
tblrd*+ ;incrementa puntero de tabla antes de su lectura
movff TABLAT,TFT_DAT_H ;carga el valor leido de la tabla byte alto
tblrd*+ ;incrementa puntero de tabla antes de su lectura
tblrd*+ ;incrementa puntero de tabla antes de su lectura
movff TABLAT,TFT_DAT_L ;carga el valor leido de la tabla byte bajo

call lcdWriteData ;envia el dato
movlw .20 ;20us
call retardo_us
tblrd*+ ;incrementa puntero de tabla antes de su lectura
goto TFT_CONFIG ;repite busqueda de bytes en tabla mientras haya datos que leer




ORG TFT_CONF_9320 ;configuracion de la pantalla TFT (1º byte=direccion) (2º y 3º dato de 16bit)

;configuracion de los registros de la ili9320
dt 0xe5,0x80,0x00, 0x00,0x00,0x01, 0x01,0x01,0x00, 0x02,0x07,0x00, 0x03,0x10,0x30, 0x04,0x00,0x00
dt 0x08,0x02,0x02, 0x09,0x00,0x00, 0x0a,0x00,0x00, 0x0c,0x00,0x00, 0x0d,0x00,0x00, 0x0f,0x00,0x00
dt 0x10,0x00,0x00, 0x11,0x00,0x00, 0x12,0x00,0x00, 0x13,0x00,0x00, 0x10,0x17,0xb0, 0x11,0x00,0x37
dt 0x12,0x01,0x38, 0x13,0x17,0x00, 0x29,0x00,0x0d, 0x20,0x00,0x00, 0x21,0x00,0x00, 0x30,0x00,0x01
dt 0x31,0x06,0x06, 0x32,0x03,0x04, 0x33,0x02,0x02, 0x34,0x02,0x02, 0x35,0x01,0x03, 0x36,0x01,0x1d
dt 0x37,0x04,0x04, 0x38,0x04,0x04, 0x39,0x04,0x04, 0x3c,0x07,0x00, 0x3d,0x0a,0x1f, 0x50,0x00,0x00
dt 0x50,0x00,0x00, 0x51,0x00,0xef, 0x52,0x00,0x00, 0x53,0x01,0x3f, 0x60,0x27,0x00, 0x61,0x00,0x01
dt 0x6a,0x00,0x00, 0x90,0x00,0x10, 0x92,0x00,0x00, 0x93,0x00,0x03, 0x95,0x01,0x01, 0x97,0x00,0x00
dt 0x98,0x00,0x00, 0x07,0x00,0x21, 0x07,0x00,0x31, 0x07,0x01,0x73
dt 0xff ;fin de tabla

   
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 05 de Febrero de 2017, 09:47:23

mientras me llega la TFT de 50pin para visuaizar una imagen de 30FPS.voy a realizar varios experimentos y ver los resultados.
lo primero que he hecho es enviar una imagen por la usart.he usado una velocidad de 256.000bps y la imagen ha pasado sin ningun tipo de interferencia
aun siendo una velocidad tan elevada.ademas he configurado la TFT para que reciba la imagen en horizontal.

aqui muestro un video:


antes de esto intente pasar la imagen de las barras de colores desde la FIFO de la camara OV7670 a la TFT.pero todabia no he encontrado la configuracion
correcta de los registros de la camara y la imagen no es compatible con la forma de recibir los datos la TFT.por eso he tenido que editar a mano el archivo.

en parte me esta viniendo bien porque me da una idea de como funcionan.ahora intentare configurar la camara para que me entregue una imagen RGB QVGA
que creo que es la correcta para visualizarla en la TFT.

en esta imagen pongo los datos que corresponden a las barras de colores:

(http://www.4shared.com/img/25A-gbcvba/s25/15a0e55f230/barras_tft24) (http://www.4shared.com/photo/25A-gbcvba/barras_tft24.html)

como puede apreciarse los prmeros datos son 640bytes con el valor 0xff que corresponde a la primera linea de la barra de color blanco
como la imagen es de 320x240 y se esta visualizando en horizontal.y cada pixel ocupa 2 bytes.la primera linea de la barra blanca tiene 80bytes.

eso quiere decir que la primera linea horizontal de 320pixel contiene 640 bytes.que dibidida en 8 barras corresponde a los 80bytes de cada color.
como ya indique en otra respuesta estos son los codigos de color de la TFT en el formato que bamos a trabajar.RGB 565.

en la imagen puede notarse como se empieza con los valores 0xffff del blanco,0x07ff del cyan,0xfe00 del amarillo.ya asi sucesivamente hasta el negro 0x0000
hasta que se completa la primera linea horizontal de la imagen.luego empieza con el 0xffff blanco.hasta completar las 240lineas horizontales.

#define   BLACK   0x0000  // Definimos los colores
#define   BLUE    0x001F  // que utilizaremos para
#define   RED     0xF800  // el texto y los elementos graficos
#define   GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0
#define WHITE   0xFFFF

adjunto el archivo de imagen que he creado.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 05 de Febrero de 2017, 18:36:22

la TFT me esta ando bastantes problemas de bloqueos.no estoy seguro de que es.he probado con otra TFT que pedi por internet.practicamente son iguales.pero no funciona en mi proyecto.
la primera TFT que si funciona.la pedi como una ili9340.pero en realidad es una ili9320.y por eso me funciona con la libreria que he creado a partir de
un codigo de arduino.

la TFT que no me funciona.la segunda que compre.le he sacado estos datos con el arduino uno.aunque no me hace el pintado de la pantalla.tendre que hacer otro driver para
que mi proyecto sea compatible para varias TFTs.ya que cuando compremos por internet es facil que no nos manden lo que queremos.

Código: [Seleccionar]
Initializing LCD...
Reading ID...0x0154
Filling the screen...
Done filling...
If your screen filled red, please report it at http://misc.ws/lcd_information
There is currently no known working library.
Register 0x00 : 0x0154
Register 0x01 : 0x21E8
Register 0x02 : 0x0100
Register 0x03 : 0xF0F0
Register 0x04 : 0x0000
Register 0x05 : 0x0000
Register 0x06 : 0x0000
Register 0x07 : 0x0000
Register 0x08 : 0x08F8
Register 0x09 : 0x001E
Register 0x0A : 0x0000
Register 0x0B : 0x1100
Register 0x0C : 0xFFF0
Register 0x0D : 0x0000
Register 0x0E : 0x0000
Register 0x0F : 0x0FFF
Register 0x10 : 0x8800
Register 0x11 : 0x0F3B
Register 0x12 : 0x3101
Register 0x13 : 0xF0DF
Register 0x14 : 0x667F
Register 0x15 : 0x0000
Register 0x16 : 0x0000
Register 0x17 : 0x0000
Register 0x18 : 0x0000
Register 0x19 : 0x0000
Register 0x1A : 0x0000
Register 0x1B : 0x0000
Register 0x1C : 0x0000
Register 0x1D : 0x0000
Register 0x1E : 0x0000
Register 0x1F : 0x0000
Register 0x20 : 0x0000
Register 0x21 : 0x0000
Register 0x22 : 0x0000
Register 0x23 : 0x0000
Register 0x24 : 0x0000
Register 0x25 : 0x0000
Register 0x26 : 0x0000
Register 0x27 : 0x0000
Register 0x28 : 0xFFFF
Register 0x29 : 0x0000
Register 0x2A : 0x0000
Register 0x2B : 0x0000
Register 0x2C : 0x0000
Register 0x2D : 0x0000
Register 0x2E : 0x0000
Register 0x2F : 0x0000
Register 0x30 : 0x0000
Register 0x31 : 0xFF3F
Register 0x32 : 0x0000
Register 0x33 : 0x0000
Register 0x34 : 0xFF3F
Register 0x35 : 0x0000
Register 0x36 : 0x00EF
Register 0x37 : 0x0000
Register 0x38 : 0xFF3F
Register 0x39 : 0x0000
Register 0x3A : 0x0000
Register 0x3B : 0x0000
Register 0x3C : 0x0000
Register 0x3D : 0x0000
Register 0x3E : 0x0000
Register 0x3F : 0x0000
Register 0x40 : 0x0000
Register 0x41 : 0x0000
Register 0x42 : 0x004A
Register 0x43 : 0x0022
Register 0x44 : 0x0000
Register 0x45 : 0x0000
Register 0x46 : 0x0000
Register 0x47 : 0x0000
Register 0x48 : 0xFFFF
Register 0x49 : 0x0000
Register 0x4A : 0x0000
Register 0x4B : 0x0000
Register 0x4C : 0x0000
Register 0x4D : 0x0000
Register 0x4E : 0x0000
Register 0x4F : 0x0000
Register 0x50 : 0x0000
Register 0x51 : 0xFF00
Register 0x52 : 0xFA03
Register 0x53 : 0x0300
Register 0x54 : 0xFC05
Register 0x55 : 0xFF00
Register 0x56 : 0xFF00
Register 0x57 : 0x0003
Register 0x58 : 0xFF07
Register 0x59 : 0x07FF
Register 0x5A : 0x0000
Register 0x5B : 0x0000
Register 0x5C : 0x0000
Register 0x5D : 0x0000
Register 0x5E : 0x0000
Register 0x5F : 0x0000
Register 0x60 : 0x0000
Register 0x61 : 0x0000
Register 0x62 : 0x0000
Register 0x63 : 0x0000
Register 0x64 : 0x0000
Register 0x65 : 0x0000
Register 0x66 : 0x0000
Register 0x67 : 0x0000
Register 0x68 : 0x0000
Register 0x69 : 0x0000
Register 0x6A : 0x0000
Register 0x6B : 0x0000
Register 0x6C : 0x0000
Register 0x6D : 0x0000
Register 0x6E : 0x0000
Register 0x6F : 0x0000
Register 0x70 : 0x0000
Register 0x71 : 0x0000
Register 0x72 : 0x0000
Register 0x73 : 0x0000
Register 0x74 : 0x0000
Register 0x75 : 0x0000
Register 0x76 : 0x0000
Register 0x77 : 0x0000
Register 0x78 : 0x0000
Register 0x79 : 0x0000
Register 0x7A : 0x0000
Register 0x7B : 0x0000
Register 0x7C : 0x0000
Register 0x7D : 0x0000
Register 0x7E : 0x0000
Register 0x7F : 0x0000
Register 0x80 : 0x8D8D
Register 0x81 : 0x0FF0
Register 0x82 : 0x0000
Register 0x83 : 0x0000
Register 0x84 : 0x0000
Register 0x85 : 0x0000
Register 0x86 : 0x0000
Register 0x87 : 0x0000
Register 0x88 : 0x0000
Register 0x89 : 0x0000
Register 0x8A : 0x0000
Register 0x8B : 0x0000
Register 0x8C : 0x0000
Register 0x8D : 0x0000
Register 0x8E : 0x0000
Register 0x8F : 0x0000
Register 0x90 : 0x0000
Register 0x91 : 0x1C02
Register 0x92 : 0x0010
Register 0x93 : 0x0000
Register 0x94 : 0x0000
Register 0x95 : 0x0000
Register 0x96 : 0x0000
Register 0x97 : 0x0000
Register 0x98 : 0x0000
Register 0x99 : 0x0000
Register 0x9A : 0x0000
Register 0x9B : 0x0000
Register 0x9C : 0x0000
Register 0x9D : 0x0000
Register 0x9E : 0x0000
Register 0x9F : 0x0000
Register 0xA0 : 0x0000
Register 0xA1 : 0x0000
Register 0xA2 : 0x0000
Register 0xA3 : 0x0000
Register 0xA4 : 0x0000
Register 0xA5 : 0x0000
Register 0xA6 : 0x0000
Register 0xA7 : 0x0000
Register 0xA8 : 0x0000
Register 0xA9 : 0x0000
Register 0xAA : 0x0000
Register 0xAB : 0x0000
Register 0xAC : 0x0000
Register 0xAD : 0x0000
Register 0xAE : 0x0000
Register 0xAF : 0x0000
Register 0xB0 : 0x0000
Register 0xB1 : 0x0000
Register 0xB2 : 0x0000
Register 0xB3 : 0x0000
Register 0xB4 : 0x0000
Register 0xB5 : 0x0000
Register 0xB6 : 0x0000
Register 0xB7 : 0x0000
Register 0xB8 : 0x0000
Register 0xB9 : 0x0000
Register 0xBA : 0x0000
Register 0xBB : 0x0000
Register 0xBC : 0x0000
Register 0xBD : 0x0000
Register 0xBE : 0x0000
Register 0xBF : 0x0000
Register 0xC0 : 0x0000
Register 0xC1 : 0x0000
Register 0xC2 : 0x0000
Register 0xC3 : 0x0000
Register 0xC4 : 0x0000
Register 0xC5 : 0x0000
Register 0xC6 : 0x0000
Register 0xC7 : 0x0000
Register 0xC8 : 0x0000
Register 0xC9 : 0x0000
Register 0xCA : 0x0000
Register 0xCB : 0x0000
Register 0xCC : 0x0000
Register 0xCD : 0x0000
Register 0xCE : 0x0000
Register 0xCF : 0x0000
Register 0xD0 : 0x0000
Register 0xD1 : 0x0000
Register 0xD2 : 0x0000
Register 0xD3 : 0x0000
Register 0xD4 : 0x0000
Register 0xD5 : 0x0000
Register 0xD6 : 0x0000
Register 0xD7 : 0x0000
Register 0xD8 : 0x0000
Register 0xD9 : 0x0000
Register 0xDA : 0x0000
Register 0xDB : 0x0000
Register 0xDC : 0x0000
Register 0xDD : 0x0000
Register 0xDE : 0x0000
Register 0xDF : 0x0000
Register 0xE0 : 0x0000
Register 0xE1 : 0x0000
Register 0xE2 : 0x0000
Register 0xE3 : 0x0000
Register 0xE4 : 0x0000
Register 0xE5 : 0x0000
Register 0xE6 : 0x0000
Register 0xE7 : 0x0000
Register 0xE8 : 0x0000
Register 0xE9 : 0x0000
Register 0xEA : 0x0000
Register 0xEB : 0x0000
Register 0xEC : 0x0000
Register 0xED : 0x0000
Register 0xEE : 0x0000
Register 0xEF : 0x0000
Register 0xF0 : 0x0000
Register 0xF1 : 0x0000
Register 0xF2 : 0x0000
Register 0xF3 : 0x0000
Register 0xF4 : 0x0000
Register 0xF5 : 0x0000
Register 0xF6 : 0x0000
Register 0xF7 : 0x0000
Register 0xF8 : 0x0000
Register 0xF9 : 0x0000
Register 0xFA : 0x0000
Register 0xFB : 0x0000
Register 0xFC : 0x0000
Register 0xFD : 0x0000
Register 0xFE : 0x0000
Register 0xFF : 0x0000

Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 18 de Febrero de 2017, 14:36:10
bueno amigos.me acaba de llegar otra TFT que pedi por internet.de las que estan preparadas para arduino.es esta:

(http://www.4shared.com/img/EIHt7nZGce/s25/15a52272308/IMAG2447) (http://www.4shared.com/photo/EIHt7nZGce/IMAG2447.html)

puede notarse que es diferente a las que compre al principio.esta tiene el conector plano en la parte trasera y es de 35pin.aunque el conector es mas pequeño que otros que he visto.
en este caso el chip grafico es un ili9325.lo he probado en mi proyecto con pic y con el driver que he confeccionado para la TFT 9320.y aunque si escribe en pantalla,lo hace con muchos
errores.que no es el cas de la 9320 que si que dibuja bien.

yo le hechaba la culpa a la TFT que pudira venir estropeada.pero esto es lo que sale con el arduino:

(http://www.4shared.com/img/V1U7nnDvce/s25/15a52274a18/IMAG2448) (http://www.4shared.com/photo/V1U7nnDvce/IMAG2448.html)
asi que no esta estropeada.solo que los drivers no son del todo compatibles.esta LCD 9325 me va perfecta con el arduino.cosa que no puedo decir del 9320 y la 0154 de samsung.

todo esto me da a entender de que la proxima vez que compre pantallas voy a tener que estar muy atento al tipo de controlador grafico a adquirir.y lo mas seguro es que los chinos
se equivoquen vastantes veces.asi que habra que insistir con un mensage el tipo de driver que usa la pantalla que ballamos  a comprar.y tener el arduino uno para hacer la prueba
al instante antes de votar.

de momento voy a intentar averiguar porque se ve mal la ili9325 y ya vere por que pantalla me decantare.o si soy capaz de hacerlas andar todas.que seria lo ideal.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: Pinolillo16 en 19 de Febrero de 2017, 18:10:45
Groundman muchísimas gracias por tus aportes, en verdad son muy buenos, al igual que elgarbe los he seguido un poco, debido al tiempo del trabajo no he podido hacer algo para aportar, pero lo de la cámara y estás TFT es una excelente idea, que traía en mente pero sin Arduino, no soy muy bueno en asm sin embargo también es casi el único que manejo, se que es una buena friega realizar todo en asm pero al final vale mucho la pena, no se si sería mucho pedirte los links de compra de las pantallas en aliexpress y el diagrama de conexión al pic para seguir tu proyecto de cerca y colaborar en lo poco que pueda
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 20 de Febrero de 2017, 18:26:03
hola pinolillo16.aqui hay una en ebay por 3,54€

 http://www.ebay.es/itm/1PCS-2-4-TFT-LCD-Shield-Touch-Panel-Module-TF-Micro-SD-For-Arduino-UNO-R3-/191796911962?hash=item2ca7fc9f5a:g:l6sAAOSwnLdWsAZW

para empezar es la mejor opcion.pero te recomiendo que le preguntes al vendedor que driver tiene.asegurate que es el ili9325.ya que es el que funciona con arduino.
y para el que estoy realizando el software en asm.

si no.solo tienes que poner tft 2.4" y te saldran diferentes vendedores.yo he pedido 3 de estas y todas han venido diferentes.
te recomiendo que adquieras el arduino UNO.para asegurarte de que la pantalla que compres funcione con el driver ili9325.ademas con este y un ejemplo que hay.puedes extraer informacion
de la pantalla.como por ejemplo el driver que usa.

cuando lo tengas ya me pides la informacion que desees y la pongo aqui.aunque practicamente todo lo estoy subiendo a este hilo.

el pic que estoy usando es el 18F87K22.puedes usar otro.pero tendras que cambiar la configuracion de los puertos.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 27 de Febrero de 2017, 11:16:03

he seguido con las pruebas.intentando pasar los datos directamente de la camara a la TFT.y he conseguido transferir
la imagen de las barras de colores.pero los colores no se corresponde a lo que deberia salir.
creo que el problema es la configuracion RGB.he configurado la camara al mismo formato que he puesto en la TFT. RGB 565

en la TFT esta bien configurada porque es lo mismo que puse en una de las respuestas anteriores.pero la camara
aunque la he configurado como salida de datos RGB 565.la verdad es que los valores no cuadran.tendre que profundizar
en el tema.

respecto al fallo que tengo con los bloqueos de la TFT.me he dado cuenta de que al escribir en la GRAM interna.
por algun motivo se me estan sobreescribiendo datos en los registros de la TFT.y eso lo pone todo patas arriva.
pero ya lo investigare.sera algo mal del codigo.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 23 de Julio de 2017, 10:34:28
hola de nuevo.acabo de retomar este proyecto para el manejo de una TFT.

al final me decante por la ILI9341.ya que tenemos la posibilidad de hacer pruebas con el proteus.el tema lo tengo bastante avanzado.y creo que pronto podre terminar el calibre
optico.es decir tomar medidas con la camara OV7670.

pero se me esta dando unos problemas con la TFT que me esta haciendo perder el poco tiempo de que dispongo.el problema ya lo tuve entes y crei haberlo solucionado.
pero nada mas lejos.

la cosa es que la TFT se me queda bloqueada cuando al rellenar la memoria interna para visualizar la imagen,cuando me paso o me quedo corto en la escritura.
como el autoincremento se realiza automaticamente.pues igual no le sienta bien que lo interrumpamos.

he puesto un hardreset y un softreset. pero nada se sigue bloqueando.si hago un barrido de la pantalla continuamente sin equivocarme en los datos.va perfecta.
puedo apagarla y encenderla las veces que quiera.incluso resetear el pic.pero en las practicas esto es un problemazo.

la unica manera de desbloquear la TFT es quiterle la alimentacion y dejandola un rato para que se borren los datos.y aveces hay que esperar muchisimo tiempo.

no se si ha alguien le ha ocurrido esto.como se podria reiniciar la pantalla correctamente?
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: KILLERJC en 23 de Julio de 2017, 11:16:44
La verdad que ni idea, al menos con la unica que use que fue una SSD1289 nunca me sucedio lo que dijiste. Es como si algo quedara mal configurado dentro de la RAM,
de todas formas dado el rango definido uno va a cambiar todo lo que designe en ese rango. Y esto nunca deberia suceder:

Citar
cuando me paso o me quedo corto en la escritura.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 23 de Julio de 2017, 14:16:20
bueno.por ahora intentare no sobrepasar la flash de la tft por si acaso.

estoy configurando la TFT para recibir los datos de la FIFO de la camara OV7670.he configurado la TFT como RGB a 320x240 en horizontal.y por las pruebas que he realizado
imprimo bien los colores.

F800 para el rojo
07E0 para el verde
001F para el azul

la configuracion que encontre para la camara era RAW BAYER 640x480. pero esta configuracion no me sirve.asi que tengo que ponerla a RGB 565 320x240.
he estado configurando los registros.pero por ahora no sale lo que yo quiero.

tambien estoy interesado en configurar la camara para sacar una imagen en B/W eso si lo hize una vez.pero no se com podria pasar un valor de escala de grises 00h-ffh
a un valor RGB y que saliera la imagen en blanco y negro.


Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: KILLERJC en 23 de Julio de 2017, 14:39:55
tambien estoy interesado en configurar la camara para sacar una imagen en B/W eso si lo hize una vez.pero no se com podria pasar un valor de escala de grises 00h-ffh
a un valor RGB y que saliera la imagen en blanco y negro.

La forma mas simple de representar una escala de grises en un RGB es poner cada uno de los valores con el mismo valor en gris, es decir

Si tenes 50 en gris deberias tener RGB(50,50,50)
En este caso deberias primero recortar el valor a 6 y 5 bits de los mas significantes para meterlos en el RGB 565.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 23 de Julio de 2017, 14:50:39
acabo de probarlo en el proteus y asi es. para compensar el porcentage 565  lo que he hecho es mantener un nivel el valor del verde y modificar los demas.

es decir. RGB  00000.000001.00000  como el maximo nivel negro y 11111.111111.11111 para el blanco. 

un valor de gris medio seria 01111.011111.01111 =  7B EF.

ahora veremos a ver como configuro la camara.creo que primero me metere con el YUV que lo hice funcionar una vez.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 27 de Julio de 2017, 10:08:09
hola.he estado comprobando el codigo y resulta que me estaba pasando al enviar los bytes a la TFT.
y es porque confie en proteus.y alli la imagen de l ili9341 se rellenaba bien.pero cuando puse
un contador.me di cuenta de que me estaba pasando de bytes.

ahora he modificado correctamente el codigo y por el momento no se me bloquea la TFT.espero que fuera ese el fallo.

aunque tambien se me ha dado el caso de que la TFT deja de recibir datos.como muestra el video.
y lo he solucionado con una resistencia pull-up a 3.3v conectada al pin D/C.este fin de semana empezare
de nuevo con la camara.haber si puedo traspasar la imagen a la TFT.aunque tengo que realizar varias pruebas
ya que la configuracion RGB a 320x240 no la veo por internet.y es bastante complicado saber que hacer
con los registros de la camara.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 28 de Julio de 2017, 10:37:48

aqui pongo una imagen del traspaso de los datos de la TFT en el modo de barras de colores activadas.

(https://www.4shared.com/img/xw_PVB2Sca/s25/15d8964add8/IMG_20170727_224129) (https://www.4shared.com/photo/xw_PVB2Sca/IMG_20170727_224129.html)

deberia de salir algo asi:

(https://www.4shared.com/img/N9DprSapba/s25/158a2c2d7a0/imag142) (https://www.4shared.com/photo/N9DprSapba/imag142.html)

pero por el momento sigo haciendo pruebas.espero no tardar demasiado.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 29 de Julio de 2017, 10:24:12

pues aqui estamos de nuevo intentando hacer funcionar esto.y sin terminar con los problemas.

ahora resulta que de nuevo la TFT me esta fallando.y funciona cuando le da la gana.asi que me he cansado de buscar
un fallo que creia que hera del software.y parece ser de harware.

por los datos que tengo la TFT aunque este alimentada por 5v y 3.3v la logica de las salidas parecen estar trabajando a 2.8v
ese es el voltage que aparecen en los pin de esta.

el pic que uso trabaja a 3.3v asi que le he hechado mano al osciloscopio para ver que es lo que esta pasando.y me he dado cuenta
de que hay algun tipo de problema con el pin D0.

por la pruebas que he realizado los demas pin no tengo problemas con la adaptacion de señales.
el principal pin que es afectado es el RS.la tension de este pin cae a 2.8v si el pin D0 lo pongo a cero.es algo muy extraño.

estas LCDs funcionan bien con el arduino.y es posible que sea asi porque creo que las E/S del uC que usa pueden configurarse
como OPENDRIVE.cosa que el pic que uso no lo puede hacer para los puertos que usa.a excepcion de algunos modulos internos.

creo que voy a tener que usar algun chip para adaptar las E/S para solucionar este problema.a no ser que sea otra cosa.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: KILLERJC en 29 de Julio de 2017, 10:52:36
el principal pin que es afectado es el RS.la tension de este pin cae a 2.8v si el pin D0 lo pongo a cero.es algo muy extraño.

estas LCDs funcionan bien con el arduino.y es posible que sea asi porque creo que las E/S del uC que usa pueden configurarse
como OPENDRIVE.cosa que el pic que uso no lo puede hacer para los puertos que usa.a excepcion de algunos modulos internos.

Te referis a open colector, pero el pin RS es una entrada si no mal recuerdo, no oficia jamas de salida. Por lo tanto no le serviria de nada poseer un driver open colector como si fuera una salida del lado del LCD. Para mi que ahi existe otro problema.
Ademas si fuera open-colector tu PIC y el LCD tuviera una pull-up, entonces cuando vos pongas un 0 deberia irse a 0 si o si.
Lo raro es que si tenes un consumo "extra" cuando pongas un 1 estarias cerca de Vcc pero no llegarias, y cuando pongas un 0, estarias cerca de Vss pero no llegarias. Y aca pasa todo lo contrario. Veo que todas las entradas pasan por un 74HC245, lo cual si el problema esta, se encuentra ahi.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 29 de Julio de 2017, 14:43:08

he estado haciendo mas pruebas.y resulta que la bajada de tension que se produce en el pin RS de 3.3v a 2.48v
se produce al poner RD a 0. aunque CS este deshabilitado.

dado a que la TFT funcionaba.y ahora no.me preguntaba si me la habre cargado.pero he encontrado un ejemplo en arduino uno
y la imagen sale perfectamente.ademas he comprobado el voltage de los niveles logicos y estan a 5V

asi que la TFT funciona bien con este voltage.realizare unas pruebas con esta tension haber si es ese el problema.
si no.quizas sea un problema de configuracion o que no estoy respetando algun tiempo de retardo.

me gustaria desmenuzar el codigo de esta libreria de arduino.pero no se si podre.
se llama ejemplo grafico.y hay que selecccionar la TFT9341.inclulle las librerias Adafruit_GFX.h>  y Adafruit_TFTLCD.h


Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 29 de Julio de 2017, 15:58:18
estas practicas las estoy realizando con la TFT ili9341.y otra que me llego ayer.pero en el anuncio no especificaba el driver que usa.como valia mas varata pues la pedi.
y despues de intentar sacar la ID interna sin exito.al final lo he logrado.y cual es mi sorpresa de que es la sst 7783.

pues ya con esta tengo 4 TFT que no me sirven para nada.a no ser que haga los drivers para ellas.y dado lo complejo que es por falta de informacion.
creo que se quedaran arrinconadas.

asi que tengo

1 sst7783
1 ili9320
1 S6D0154
1 ili9325

y 2 ili9341 que son las que me estan sirviendo. de todas estas TFT solo he hecho funcionar con arduino las ili9341 y la ili9325

pongo este dato porque al comprar en ebay.hay que estar seguro de lo que se compra o no nos servira para nada.

aqui he comprado una por 4€  y es la ili9341.

http://www.ebay.es/itm/2-4-TFT-LCD-Display-Shield-Touch-Panel-ILI9341-240X320-for-Arduino-UNO-MEGA/192163706724?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 31 de Julio de 2017, 09:56:36
bueno.pues me he tirado todo el fin de semana liado con el problema de los bloqueos de la TFT.cansado de no ver por donde
venia el fallo.conecte el TFT al arduino y a un analizador logico.y pude sacar la configuracion y los tiempos para
el envio de los comandos.y difieren algo pero no es motivo para el fallo que se me producia.

hasta que he visto que el fallo esta en el ICD3.resulta que aveces la TFT no arranca cuando simulo por hardware.
pero si programo el pic.esta no se bloquea para nada.tendre que usar aqui tambien el analizador logico.
y ver que puede estar pasando.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 06 de Agosto de 2017, 08:40:42
pues ya estoy consiguiendo resultados.he podido pasar los datos de las barras de colores a la TFT.

(https://www.4shared.com/img/BLbYL9kjca/s25/15db74a30d8/IMG_20170806_125519) (https://www.4shared.com/photo/BLbYL9kjca/IMG_20170806_125519.html)

pero la imagen no salen los colores correctamente.por lo menos he atinado con la configuracion 320x240 y el sentido del barido.que es la que usa directamente la TFT.
lo unico que cambio en la TFT para hacer pruebas es la configuracion RGB-BRG pero da igual.de momento no se producen bien los colores.

tendre que modificar la configuracion de la camara.espero terminar pronto esto.ya se me esta alargando mas de la cuenta.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 06 de Agosto de 2017, 13:21:22
ya consegui capturar una imagen con la camara OV7670 y pasarla directamente a la TFT ili9341.tengo que pulir mas el programa pero ya tengo una base funcional
de la que partir.

(https://www.4shared.com/img/h5WeBDTgei/s25/15db856b708/IMG_20170806_180740_664) (https://www.4shared.com/photo/h5WeBDTgei/IMG_20170806_180740_664.html)



tambien he sacado la imagen de las barras.

(https://www.4shared.com/img/HIrTRqN6ca/s25/15db87b3ab0/IMG_20170806_185647) (https://www.4shared.com/photo/HIrTRqN6ca/IMG_20170806_185647.html)

aunque parece que falta parte de la barra negra.tendre que averiguar porque.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 11 de Agosto de 2017, 20:27:43
hola de nuevo.sigo con el tema de la camara y la TFT.como ya dije en otras respuestas.la TFT me esta dando problemas al ponerla a funcionar. aveces tengo que reiniciarla muchas veces
para que arranque.el puerto paralelo de la camara y la TFT estan conectados entre si.y ya hace tiempo que se que habia un conflicto de datos.lo raro es que cuando trabajaba con la TFT
deshabilitaba la camara y viceversa.

pero el problema persistia.hasta que me llego un analizador de 16 canales y empece a investigar.y resulta que si hay un choque entre datos.lo he solucionado y el fallo era
que la FIFO AL422 no le basta con poner el pin OE a uno logico. hay que hacer esto:


poner a cero el pin RCK
OE a uno.
y luego RCK a uno.

no se si para habilitar la FIFO hay que hacer algo parecido.pero ya seria probar.esto me pasa por no leer bien el datasheet.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 13 de Agosto de 2017, 18:22:36
al final pude hacer funcionar la TFT perfectamente.ya no se me queda bloqueada.gracias al analizador logico.por lo visto cometi varios fallos.
como el no deshabilitar correctamente la fifo.y el envio de comandos con una mala gestion de la señal WR.

pero nunca se acaban los problemas.ahora estoy con la camara OV7670. aveces se reproducen mal las imagenes y otras las visualiza bien.este es un ejemplo de cuando salen bien:

(https://www.4shared.com/img/b13kU3IQca/s25/15ddd6bc998/IMG_20170813_224412) (https://www.4shared.com/photo/b13kU3IQca/IMG_20170813_224412.html)

y cuando sale mal.

(https://www.4shared.com/img/0ZIZxa90ei/s25/15ddd660cd8/IMG_20170813_225958) (https://www.4shared.com/photo/0ZIZxa90ei/IMG_20170813_225958.html)


para que eche bien la foto.hay que desconectar la alimentacion del circuito durante un tiempo.nisiquera sirve el reinicio del microcontrolador.a mi parecer.o hay un fallo en la camara ,
FIFO o es otro tipo de fallo.no lo se.

de momento he pedido otra camara para descartar fallos.por lo que he averiguado con el analizador logico.cuando se produce el fallo.los datos que hay en el puerto
no son los correctos.la cosa es que los datos se envian directamente de la FIFO a la camara.el microcontrolador se pone en estado de entrada y no debe de afectar a los datos.

tambien me he dado cuenta de otra cosa.en ocasiones aunque desconecte el circuito se quedan almacenados datos en la fifo de una imagen tomada anteriormente.
pero no se que hay que hacer para borrar la FIFO antes de enviar una nueva imagen.

Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 13 de Agosto de 2017, 21:33:00
al final realize una prueba que me ha revelado de que el fallo es una mala configuracion de la camara.y lo digo por esto:


he realizado un barrido de la pantalla.y da la casualidad de que se repite un ciclo sobre cada 6 barridos.supongo que es por eso por lo que solo saco fotos cada vez que quito la alimentacion.
la misma prueba la he realizado con una imagen.y sucede igual.son como seis capturas identicas que van rotando.

por una parte es un alivio porque veo que no esta nada averiado.por otra un rompecabezas.porque como voy a averiguar cual es la configuracion correcta para adaptar la imagen
a la TFT.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 14 de Agosto de 2017, 18:31:03
por fin he conseguido tomar fotos.estube practicando con los registros hasta que logre encontrar un registro que manejaba el PLL asi que supongo que
al modificar la frecuencia los datos son enviados de diferente forma.no se si es lo adecuado.ya que se ve una franja en la parte de abajo.pero funciona.
tambien tube un problema en el reseteo del puntero de lectua de la fifo.y por eso solo se veia bien la imagen si se reiniciaba el circuito.

en el caso de la respuesta anterior del bucle que se producia cada 6 cuadros.no me acordaba de que la fifo tiene mucha mas capacida de la que puede tener
una imagen de 320 x 240.de ahi que se visualizaran datos que no eran necesarios.tambien porque no reiniciava correctamente el puntero de lectura de la FIFO.

ahora lo que hago es reiniciar el circuito y salen las fotos bien sin el defeccto de una raya que salia en la foto que puse en la respuesta anterior.

(https://www.4shared.com/img/Y6CLc_qFca/s25/15de2ac6458/IMG_20170814_233514) (https://www.4shared.com/photo/Y6CLc_qFca/IMG_20170814_233514.html)

(https://www.4shared.com/img/NZRZV3KQei/s25/15de271ff20/IMG_20170814_223121) (https://www.4shared.com/photo/NZRZV3KQei/IMG_20170814_223121.html)


uno de los motivos de aprender el manejo de la TFT y la camara es para la realizacion de medidas.para la fabricacion de filamento de impresoras 3D.

al principio tube la idea de usar un sensor lineal como el de los escaner.pero no sabia de su existencia para arduino.ahora he visto que los hay.
pero son muy caros con respecto a una camara OV7630.que al fin y al cabo esta sirve igual.

he visto los TSL3301 y los TSL1401 con 102 y 128 pixel respectivamente.para eso prefiero los 640 o 320 pixel que puedo usar segun configure la camara.
y ahorrandome un dinero.ademas me sirve para tomar imagenes. que con la camara podre enfocar la lente mejor que con el sensor lineal.
porque puedo ver la imagen.

si tengo algun avance mas lo pondre aqui.en caso contrario voy a abrir otro tema enfocado a la fabricacion del medidor de filamento.

tambien pondre este proyecto cuando lo limpie un poco.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 15 de Agosto de 2017, 07:16:11
esta es una foto del orificio de una aguja de coser.para dar cuenta de la precision que tendra el medidor que quiero hacer si me sale bien.

(https://www.4shared.com/img/PZIkMiw4ca/s25/15de561f320/IMG_20170815_121145_3CS) (https://www.4shared.com/photo/PZIkMiw4ca/IMG_20170815_121145_3CS.html)
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 15 de Agosto de 2017, 09:05:29
aqui un video con el circuito funcionando en circuito continuo.se nota que la velocidad no es muy alta.ya que los datos tienen que pasar por la FIFO.podria hacerse que los datos de la camara
fueran directamente a la TFT.y no habrian parpadeos.pero no es mi objetivo.

Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: KILLERJC en 15 de Agosto de 2017, 15:14:33
Esta genial groundman, felicidades por lo conseguido hasta ahora.

No contesto cada post, pero lo sigo, como todos los que hiciste.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 15 de Agosto de 2017, 16:22:48
gracias.ya me queda menos.espero.

ahora estoy realizando una rutina que configura la camara en W/B y coger los datos de una linea horizontal.exactamente la del medio.pero la imagen siguira en color.
solo uso el W/B para la captura de datos que calcula el grosor del hilo de ABS.

Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 20 de Agosto de 2017, 16:09:01
bueno.aqui pongo mas videos de los avances.he realizado un adaptador para la camara y la tft.el microcntrolador
va aparte.

le he puesto una bateria para hacerlo portable y probarlo.mi sorpresa es que no se bloquea para nada.la TFT va perfecta
y la camara tambien.esta deveria configurarse para determinados ambientes de luz.pero por defecto es una
configuracion aceptable.

en el video me ha sorprendido que puede visualizarse el calor.tal y como se ve en el calefactor del extrusor de filamento
ya que este esta forrado con fibra de vidrio.y esta no reflecta la luz.



ya he conseguido capturar imagenes en blanco y negro.para ello configuro la camara en el modo YUV RGB.
los datos por cada dos pixeles serian YU YV . lo que hago es coger solamente los datos de Y (luminancia)

se da la circunstancia de que por cada linea,se produce la localizacion de un valor 0x00.que determina el
final de la linea.esto podemos adbertirlo en una linea negra que se produce al capturar una imagen.

esto me ha venido muy bien para poder descartar las primeras 240 lineas.para llegar a la linea del medio.

(http://www.4shared.com/img/1WqWI1Vgei/s25/15e01105850/negro_total) (http://www.4shared.com/photo/1WqWI1Vgei/negro_total.html)

la imagen de arriva corresponde a los datos que contiene la linea horizontal.en este caso es una imagen capturada
con el ovjetivo de la camara tapado.por eso salen los bytes 0x10. en el caso de un blanco intenso se acercaria
hasta el 0xf0.

en esta imagen hay un total de 640 bytes.correspondientes a la linea horizontal.esto nos da una precision
mayor que con un TSL1401.


ahora me estoy rompiendo la cabeza para realizar una rutina que me pase estos datos a otros que me den la
seccion del filamento que pondre enfrente del objetivo de la camara.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: vixctor en 20 de Agosto de 2017, 22:56:58
Hola groundman:

Entonces la función de la cámara es para ver el grosor del filamento?

Puede ser de dos maneras, por color o por cambio de frontera, en ambos casos el algoritmo es sencillo, sobre todo si la cámara está fija y con luz controlada...


Relamente es fácil poder localizar el área en pixeles y transformarla a distancia o grosor, alguna vez hice algo parecido para un torneo de robótica pero nunca se me hubiera ocurrido hacerlo para filamentos de impresión 3D..

Muy buena idea

Saludos...
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 21 de Agosto de 2017, 11:48:57
hola vixtor.es lo que tu dices.lo hice y al final resulto muy sencillo.fue por cambio de frontera.trabajo con escala de grises.ya que mi idea es poner el filamento delante de la camara.y poner
detras del filamento una pantalla blanca.supongo que metraquilato blanco con unos leds detras me serviria.

y lo que se ve por la camara es el lado oscuro del filamento.ya he hecho las practicas y va de maravilla.la medicion es de 640pixel.
el valor del blanco es 0xf0 y del negro el 0x10.he tomado un valor medio para la deteccion de la barrera.el cual puedo modificar como afinador para una medida de mas precision.

lo que yo hago es contar los pixel que estan en oscuro .he realizado una prueba.que es tapar el objetivo.y me da el valor 640d.
y si le pongo por ejemplo la pantalla del ordenador en blanco.obtengo el valor 0d.

este sistema de medir la sombra del filamento me posibilita el usar un filamento de cualquier color.



con esta resolucion de 640 pixel.podria tener una precision de 0.005mm. para ello partiria de la base de calibrar la camara con un filamento de 2mm.y ocupar 400pixel con la sombra
de este filamento.

se podria tener mas precision si afinamos mas.pero con esto tengo mas que se sobra.ya que incluso cogiendo 200 pixel tendria una precision de 0.01mm que ya esta bien si pretendo
fabricar filamento de 1.75mm.  y quizas sea lo que tenga que hacer.ya que el enfoque parece estar al limite por lo cercano que esta el filamento de la lente.

tambien he tenido la idea de imprimir unos cursores que puedan indicar donde se delimitan.las fronteras y asi tener un mejor calibrado.incluso poner unos digitos
con la medida que obtiene la camara.pero esto ultimo se me antoja ya mas complicado.quizas sea sencillo con librerias como usan el arduino.

pero esto tendria que acerlo de cero con asm.y la verdad que no se ni por donde empezar.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: riquitrack en 05 de Septiembre de 2017, 19:33:47
Magnífico e instructivo proyecto lo seguiré con mucha atención.
Gracias groundman.
Título: Re:TFT LCD 2.4" y Camara V7670
Publicado por: groundman en 20 de Mayo de 2018, 09:53:48
hola.ya hace tiempo que aparque el proyecto porque estoy con los ESP32 y estoy aprendiendo C++ para programarlos.son dispositivos varatos y potentes
para circuitos sencillos.y la falta de tiempo,demora la terminacion de este proyecto.

pero hay gente que me ha pedido el codigo para gestionar la TFT y la camara.y aunque no este terminado lo pondre aqui por si les sirve algo de este.

https://mega.nz/#!swYSgbCD!QUY0zpJlS3FVrHWgoRpipywkyIqRK58FSSkSFfqpp38