Hace poco tuve que echar una mano en un proyecto de control de flotas donde se necesitaba controlar una pequeña pantalla mediante un módem MTX65+G. Como tuve que realizar un pequeño montaje para realizar unas pruebas con la pantalla aprovecho y lo comparto aquí para quien lo pueda necesitar en un futuro (y para acordarme yo mismo si lo vuelvo a necesitar dentro de un tiempo ;) )

Vamos allá. El módem MTX65+G, como muchos recordaréis, tiene un único puerto serie. Ese puerto serie ya estaba ocupado con otro dispositivo, así que la única alternativa era utilizar una pantalla controlable por SPI. La pantalla escogida fue una de Electronic Assembly, concretamente el modelo EA DIP204-4HNLED.

Lo primero que hay que hacer con esta pantalla es configurarla para que trabaje por SPI ya que por defecto utiliza un bus paralelo. Para ello basta con darle la vuelta, desoldar el jumper marcado con 4/8 y soldar el jumper marcado con SPI. Ambos están muy juntos y uno debe asegurarse con un polímetro que el jumper 4/8 está realmente desoldado.

Las conexiones de la pantalla son muy simples, así que rápidamente decir que yo sólo he conectado el pin 17 y 18 a 4V, para el backlight, la alimentación (pin 1 y 2) a 3.3V, el contraste (pin 3) a un potenciómetro de 10K y los cuatro pines propios del bus SPI (pin 4,5,6 y 7) a los correspondientes del bus SPI del módem (obviamente el DI de la pantalla al DO del módem y viceversa). Para mis pruebas, por comodidad de bornas, he utilizado un módem MTX65-IND, pero con un MTX65 o un MTX65+G sería exactamente lo mismo.
Bueno, pues ya está casi todo, tan solo falta enviar los comandos AT apropiados al módem para que éste envíe datos vía SPI a la pantalla y así poder escribir sobre ella. Evidentemente todo esto se puede hacer desde una aplicación java embebida dentro del módem, pero por comodidad, lo voy a poner mediante comandos AT enviados desde una aplicación de PC por el puerto serie. Bien, pues estos son exactamente los comandos que hay que enviar para escribir un HOLA en la pantalla.

spi

 

 ’Activamos el bus SPI y lo ponemos en modo 0 (de los cuatro modos posibles)
respuesta = enviarAT(“at^sspi=1000,0000,0000,0000,0000″)

 ’8bits y activamos las funciones extendidas
respuesta = enviarSerie(“”)

 ’Modo 4 líneas
respuesta = enviarSerie(“”)

 ’8bits y desactivamos las funciones extendidas
respuesta = enviarSerie(“”)

 ’Display on, cursor on y cursor parpadeando
respuesta = enviarSerie(“”)

‘Limpiamos display y cursor en columna 1 y fila 1
respuesta = enviarSerie(“”)

‘Para que el cursor avance con cada escritura
respuesta = enviarSerie(“”)

 ’Escribimos un HOLA
respuesta = enviarSerie(“”) ‘H
respuesta = enviarSerie(“”) ‘O
respuesta = enviarSerie(“”) ‘L
respuesta = enviarSerie(“”) ‘A

No me invento nada, es básicamente el ejemplo que hay en el manual de la pantalla, página 3. Lo único que hay que tener presente es que hay que enviar el bit de menor peso el primero y el de mayor peso el último. Es decir, en el ejemplo del manual se envía primero un comando 0×34, que en binario es el 0011 0100, por lo que con nuestro módem tendremos que enviar, si le damos la vuelta el 0010 1100, es decir, un 2C.  Otra cosa importante es que la pantalla requiere que en cada byte se envíe dividido en 2 bytes, como XXXX0000 XXXX0000, por eso, en lugar de enviar un 2C se envía un 20C0. El porqué del F8 inicial de cada trama (o el FA inicial de cuando escribimos un caracter) lo tenéis explicado aquí  en la página 51, es básicamente la cabecera que necesita la pantalla en cada trama SPI.

Únicamente con esto ya es suficiente para escribir datos en la pantalla como podéis ver en la imagen anterior.

Espero que resulte de interés o ayuda para quien necesite usar alguna pantalla con un módem Siemens/Cinterion en algún proyecto.

Y ya que hablo de Siemens/Cinterion comentar una buena noticia que me afecta a nivel personal y que en los tiempos que corren, son siempre bienvenidas. Y es que resulta que esta semana se ha celebrado el congreso que Cinterion organiza a nivel mundial con todos sus distribuidores. Como ya he comentado muchas veces en mi blog yo trabajo en Matrix Electrónica (distribuidor de Cinterion en España) como ingeniero de aplicaciones. Pues bien, este año se nos ha concedido el premio al distribuidor con el mejor soporte técnico de módems Cinterion del mundo, cosa que tanto a mi compañero Jesús Santos como a un servidor que os escribe, que somos principalmente quienes nos encargamos, entre otras muchas cosas, del soporte técnico de Cinterion y terminales MTX en Matrix, nos ha alegrado mucho.

bestsupport-award-2010

Sienta bien. Y es que después de tantas horas de trabajo empleadas con estos productos, de estar siempre echando una mano a mucha gente (que se traduce en cientos de consultas de cientos de empresas con todo tipo de proyectos gsm), de estar siempre ahí dispuesto a buscar soluciones cuando aparecen problemas, sin esconder jamás la cabeza como una avestruz. En definitiva, después de tanto tanto trabajo que al menos se reconozca por parte de Cinterion …  pues la verdad es que nos ha sentado muy bien y nos anima a seguir y a mejorar.

Decía mucho mi abuelo, que en paz descanse, que es de bien nacidos ser agradecidos. Así que mi agradecimiento también a Antonio López (de Cinterion España), que siempre está ahí dispuesto a echar una mano cuando lo necesitamos y cuya ayuda ha sido muy valiosa y fundamental para poder desempeñar bien nuestro trabajo durante todo este tiempo.

Esto es todo por hoy, otro día más. Feliz Domingo. ;)

www.blogElectronica.com


Post relacionados:

  1. Cómo utilizar el Watchdog del módem GPRS Siemens TC65 Hace muy poquito salió la versión firmware 3.0 del módem...
  2. Nuevo módem GPRS teminal MTX65 basado en el módem Siemens TC65 Matrix Electrónica ha lanzado la distribución de un nuevo modelo...
  3. Modem GPRS Siemens. Gestión de una conexión TCP/IP desde Java. En mi anterior post vimos como utilizar el sistema de...
  4. MTX65-ULP. Módem GRPS Ultra Low Power basado en Siemens/Cinterion   Hoy voy a hablar de un nuevo terminal, del...
  5. Plataforma OTAP para módems gprs Siemens – Cinterion Hace tiempo que no escribo en el blog. Han  sido...








Etiquetas: , ,
13 Respuestas a “Controlar una pantalla SPI con un módem gprs Cinterion”
  1. juan gago dice:

    Enhorabuena por ese premio!
    La verdad es que os lo mereceis ;-)

    Salu2

  2. kanemor dice:

    Mi enhorabuena pública. El premio es merecidísimo.

  3. Pua dice:

    hola,

    Felicidades por el premio.

    no tuve nada que ver; o si? jajajajajja

    Me mola mucho lo del SPI que has hecho. has probado con uno gráfico?

    Salu2

    Pua

  4. Francesc dice:

    Mi felicitación, por el premio.

    Y adelante con el blog es esencial para los nos gusta este mundillo.

    Saludos a todos.

  5. Miguel dice:

    En hora buena, os lo tenéis más que merecido.

    Muchas gracias.
    Un saludo.

  6. blogElectronica dice:

    Hola,

    muchas gracias a todos.

    P.D.

    No Pua, no he podido probar todavía con una gráfica, por ahora sólo alfanumérica. Algún día que caiga alguna en mi mano ya probaré …

  7. Gen dice:

    En primer lugar ¡Felicidades por el premio!

    Por otro lado, como seria el programa en java a partir de comandos AT??. Lo he intentado, y al pasar al modo Datos con at^sspi deja de funcionar y me da errores, ya que no puedo enviar con sendAT los carcateres que quiero leer con la cadena por ejemplo.

    Como puedo hacerlo?

    Un saludo

  8. Rafael dice:

    Hola:
    Antes que nada felicitaciones por el excelente trabajo realizado.
    Me gustaría ver si me puedes ayudar con un problema q tengo. Resulta que tengo una aplicación dentro del modem TC65 que lee datos desde un circuito utilizando SPI.
    La aplicación funciona bien y recibe perfectamente los datos. La configuración utilizada es la siguiente:
    at^sspi=1010,0000,0000,0000,1000 //Modo SPI, internal Port, 250 kbps, ASCII, 8 bits, big endian, MSB first, Mode 1
    //0 ID, 00 Read Offset, 0008 Read Length, A Data (Envia el dato A, al esclavo 0, lectura sin offset, 8 datos a leer)
    el problema esta cuando quiero pasar este mismo código al MXT65+G, he tenido muchos problemas con la interfaz puesto que estoy utilizando la interfaz USB y al activar el SPI se bloquea dicha interfaz y ya no puedo ver nada en la hiperterminal.
    Mi pregunta es, ¿Es necesario hacer algún tipo de configuración para el MXT65+G para que el mismo código del TC65, funcione?
    De antemano muchas gracias.

    • blogElectronica dice:

      Hola Rafael,

      disculpa la tardanza, pero he estado un tiempo KO con otros temas.
      El MTX65+G NO TIENE SPI a menos que lo pidas así de fábrica (o te expliquen como modificar el PCB para ello (unas resistencias)) El motivo es que SPI comparte líneas con las líneas de control de flujo RTS y CTS del puerto serie, y es una cosa u otra.

      Salu2.

  9. Ricardo dice:

    Hola he estado viendo y en varios Reply se habla de ejemplo de comunicacion I2C para lso modulos MTX, lo he buscado pero no le encuentro podrias orientarme donde ver algun ejemplo que me sirva para el I2C en modulos MTX, gracias un saludo

  10. Uriel dice:

    Hola,
    estoy utilizando el Tc65i, con i2c pero me he encontrado con un problema no puedo mandar Start repetido con la clase de java (I2cBusConnection), escribir datos de i2c y leerlos no me da problemas (con este formato S ADDR (R/W) DATA A P) pero cuando quiero generar un start repetido en una transmisión de datos no se exactamente como generarlo el API de java no tiene información sobre esa secuencia, tienes idea si se puede generar.
    S ADDR (R/W) DATA A Sr ADDR (R/W) DATA A P

    Saludos

    • blogElectronica dice:

      Hola Uriel,

      no entiendo muy bien a qué te refieres con el Start repetido. ¿Te refieres por ejemplo a escribir en una EEProm primero el puntero inicial de donde leer/escribir y después físicamente la lectura/escritura? ¿Es eso lo que quieres decir con doble start?

      Si es eso dímelo, tengo algún ejemplo.

      Salu2

  11.  
Deja una Respuesta

Puedes publicar un comentario aquí si quieres, pero te recomiendo que uses el nuevo foroElectronica.com para introducir comentarios. Te contestaré más rápido. Recuerda que debes registrarte si no lo estás para publicar un comentario.