Archivo de marzo 2009

Si has trabajado alguna vez con los GPIO de los módems Cinterion TC65 o XT65 ( o sus terminales MTX) habrás comprobado que hay varias formas de trabajar con ellos. Hay comandos AT que nos permiten configurar un determinado GPIO como entrada o como salida y hay otros comandos AT que nos permiten saber el estado de un GPIO configurado como entrada (si hay un 1 ó un 0) o bien nos permiten cambiar el estado de una salida.

En uno de los ejemplos java que he ido poniendo por este blog, concretamente en el EJEMPLO_GPIO, utilizaba simplemente el comando AT^SGIO que devuelve el estado del pin en ese momento. Depende de la aplicación que queramos llevar a cabo puede ser suficiente con este comando AT, pero lo normal no es utilizar este sistema ya que la “frecuencia de barrido” que podemos conseguir es muy baja (además de cargar el sistema) y por tanto resulta muy complicado detectar cambios muy pequeños en el estado de un pin de entrada, es decir, que si por ejemplo tienes que detectar el pulso de detección de un volumétrico a lo mejor no lo cazas.

modem-entrada-digital

Lo mejor que puedes hacer para detectar los cambios de estado de las GPIOs es utilizar el polling. De esta manera el módem te devuelve un mensaje URC cada vez que se detecta el cambio en uno de sus GPIOs.

Veámoslo con un ejemplo. Imagina que quieres controlar las entradas GPIO1, GPIO2, GPIO3 y GPIO4 ¿Cómo lo hacemos?

Pues lo primero es habilitar los GPIOs, para ello enviamos:

AT^SPIO=1

Después configuramos los pines GPIO1, GPIO2, GPIO3 y GPIO4 como entradas, para ello:

AT^SCPIN=1,0,0

AT^SCPIN=1,1,0

AT^SCPIN=1,2,0

AT^SCPIN=1,3,0

Tras ello creamos un puerto, es decir, un puerto con todos aquellos GPIO que queramos involucrar en el polling:

AT^SCPORT=0,1,2,3

Al enviar este comando el comando AT nos devolverá un IDPort (un identificador de puerto), por ejemplo nos devuelve IDPort = 112

Y ya lo tenemos todo listo para activar el polling. Lo activamos haciendo:

AT^SCPOL=1,112

De esta manera cada vez que haya un cambio en una de las GPIO, el módem nos enviará un URC del estilo:

^SCPOL: 112, x

donde x puede valer de 0 a 1024, es decir, devuelve el estado de los 10 posibles GPIO que puedes controlar con el módem TC65.

Bueno, otro día más, ahora me voy a preparar la cena, que hoy dan CSI las vegas y es de la poca TV que veo en toda la semana. Y es que, la verdad, noto que cada vez me gusta menos la tele. ¿Me estaré haciendo mayor? :S

Etiquetas: , , ,

Comments 9 Comentarios »

Tal vez tenía que haber puesto un artículo como el que voy a poner hoy hace ya tiempo, realmente es algo que he comentado bastantes veces en respuestas a preguntas de los usuarios de este blog. Es referente al tema del autobauding y el java.
  
Básicamente lo que quiero decir en este artículo se resume en una línea: si vas a usar java con un módem TC65 o XT65 (o los terminales MTX65 / MTX65+G) no utilices autobauding. Para quien no lo sepa, autobauding es una características de los módems, activable con at+ipr=0, que permite no tener que establecer una velocidad del puerto serie fija al módem, sino que éste, al recibir los primeros datos por el puerto serie “averigua” la velocidad de los datos y se configura para trabajar a esa velocidad).
  
Utilizar autobauding está muy bien en muchas circunstancias, es muy cómodo, pero puede inducir a errores cuando trabajas con Java. Y es que Java y autobauding no se quieren.
 
  
java-autobauding
 
 
¿Y cuales son los problemas?
  
Pues los problemas son varios:
Etiquetas: , , , , , , , ,

Comments No Hay Comentarios »

 

Para variar un poquillo, hoy me salgo del tema de GSM y nos vamos a Bluetooth. Hoy voy a comentar un producto que conozco desde hace poco pero que es bastante interesante, muy útil para algunos proyectos.  Se trata del módulo LM-048 de la casa LM Technologies (distribuido en españa por Matrix).  Un digamos, conversor serie – bluetooth, o mejor dicho, un conversor serie RS232 – bluetooth. Como puedes ver en las fotos es un modulito de reducidas dimensiones.
  

serie-rs232-bluetooth 

Básicamente cuenta con un conector DB9 hembra, un interruptor de 2 posiciones en la parte superior y un conector auxiliar al lado de alimentación (conector de tipo mini-usb, en la foto anterior no se ve, está en el otro lado).
 

¿Como se trabaja con este conversor serie – bluetooth?

Pues a través de comandos AT, de igual forma que trabajamos con los módems. Es decir, desde el puerto serie puedes enviarle comandos de configuración. El equipo viene con un pequeño manual impreso con los comandos AT, son un par de docenas, muy poquitos, nada que ver con el nº que estamos acostumbrados a trabajar con los módems en este blog. El LM-048 tiene integrada el stack bluetooth y cuenta con el perfil bluetooth SPP (Serial Port Profile).

  
Lee el resto de esta entrada »

Etiquetas: , ,

Comments 19 Comentarios »

Muy buenas. En el post de hoy voy a poner cómo conectar a Internet un módem UMTS / HSDPA (en concreto el terminal MTX-H25 de Matrix, basado en el módem HSDPA Siemens / Cinterion HC25) con un sistema operativo Linux (en concreto un Ubuntu).  No voy a descubrir nada, pues la información también se puede encontrar en la guía del usuario del módem. La única diferencia es que aquí voy a poner por pasos más concretos del 1 al 7 qué hay que hacer y en español. Los méritos para mi amigo Linuxero Javi, autor del manual original ;)

linux-vs-windows

Paso1.

Primero configuramos el módem MTX-H25 en modo MDM, desde Windows es muy fácil. Cogemos el módem tal como viene de fábrica y lo conectamos a un PC con Windows. Al cabo de unos segundos (unos 10) veréis que en “Mi PC” aparece un “Mass Storage Device”, es decir, como si fuera un pen drive. Entramos en él y se instalarán los drivers del módem (sí, has acertado, los drivers del MTX-HC25 están dentro del propio módem, ¿chulo verdad? :) )

Una vez instalados los drivers en el Panel de Control de Windows veréis que se han instalado 3 dispositivos nuevos. Una tarjeta de red, un módem USB y un COM virtual. Mirar el COM virtual creado para averiguar el número de puerto COM.

Una vez tenemos el puerto COM ya podemos abrir el hyperterminal y ejecutar el comando “at^susb?”  Tenéis que configurarlo como lo que os pongo yo aquí debajo, no voy a entrar en más detalles que decir que en el “Startup” tiene que estar en modo Mdm porque es el que se necesita para trabajar en Linux.

at^susb?
^SUSB: “Startup”,”Mdm”
^SUSB: “MaxPower”,”10″
^SUSB: “PowerSource”,”SELF”
^SUSB: “Mdm/DD”,”0″
^SUSB: “MdmNet/DD”,”0″
^SUSB: “MdmNet/TO”,”60000″
^SUSB: “MS/CRC”,”6B1A1842?”
^SUSB: “MS/DD”,”0″
^SUSB: “MS/OnEject”,”MdmNet”
^SUSB: “MS/WProt”,”Disabled”

Lee el resto de esta entrada »

Etiquetas: , , , , ,

Comments 18 Comentarios »