TODOPIC

FORO TÉCNICO => Telefonía, GPS y Microcontroladores => Mensaje iniciado por: Gokuden en 08 de Septiembre de 2004, 21:44:00

Título: controlar pantalla de celular¿?
Publicado por: Gokuden en 08 de Septiembre de 2004, 21:44:00
hola, en alguna oportunidad vi en algun sitio como usar las pantallas de los celulares, mas que todo creo que era nokia, alguien sabra donde es que esta eso¿? o como es que se hace¿? para mostrar datos en ella digo.. como si fuera una lcd comun..
Título: RE: controlar pantalla de celular¿?
Publicado por: cucaracha en 09 de Septiembre de 2004, 05:53:00
Mira, primero debes saber de que pantalla se trata. Con el modelo del móvil puedes conseguir esa info.
Si es para los nokia 3310 o similar, tienes unas rutinas en C, probadas y funcionando, aquí:
www.pacalaconcurso.com
También puedes mirar en este mismo foro, en el Tema "Que levanten la mano los que no tienen osciloscopio".
Ahí encontrarás además una pcb realizada en eagle para este tipo de displays. Las rutinas de pacalaconcurso son estas de aquí, las definitivas.
Mucha info sobre multitud de lcd"s de móviles en:
http://sandiding.tripod.com/Bertys.html
Y algo más también aquí:
http://users.skynet.be/bk317494/index.htm
Título: RE: controlar pantalla de celular¿?
Publicado por: Gokuden en 10 de Septiembre de 2004, 13:46:00
la qe quiero usar es la del nokia lph7366 creo, la del nokia 3310..
de 9 pines o la version de 8 pines.

el asunto es que hay paginas en ingles con el software ya hecho pero estan en C, el asunto seria si sabes donde explican como es que se usa, como me conecto a ella(esto si aparece mas o menos en algunos diagramas) pero como escribo en ella, y como me direcciono en su matriz para escribir en ella, como borrar, etc.. ya uno al entender lo adaptaria a su programa del pic, ya que programo nada mas en Asm.
Título: RE: controlar pantalla de celular¿?
Publicado por: cucaracha en 10 de Septiembre de 2004, 14:10:00
Pues entonces mejor toma el datasheet del controlador y a estudiar.
En la página de Berty te indican el controlador que lleva cada modelo de los que ahí aparecen.
Título: RE: controlar pantalla de celular¿?
Publicado por: Gokuden en 10 de Septiembre de 2004, 21:15:00
pero hay cosas que no entiendo y veo que tu estas mas avanzado. esos controladores que existen son para que¿? para un pc o que¿?.. no entiendo ..

ademas, voy a comprarme una y empesar a darle, seguro te preguntare otras cosas, no se si sera molestia..
Título: RE: controlar pantalla de celular¿?
Publicado por: cucaracha en 11 de Septiembre de 2004, 07:05:00
No es molestia hombre...

Mira, imagina que quieres controlar un Led con un micro. Fácil. Ahora imagina que quieres controlar 4000 leds. Ummm, se complica la cosa verdad. Para eso están los controladores. Ellos se diseñan para manejar esas matrices (mira los pines que puede tener uno de esos controladores) y luego mediante un protocolo, I2C, SPI... facilitan el manejo de ésta a otros dispositivos, microcontroladores p. ej. Por tanto, ahora mediante ese controlador se puede manejar esa matriz con pocos pines, mediante el envío de comandos.
Has usado algún LCD alfanumérico, los normales de 16x2 p.ej. Si te fijas en el reverso de este, verás el controlador. Es al que te refieres cuando quieres ver como se controla éste.
Con los gráfico igual, pero con estos en lugar de enviar ASCII para el texto, escribes directamente sobre la matriz byte a byte (no escribes sobre un punto concreto, sino de a 8).
La cosa es "simple". Sólo debes ver el protocolo que sigue, implementarlo en el micro.
Imagina que sigue un protocolo I2C. Te haces las rutinas para I2C y luego sólo es enviar comandos sin más. Serñia más o menos como escribir en una memoria I2C.
Si te fijas en el ejemplo en C, aun teniendo en el soft la posibilidad de usar I2C por librerías, verás que ahí se ha montado el protocolo también. Te puede servir de ayuda. Simplemente debes hacer lo mismo en ensamblador.
Yo el ensamblador por no usarlo lo he casi olvidado. Y la librería para el control la bajé de internet y la modificamos y mejoramos a nuestro gusto.
En cuanto a la conexión del LCD, mira ese pcb que hice y luego no son más que un par de condensadores externos, de 4.7uF si mal no recuerdo. Fíjate en la página esa donde hay varios montajes con el LCD. Verás lo que te comento.
Y ya sabes, en lo que pueda ayurdate...

Saludos!!


Título: RE: controlar pantalla de celular¿?
Publicado por: Gokuden en 11 de Septiembre de 2004, 10:39:00
donde betis hay unos codigos en asm para escribir en ella, pero pregunto, uno pone en la lcd es un punto nada mas¿? , no caracteres¿?¿?... porque viendo tus imagenes, veo que pones dibujitos y tambien unas letras.... en tu codigo veo una tablota para conversion creo de ascii a los pixeles de la lcd, pero no veo una tabla asi en el codigo asm de betis...

es que no lo veo bien porque como lo tuyo es C, lo he leido ya como 100 veces, jajajaja, pero entiende, nunca he programado en ese lenguaje, por eso lo veo y lo veo y tengo muchas interrogantes..... porque ya entendi lo del I2C mas o menos, la voy a conectar para empesarle a mandar datos como loco a ver qe muestra. pero tambien debo ver como son los datos en ella, no se si es totalmente el iC2, me imagino que uno le manda una trama serial que contenga, el dato y la direccion en la matrix, eso es lo que deseo buscar a ver si es asi y como esta compuesta esa trama y los tiempos de envio..


otra cosa, el controlador es el PCD8544¿?¿?. veo el datashet de el para ver como son sus tramas¿?
Título: RE: controlar pantalla de celular¿?
Publicado por: cucaracha en 11 de Septiembre de 2004, 12:36:00
Lo de la página de Berty no es más que un ejemplo para que veas el funcionamiento del LCD. En cambio, la rutinas en C son una librería para el control y el otro un ejemplo donde se hace uso de esa librería.
Si te fijas, el de berty escribe la fecha repetidamente:
Codigo:
adata   movlw 1FH   ;date
   movwf afisaj
   call   lcdta
   movlw 05H   ;date
   movwf afisaj
   call   lcdta
   movlw 07H   ;date
   movwf afisaj
   call   lcdta


Lo que hace el programa es inicializar y demás, se posiciona y luego escribe la fecha una y otra vez.
De ahí puedes usar todo excepto la parte que está aquí pegada, modificando un poco, claro. Por ejemplo te creas una función init, que es la misma pero termina con un return, creo que era. Así luego, en tu programa sólo harás call init. Y así con el resto. Te crea tu librería que luego incluyes en tu programa.
Lo de los puntos... a ver... Imagina esto:
||||||||||
||||||||||
||||||||||
Cada | es un byte. Así es como es la matriz del LCD. Osea, cada | son 8 pixels, verticales. Así si quieres por ejmplo crear el caracter ":" sería 00100100 por ejemplo. Mejor así no?
Tu direccionas y luego escribes. El puntero se va incrementando sólo.
Y por tanto, si quieres escribir texto, tendrás que crea tú las letras. Eso es lo que hago en mis tablas.
La cosa es que si no sabes C se complica para explicarte, pero a ver..
Yo mando la orden de escribir la A, que en ascii es el 40. Mi función lo que hace es convertir ese cuarenta en los puntos que deben de encenderse y apagarse.
Yo he escogido para cada símbolo 8x5pixels, osea |||||, Bien, pues la A será 0x7e,0x11,0x11,0x11,0x7e. Toma un cuaderno de esos de cuadrículas, y monta toma un cadrado de 8x5 cadraditos. Y ahora rellena cada cuadrado que tenga un 1 y verás que sale... la A.
La función lo que hace es direccionar sobre esa tabla, tomando la trama para ese caracter y lo envía al LCD.

En cuanto a lo del controlador, sí, es ese.

Lo mejor, bajo mi opinión es que conectes el LCD, cargues el programa de berty, compruebes que funciona y en base a él te montes tu propia librería.
Título: RE: controlar pantalla de celular¿?
Publicado por: Gokuden en 14 de Septiembre de 2004, 21:34:00
okokok. entonces ya estoy aprendiendo, voy a montar la de bertys..

una preguntillas... para comunicarse con la lcd, es una sola trama que incluye direccion en la matriz y el pixel a poner¿?.. o caracter¿?
....

ademas.. veo como voy a hacer mi table y la empieso a crear.. pero en la trama, va primero la direccion y despues el caracter¿?...

segundo.. no he visto en el codigo de bertys la parte donde se direccionan en la pantalla. sabes si eso esta ahi¿?
Título: RE: controlar pantalla de celular¿?
Publicado por: cucaracha en 15 de Septiembre de 2004, 17:54:00
Aquí:
Codigo:
   movlw 40H   ;x ini
   movwf afisaj
   call   lccmd
   movlw 80H   ;y ini
   movwf afisaj
   call   lccmd


Si te fijas, usa el byte afisaj para envío.
La función lccmd supongo que será la que usa para comunicación y envío de lo que está en afisaj.

A ver...
Mira, tenemos las siguientes señales en el lcd, pines vamos:
*sclk  (señal de reloj, sincronismo)  
*sda  (datos)
*dc    (no m"acuerdo)
*cs    (tampoco m"acuerdo. Chip Select, supongo)
*res  (esto puede ser una resistencia, pero tampoco me acuerdo. Es broma. Reset)
Mira el data para más detalles

Bien, mirando las rutinas en C la cosa sería así:


1) Para enviar un comando:
dc a 0
cs a 0
y ahora envío en serie del comando.
sclk a 0 (esta es la señal de reloj) Se pone a cero y envío de un bit
   a)si el bit es 0 sda a 0
   b)si el bit es 1 sda a 1
sclk a 1
Esto se repite 8 veces, una por bit del byte que compone el comando. El envío se hace empezando por el bit MSB

2) Para enviar un dato:
dc a 1
El resto igual, pero claro, lo que se envía ahora es un dato, algo que será mostrado (los 1 serán puntos negros, los 0 blancos)


Los comandos para direccionar en la pantalla son:
X-> 1xxx xxxx  (donde las x son el número en binario para el eje X. Columna)
Y-> 0100 0yyy (lo mismo, para el eje Y. Filas)


Para inicializar el LCD:
todas la señales a 0.
esperas 200us
dc a 1
cs a 1
esperas 10 ms
res a 0
esperas 250ms
res a 1
envías el comando 0x21
envías el comando 0x90
envías el comando 0x13
envías el comando 0x20
envías el comando 0x09
esperas 50ms
te posicionas en (0,0)
limpias la pantalla, osea escribes 0 en todas las posiciones. Recuerda que el puntero se incrementa sólo.
esperas 10ms
envías el comando 0x0c
...y listo. Uffff
En el archivo .c puedes ver con detalle que es cada comando que se envía. O en el data.
Los tiempos no son exactamente los que vienen en el data, quiero recordar. Los aumentamos por seguridad. De todos modos puedes cambiar y pobrar. Pero así funciona.



Y esto es todo. Recuerda que la comunicación con el display tiene sus tiempos mínimos, osea, que según el cristal que uses debes ver esto.
Si mal no recuerdo creo era de 2us por nivel de clk

Saludos!
Título: RE: controlar pantalla de celular¿?
Publicado por: lafe en 17 de Septiembre de 2004, 14:30:00
Hola a todos
Aqui les dejo un link de un programa llamado FastLcd ,Yo lo uso para crear logos  tanto en lcd de 16x2 , lcd graficos 240x128 como para lcd de celulares no pesa nada y es muy practico es configurable y hasta te genera codigo,
bueno espero que les sea utildad
www.amontec.com/lcd_nokia_3310.shtml
SALU2
Título: RE: controlar pantalla de celular¿?
Publicado por: cucaracha en 17 de Septiembre de 2004, 14:49:00
Muy bueno el dato... no conocía ese programita. Según Sisco y Ledroj, que ya lo han usado, es bastante bueno.
Gracias. Guardado queda...

Saludos!
Título: RE: controlar pantalla de celular¿?
Publicado por: Gokuden en 20 de Septiembre de 2004, 21:16:00
bueno amigo, aunque todavia tengo dudas, es compresible, pero ya me has dado demasiada informacion y buena y te lo agradesco, no queda de otra que dejar de preguntar sin probar, me empesare a dar coñasos con la lcd, ya montada si te preguntaré--- pero vere que locuras puedo meter en ella.. xD
Título: RE: controlar pantalla de celular¿?
Publicado por: Modulay en 20 de Septiembre de 2004, 22:20:00
Me salgo un poco de tema para preguntarle a cuca como soldaste los contactos del lcd del nokia,ya me cargué uno y no quiero hacer lo mismo con el segundo
¿Soldaste un cable a cada uno de los pads?
Título: RE: controlar pantalla de celular¿?
Publicado por: cucaracha en 21 de Septiembre de 2004, 17:29:00
No modulay, lo que hice es usar el mismo sistema que en el móvil. Un pcb sobre el que se coloca el display y luego se atornilla.
Te iba a pasar el esquema, pcb y librería (para Eagle) que hice para el nokia pero borré la maldita librería. La costumbre de no guardar librerías en una carpeta de mis documentos.
Por eso, cuando desintalé el programa se fué con él y no es la primera vez que me pasa. La otra vez tuve más suerte, ya que alguien la tenía. A ver si esta consigo recuperarla.. pero no recuerdo a quién pude pasársela. Si es que la pasé.... En fin...
Asi que de nada te va a servir el esquema y el pcb en Eagle. Bueno, si que deja abrirlo y imprimirlo, pero sólo eso....
Lo que sí tengo es un pdf con el pcb. Te lo paso por privado.
Si alguien más lo quiere lo cuelgo en el almacén.
A ver si encuentro la librería y te la paso para que puedas hacer tus diseños con el lcd.

Saludos!!
Título: RE: controlar pantalla de celular¿?
Publicado por: Nocturno en 26 de Septiembre de 2004, 10:19:00
Pues si no es molestia, súbelo al almacén Cuca. A mí también me gustaría.

Gracias
Título: RE: controlar pantalla de celular¿?
Publicado por: Gokuden en 29 de Septiembre de 2004, 19:52:00
ya tengo la lcd en la mano pero me vino completa, con la base de metal  y el papelito de los botones, es dificil sacarla de ahi..

como se hace para soldarle ahi los cablecitos¿?¿ y que circuito hicistes tu de conexion con el pic¿?


cuca; otra cosa, estas pantallas no son alfanumericas¿? es decir, el controlador de ella no es como las otras lcd normales 16x2 por ejemplo que uso siempre que le mandas intrucciones y datos, y los datos son simplemente caracteres en ascii¿?. o estas pantallas son puro poniendo un punto en la inmenza matrix de la lcd¿?.

ademas, cuando uno quiere enviarle algo a la lcd, es una sola trama que contiene direccion en la matrix y el dato¿?

porque en las lcd normales se imprime en la pantalla y el cursos se incrementa solo por ejemplo, y tiene instrucciones como adelantar el cursos o limpiar pantalla, etc.etc
Título: RE: controlar pantalla de celular¿?
Publicado por: cucaracha en 30 de Septiembre de 2004, 05:29:00
Bueno, antes de nada aquí están los archivos, en el almacén. Gracias que lo dejé ahí. Tienen los esquemas y pcb en Eagle, la librería para este y un pdf para los que no tengan el programa:
http://miarroba.com/foros/ver.php?foroid=256746&temaid=1566850
Siento no haberlo puesto antes. Me despisté...
Para conectarlo, circuitería externa... basta con un par de condensadores. Lo pueden ver aquí:
http://users.skynet.be/bk317494/001/001.htm
Yo le tengo puestos dos condensadores de tántalo de 4.7uF 35v en lugar de los que ahí vienen y también funciona.
El resto, las señales directas al micro y luego las alimentaciones como ahí aparecen. Sin más... 5v eso sí, no más.

El lcd no es gráfico puro, no tiene caracteres alfanuméricos. Por eso son las tablas para caracteres del ejemplo. Por tanto se escribe en el lcd byte a byte como ya te expliqué. Si quieres texto, lo tendrás que hacer tú.
Para enviar un dato, pues como te indico arriba. Si quieres empezar en una posición concreta, direccionas en el primer envío y luego ya se incrementa el puntero como en los 16x2.
Las función de limpiar te la debes de hacer. Te posicionas en (0,0) y vas limpiando todo la pantalla.
Recuerda y repasa lo que te dije arriba, no en pixel a pixel, sino de 8pixels en 8 pixel, osea un byte.

Saludos!!
Título: RE: controlar pantalla de celular¿?
Publicado por: Gokuden en 15 de Octubre de 2004, 11:40:00
cuca, pwrinvitro y yo estamos trabajando en la lcd y ya tenemos un par de ellas en la mano, vienen con la membrana de las teclas, creo que no es necesaria sacarla porque ellas por la parte de atras se ven los pinsitos chiquiticos. estas traen 8 pines, creo que hay dos versiones , una de 9  y una de 8. Ahora, nosotros la vamos a conectar directo a un protoboard para probar con ella.

la conexion que tu seguistes fue por los links de betis y esos¿?...
segundo, la alimentas con 3v o 5v¿?
Título: RE: controlar pantalla de celular¿?
Publicado por: cucaracha en 15 de Octubre de 2004, 20:11:00
Sí, yo la alimento con 5v. Y la conecto tal y como pueden ver aquí:
http://users.skynet.be/bk317494/001/001.htm
Pero cambiando los condensadores. Yo le tengo puestos dos de 4.7uF, de tántalo, para ser más precisos... pero esto supongo que es lo mismo.
En cuanto a la corriente... ni idea. Es cuestión de medir o de mirar el data, mejor. Miren el data hombre, que no es pecado!!! jejeje

Saludos y suerte!!
Título: RE: controlar pantalla de celular¿?
Publicado por: PWRINVITRO en 15 de Octubre de 2004, 20:37:00
OKOKOKOKOK GRACIAS POR LA AYUDA MI PANA!!! LE HECHARE CANDELA A ESO AHORA MISMO!!!