Autor Tema: Mutar de un glcd a un tft touch  (Leído 1030 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado arielmdq

  • PIC16
  • ***
  • Mensajes: 166
Mutar de un glcd a un tft touch
« en: 27 de Abril de 2016, 21:45:57 »
Hola que tal,desde hace un tiempo que estoy haciendo algunos proyectos por separado como cuenta revoluciones, cuenta horas , medir temperaturas y presiones,con lcd 2 x 16 y display de 7 seg, todo referente a un panel de instrumentos de un motor estacionario y ahora decidí integrar todo en una pantalla lcd grafico, a la cual le tenia mucho miedo  :roll:.
Como todos los ejemplos que use para aprender estaban hechos con display de 128 x 64, lo hice con este mismo y hasta ahora lo tengo funcionando en proteus aunque todavia tengo que corregir algunas cositas  :mrgreen: .
 
El tema fue que  a la hora de ir a comprar la pantalla, me encontré con que no solo en mi ciudad no disponen de estas pantallas
sino también que era demasiado pequeñas para este proyecto  :shock: , asi que empece a averiguar y aca es donde me entro el mareo  :huh:, empece a leer sobre pantallas tft con touch y me gusto aun mas la idea ya que el proyecto se vería mas elegante y podría eliminar los pulsadores externos que tendría que poner con el lcd gráfico común.
Ya lei los post de ppyote akenafab suky ,duende azul y los de ucontrol,pero necesito reordenar en mi cabeza toda la informacion
Y actualizar un poco ya que los post antes mencionados tienen varios años y seguramente hoy los usuarios deben tener mucha mas experiencia con estas pantallasy tal vez puedan compartirala.
Y aca(por fin) vienen las preguntas :
En muchos de los ejemplos que vi usan placas de prueba como arduino o easypic y esto me confunde un poco por que nunca use una de estas y no se si solo las usan para probar y luego se mudan a un pic determinado o es que la placa dispone de algún componente adicional para hacer funcionar la pantalla tft yo lo quiero hacer directamente con un pic( en este caso un 18f452 pero puedo cambiar todavia no lo compre).
Es posible manejar una tft solo con el pic ,como lo es con el GLCD comun? Entiendo tambien que para manejar el touch en caso del de 4 hilos resistivo necesito ocupar 4 canales del adc del pic
El programa que use para el Glcd común lo hice con CCS, funcionaria para una tft? logicamente modificando el tema de los pulsadores para hacerlos con el touch.
La idea es usar una pantalla de 3.5 pulgadas minimo, el tema es CUAL ? yo no voy a mostrar imágenes complejas solo datos y un par de botones,estuve viendo en las paginas chinas y hay tanta cantidad que me mareo  :-) , podrian recomendarme alguna que pueda manejar con un pic programado con ccs
Que controladora debe tener ? O cual no debo comprar. Estuve viendo por ejemplo esta a tan solo 10 u$d 
http://es.aliexpress.com/item/Free-shipping-3-2inch-320x240-Touch-LCD-Screen-Touch-SPI-ADS7843-LCD-SSD1289-TFT-PCB-adapter/32247172063.html?spm=2114.10010408.0.42.xDv3xk&isOrigTitle=true
Alguno de Argentina ha estado comprando últimamente cosas por estas paginas ?
Bueno disculpen si la introducción fue muy extensa pero tengo tantas dudas que no sabia como expresarme desde ya muchas gracias
                                                       Saludos!!!!!!
 
El tiempo es una ilusión ,solo existe el presente................

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 7332
Re:Mutar de un glcd a un tft touch
« Respuesta #1 en: 27 de Abril de 2016, 22:34:10 »
Yo tengo exactamente el mismo TFT que diste el link, o bastante parecida.

Es posible manejarlo con un PIC simple y llanamente, yo tome ideas de varias librerias y cree mi propia libreria entendiendo que hacian. Pero tenes que tener en cuenta la cantidad de salidas/entradas que vas a necesitar en caso de manejarlo de forma directa.
Yo siempre lo use controlando los 16 bits de datos, es decir que necesitarias 16 pines para los datos ( esto sin usar ningun expansor ni nada por el estilo ) + los pines de control, como los de CS, Enable , Data/Command , Read/Write

Aunque veo que es posible configurarlo para que funcione como de menos bits, en las configuraciones del SSD1289 estan:

SPI:
3 y 4 hilos

Paralelo:
8 bits ( 65K y 262K colores )
9 bits ( 262K colores )
16 bits (65K y 262K colores )
18 bits ( 262K colores )

El problema que eso se configura desde el controlador SSD1289 conectando entradas a 0 o 1 ( entradas que uno no posee acceso y por lo tanto no puede elegir). Entonces terminas usando o un expansor de puerto o un PIC con muchos pines ( por ejemplo uno de 40 y usar 2 puertos de 8 para los datos ).

Por la velocidad no creo que exista demasiado problema, mas problema vas a tener si queres actualizar toda la pantalla o poner muchas imagenes dentro, lo cual ocupa mucha memoria. E implica demasiado trafico.

Como funcionan ? Igual que los GLCD.

- Tenes una inicializacion, en los TFT es un poco mas compleja ( o mas registros a modificar )
- Luego seleccionas un "area" del TFT a editar, cargandolo en los registros necesarios del TFT
- Y finalmente empezas a enviar datos, y listo. Pero esta ves los 16 bits es de 1 solo punto, asi hasta actualizar toda el area esa.

Citar
Es posible manejar una tft solo con el pic ,como lo es con el GLCD comun? Entiendo tambien que para manejar el touch en caso del de 4 hilos resistivo necesito ocupar 4 canales del adc del pic

En el caso del TFT que enviaste en el link, este posee un ADS7843 para el touch, y que te puede devolver 8 u 12 bits dependiendo como lo configures, la comunicacion con este es a traves de SPI (muchas librerias hacen un SPI por software, yo por miserable lo hice por hardware).Ademas del SPI necesitas el CS de este, para indicar cual es el comienzo del dato a tomar  + otra entrada de IRQ que se pone en 1 creo cuando se detecta algo. Asi que podes ir sumando pines ... Al momento de pedir el dato, tenes que pedirle que te mande el canal X o el Y, no te envia ambos juntos. Ademas en caso de no estar presionado se quedan en algunos valores extremos, los cuales vas a tener que sensar, verificar que estan dentro del rango que se exige, promediar los valores que te da el ADS7843, etc.

Despues tenes que hacer una rutina de "calibrado", etc. El touch a mi gusto no funciona muy bien. si lo tocas con un lapiz ( es decir con algo con punta redonda ) si funciona bien, o por ejemplo con la punta de la uña, pero ponerle el dedo encima y no te lo toma muy bien. Pero bueno es el precio de lo que uno paga :P.

Citar
yo no voy a mostrar imágenes complejas solo datos y un par de botones

El tema es que una letra es una imagen, asi como tenes en el GLCD, el boton es una imagen tambien, aunque puede ser resuelto con un simple cuadrado. Y eso lleva memoria Flash, asi que ademas de pines estamos hablando de tener espacio en Flash.

Dependiendo del ambiente donde lo pongas, y mas si estamos hablando de un cuenta revoluciones, cuenta horas, que podrian juntar bastante tierra o tocarse con los dedos "sucios", creo que lo mas recomendable es no ir por un TFT e ir por switch que seria lo mas facil de cambiar en caso de averia, ademas no se ensuciaria la pantalla, etc.

Si queres probar, o jugar con estas adelante, es bastante posible y como te digo hay muchas librerias dando vueltas por internet incluso para varios tipos de controladores, la mas notable que recuerte fue UTFT, que lo unico "complejo" es eliminarle todo lo de los demas controladores y te queda como una libreria de un LCD. Lo que si use algunas otras para hacer las lineas, cuadrados, etc.

PD: Te quedo genial el del GLCD

Pero digamos que para el TFT vas a tener que conseguir ( o hacer ) la libreria para este. Aunque puede que cambiando las rutinas de inicializacion + envio de datos/comandos del GLCD puedas hacer funcionar el TFT. Sin cambiar lo demas como figuras, textos,etc
« Última modificación: 27 de Abril de 2016, 22:44:05 por KILLERJC »

Desconectado arielmdq

  • PIC16
  • ***
  • Mensajes: 166
Re:Mutar de un glcd a un tft touch
« Respuesta #2 en: 28 de Abril de 2016, 08:39:54 »
Hola Killer muchas gracias por tu respuesta, excelente explicación !!!! Bueno por lo que me decís, voy a replantearme entonces como lo hago por que si el touch no es muy bueno  :huh: como bien decis va a convenir hacerlo con pulsadores, por que el operario en este caso no lo va a tocar con cuidado  :twisted: y mas bien con las manos engrasadas :D :D :D no habia pensado bien en esto.
Bueno voy a seguir buscando pantallas, creo que ya para un Glcd un poco mas grande que la de 128x64  para este proyecto y tal vez me compre una tft para ir aprendido, cualquier cosa te vuelvo a preguntar .Muchas gracias !!!!!!!!!!
                                                                                Saludos!!!!!! 
PD: Si tenes algún ejemplo en ccs con esa pantalla que puse en el link, que decis que usaste ,y me lo podes pasar te agradecería asi voy estudiando sobre algo concreto 
El tiempo es una ilusión ,solo existe el presente................

Desconectado arielmdq

  • PIC16
  • ***
  • Mensajes: 166
Re:Mutar de un glcd a un tft touch
« Respuesta #3 en: 05 de Mayo de 2016, 14:27:53 »
Bueno ,finalmente después de buscar y comparar precios decidi comprar 2 tft por estas paginas chinas uno es este:( no me acuerdo como era  para poner una sola palabra y que te dirija al link  :oops: )http://www.aliexpress.com/snapshot/7644956203.html?orderId=75043880655060
y el otro es este:http://www.aliexpress.com/snapshot/7644956201.html?orderId=75043880665060
Compre estos por que aca en argentina me salia un glcd comun de 160x128 unos $1000 y un solo tft  $500 .Por medio de esta pagina me salen los 2 tft por $285 asi que me la jugué  :D , compre 2 distintos aunque tienen el mismo controlador el ili9341 y la idea es hasta que me lleguen tratar de entender e ir armando la libreria para estos modelos asi que me pondre manos a la obra .Pero una de las preguntas que me surge es : como podré probar lo que estoy haciendo?
                            en proteus lo puedo simular ?
Me baje la version 8.4 y trae una tft pero dice que como es la version demo no se puede usar ese componente (todavia no la probé)
Como hacen las pruebas ustedes ? graban el micro  y lo conectan a la pantalla ?
Bueno estas son algunas de las tantas dudas que me van surgiendo.
Les agradeceré cualquier comentario.
                                                             Saludos!!!!
El tiempo es una ilusión ,solo existe el presente................

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 7332
Re:Mutar de un glcd a un tft touch
« Respuesta #4 en: 05 de Mayo de 2016, 17:45:24 »
Citar
Como hacen las pruebas ustedes ? graban el micro  y lo conectan a la pantalla ?

Cuando no hay debugger, y no hay nada de simulacion ( como suele suceder con la mayoria de las cosas) es grabar y probar.

En estos casos para mi un debugger y un analizador logico se hacen invaluables, aunque no tengo ningun de ellos y me lo tengo que arreglar muchas veces con el osciloscopio y su disparo unico.
« Última modificación: 06 de Mayo de 2016, 14:46:28 por KILLERJC »

Desconectado arielmdq

  • PIC16
  • ***
  • Mensajes: 166
Re:Mutar de un glcd a un tft touch
« Respuesta #5 en: 06 de Mayo de 2016, 14:18:25 »
Hola, queria compartir este link http://microcontrolandos.blogspot.com.ar/2012/10/proteus-710-completo.html
 tal vez a alguien mas le sirva, es una simulación de una pantalla tft en proteus pero con un ARM ,el siguiente paso será intentar cambiarlo por un pic y hacerlo andar  :2]
Leo el main.c   :z) y las neuronas se me hacen un nudo  :shocked:  :D :D :D .
Ojala les sea util . Saludos !!!!
El tiempo es una ilusión ,solo existe el presente................