Comunicacion USB con modem SIM900 utilizando MCP2200

Hola! Aqui está el nuevo proyecto en el que he estado trabajando un par de dias. Desde que desarrollé el módulo SIM900 y lo probé, no he vuelto a trabajar con él. Y  tenía en casa un par de muestras del conversor serie-USB MCP2200 que quería probar. Así que así ha surgido la idea: realizar una interfaz USB para esta tarjeta. Esto permite utilizar la tarjeta con el módulo SIM900 con un PC, Raspberry o similar, sin necesidad de alimentación externa o otras señales de control. Solamente hace falta conectar el cable USB a la tarjeta y empezar a comunicarse con el mundo!

  • Hardware

Para desarrollar esta tarjeta, he vuelto a utilizar componentes que tenía en casa. Lo primero, el esquema del adaptador, que se puede descargar aqui: SIM900_USB_CONTROLLER. Este esquema corresponde a la interfaz USB, probablemente también se necesite el esquema del módulo SIM900 para tener una visión global del sistema con las dos tarjetas. Toda la información del módulo está disponible aqui.

El esquema muestra el hardware necesario para implementar la interfaz USB. Es realmente sencillo, y contiene las siguientes partes:

  1. Conector USB: Tipo B, acodado. Es el conector más fácil de soldar en la placa de prototipo.
  2. Regulador 5V / 3V3: La interfaz con el módulo SIM900 tiene unos niveles de 3.3V, por lo que el conversor serie-USB ha de cumplir con estos niveles. Por este motivo, he añadido un regulador lineal de bajo dropout, el MC33269. Asi, desde los 5V del puerto USB se pueden obtener los 3.3V para alimentar toda parte del conversor USB. El pin VUSB del MCP2200 (referencia interna de 3.3V) está conectado a esta alimentación externa de 3V3. Con esta configuración, el regulador interno del MCP2200 queda deshabilitado. Además, otra consecuencia de esta configuración es que el nivel ‘1’ lógico de los pines del MCP2200 será de 3V3.
  3. Conversor Serie- USB MCP2200:  Una forma sencilla de obtener un conversor entre un puerto USB y un puerto serie. Este integrado es un PIC18F14K50 con un firmware específico, se puede leer aqui acerca de este tema. Tenía en casa un par de muestras de este conversor en formato SO de 20 pines. Con ayuda de un adaptador SO a DIP como este, es muy facil trabajar con este integrado e incluirlo en cualquier diseño. Ademas, la gente de Dangerous Prototypes ha desarrollado un tarjeta con este integrado que me ha servido de inspieracion. Acerca del circuito, nada especial: el conversor requiere un cristal externo de 12MHz y una resistencia de pull-up en el pin 4 (RST). Ademas he utilizado los pines 5 y 6 para indicar la actividad del puerto serie con dos leds. Este dispositivo es realmente sencillo de utilizar!!.
  4. Conexión módulo SIM900: La interfaz con la tarjeta SIM900 que hice anteriormente. Para alimentar el módulo, he utilizado los 5V del puerto USB. Y las líneas de TX / RX para la comunicación con el modem, no hace falta ninguna otra señal.

Aqui hay un par de fotos de la tarjeta con la identificación de los componentes:

SIM900 MCP2200 USB INTERFACE

TOP LAYER

SIM900 MCP2200 USB INTERFACE

BOTTOM LAYER

La tarjeta de prototipo tiene las mismas dimensiones y forma que el módulo SIM900:

IMG_20150522_123238980Una vez montados los componentes y comprobado que la alimentación es correcta (la de 5V del puerto USB y la de 3.3V), es hora de conectar el módulo SIM900 y comprobar las comunicaciones a través del puerto USB. El primer paso a realizar es instalar el driver del MCP2200. Se puede descargar desde la web de Microchip o, si se utiliza Windows, directamente desde aqui: MCP2221 Windows Driver 2014-10-09.

He utilizado el programa terminal Tera Term para establecer la comunicación con el módulo SIM900, utilizando comandos AT. Como referencia, aqui está el último manual de comandos AT soportados por el SIM900, proporcionada por el fabricante SIMCOM (versión actual 1.07). Todas las pruebas han sido satisfactorias, incluyendo llamadas de voz y envío y recepción de SMS. Ya que en el módulo SIM900 se montaron dos condensadores de 470uF (referencias C8 y C9) en la alimentación del modem, se puede utilizar este módulo solamente con la alimentación proporcionada por el puerto USB, eliminando la necesidad de una fuente de alimentación externa.

IMG_20150522_123706367  IMG_20150522_123614961La única dificultad que he encontrado en este proyecto es como hacer que el modem arranque automáticamente cunado se aplica la alimentación. Este modem requiere un pulso a nivel bajo mayour que 1 segundo en la línea PWRLEY para arrancar:

SIM900 Power OnCon un microcontrolador que establezca las comunicaciones con el módulo, esto se implementa de una forma muy sencilla. Además, la tarjeta dispone de un pulsador para forzar este arranque de forma manual. Pero esto no es operativo cuando se quiere controlar el modem desde un PC o similar. En este caso, lo que se pretende es que cuando se conecte el módulo, el modem arranque de forma automática, sin tener que presionar ningún botón. Despues de buscar por la web, he encontrado una solución que parece funcionar: llevar directamente la señal PWRKEY a masa (GND). Esto permite que el módem SIM900 arranque automáticamente cuando se le aplica alimentación. He encontrado esta solución en un par de sitios, aqui es donde aparece con más detalle. Para realizar esta modificación he quitado el transistor Q2 y he montado una resistencia de 0 ohm entre surtidor y drenador:PWRUP_MOD

  • Configurando el MCP2200

El conversor MCP2200 viene con el firmware grabado de fábrica y listo para funcionar, por lo que no hay nada que hacer para comenzar a utilizarlo. Sin embargo, Microchip tiene disponible una pequeña utilidad con la que configurar algunos parámetros del MCP2200: MCP2200 Configuration Utility. Con esta utilidad se pueden modificar parametros como el Vendor ID, Product ID, baud-rate por defecto y las funciones para las GPIO generales que estan a disposición del usuario:

MCP2200 Config Utility

He utilizado esta utilidad para configurar la funcionalidad de los led’s TX/RX. Primero hay que marcar la opción ‘Enable Tx/Rx LEDs’. Después de marcarla, se habilitan el resto de opciones, donde se puede elegir el tipo de funcionalidad del led. Si se selecciona la opción de parpadeo (‘Blink’), se podrá elegir la duración del mismo, entre 100ms ó 200ms:

IMG_20150522_145139730

  • Twitter
  • del.icio.us
  • Digg
  • Facebook
  • Technorati
  • Reddit
  • Yahoo Buzz
  • StumbleUpon

This post is also available in: Inglés

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.