Conectando un PIC al Puerto Serie (RS232) | |||||
Por muy antiguo que esto pueda parecer, en la actualidad nos encontramos a diario con aplicaciones autónomas que poseen un conector DB9 (o DB25) y que se comunican a cualquier ordenador de mesa mediante el protocolo conocido en forma popular como “comunicación por puerto serie”. El propósito de este artículo es ayudarte a construir un dispositivo autónomo con salida RS232 y que éste sea capaz de comunicarse con un ordenador de mesa. Esto nos permitirá, en un futuro, utilizar el nuevo circuito integrado de Microchip: el MCP2200. ¿Para qué se utiliza ese circuito integrado? Muy sencillo: para adaptar una conexión serie a USB. D |
|
||||
icho de otro modo: para reemplazar a todos esos cables RS232 – USB que has comprado y no te han funcionado. Como decimos siempre, antes de correr debemos aprender a caminar, y éste es el comienzo.¡Sí, por supuesto! ¡Claro que sabemos que el puerto serie ha quedado obsoleto y ya no se encuentra fácilmente en el panel trasero de cualquier ordenador! Además, luego de haber realizado tantas experiencias mediante la comunicación USB – Ordenador en diferentes artículos publicados en NeoTeo, comenzar a hablar y traer a la mesa de trabajo una conexión mediante puerto serie suena como un retroceso tecnológico, como un viaje al pasado, como un montaje “retro”. La explicación de todo está en el sumario de este artículo. |
|||||
Aún restan muchos años para ver aplicaciones que se comuniquen a un ordenador mediante el puerto serie, el clásico puerto COM donde se conectaba el ratón o el receptor de infrarrojos para comandar el Winamp desde la cama. Exacto, ese conector DB9 macho que en más de una oportunidad nos “mataba” la placa madre del ordenador cuando comenzábamos a experimentar con él. Claro, al dejar de funcionar este puerto ya no podíamos utilizar el ratón y debíamos apelar a alguna tarjeta PCI que resolviera nuestras desafortunadas actividades “científicas”. |
|||||
|
|||||
|
La mayoría de las aplicaciones realizadas con microcontroladores que traspasan la línea del gadget sencillo, del juguete temporal o de la unidad autónoma de trabajo, apuntan habitualmente al manejo de datos útiles que, de un modo u otro, siempre se intenta llevar a un ordenador para su procesamiento. La inmensa mayoría de microcontroladores que hoy existen en el mercado y que tenemos “a mano” para cacharrear y jugar un rato traen una unidad de comunicación serie en su interior. En estos últimos años, esta característica, que permite comunicar de manera muy eficaz a dos microcontroladores entre sí, ha comenzado a presentar un problema “de hardware y conectividad” al avanzar una creciente desaparición (casi en forma definitiva) de los conectores DB9 en los paneles traseros de los ordenadores. Ahora todo es USB. La conexión serie por naturaleza se ha trasladado al Universal Serial Bus y esto se evidencia más cuando pasamos a hablar de ordenadores portátiles. Entonces ¿qué hacemos con aquellas aplicaciones que teníamos que se conectaban al puerto serie de un ordenador? El mercado (chino, claro) nos trajo una lluvia de soluciones en forma de cables que servirían para resolver el problema de las conexiones: un adaptador DB9 macho a USB, la panacea universal en nuestras manos por unas pocas monedas. ¿Qué más se le podía pedir a la tecnología? ¿Que venga con un LCD de 42” de regalo?
Sin embargo, la realidad fue muy cruel con la mayoría de los incautos compradores de estos cables cuando descubrían que no funcionaban en absoluto, y aquellos cables que lo hacían tenían las funciones muy limitadas y/o erráticas. Cuando apareció en escena el circuito integrado FT232 (de la empresa FTDI) parecía que la luz asomaba en el horizonte y que rápidamente se convertiría en la solución definitiva. De hecho, existen infinitas aplicaciones que lo incorporan como solución de comunicación entre el USART (Universal Synchronous Asynchronous Receiver Transmitter) de un microcontrolador y el bus USB (Arduino es un ejemplo de ello). Sin embargo, su pequeño encapsulado y su compleja configuración ahuyentan a más de un aficionado novel que naufraga en el intento de implementar esta solución. Para muchos es la solución ideal, para otros es un logro muy difícil de alcanzar. No todos los aficionados tienen la misma habilidad manual para construir un dispositivo basado en un encapsulado tan pequeño. Si desarrollar aplicaciones en encapsulado DIP es toda una hazaña para muchos entusiastas, hablar de manipular un encapsulado LQFP se traslada al mundo de la ciencia ficción. |
||||
El FT232 ha sido la solución de muchas plataformas para obtener conectividad USB |
|||||
Cual si fuese un jugador
muy astuto, y luego de observar este convulsionado, mal definido,
confuso y complejo escenario, Microchip decidió ocupar un espacio dentro
del mundo de los protocolos de comunicaciones con el circuito integrado
MCP2200: un conversor USART – USB completo. Además, ha provisto al
mercado de herramientas para configurar este componente de acuerdo a las
necesidades de cada aplicación. Pero no avancemos aún hacia él. Si
todavía no hemos iniciado nuestro trabajo con un desarrollo por puerto
serie, trabajar ahora con el MCP2200 sería tan ilógico como comenzar a
ver una película desde la mitad. Veríamos un final glorioso pero no
entenderíamos por qué sucedieron todas esas explosiones y quiénes eran
esos muchachitos que lograron escapar justo a tiempo (por supuesto,
serían los buenos de la historia; siempre ganan los buenos. Si conoces
una película donde ganen los malos, avísame). |
|||||
tener siempre a mano un sistema de iluminación de emergencia. |
Estructura externa e interna del MAX232 |
||||
En su arquitectura interna, el MAX232 posee los accesorios necesarios para obtener las tensiones que se requieren a ambos lados de los circuitos que enlaza y cuenta con cuatro adaptadores-inversores de tensión: dos son utilizados para la conversión TTL – RS-232 y los otros dos para la operación inversa. En la mayoría de las aplicaciones con microcontroladores se utilizan sólo dos (uno de cada tipo), pero cuando se lo emplea en aplicaciones especiales, como puede ser el caso de redes RS-485, se agrega una conexión extra para controlar la prioridad de uso del bus (RS-485). Es decir, la señal RTS (Request To Send = Petición de envío) que proviene desde el ordenador pasa por una unidad de recepción del MAX 232 y se entrega al controlador de bus RS-485 en niveles de tensión TTL. |
|||||
|
Circuito propuesto para una interfaz Microcontrolador / RS-232 |
||||
En nuestro circuito hemos utilizado todas las unidades que componen el MAX232 y que en alguna ocasión podemos llegar a utilizar. La placa realizada para el montaje coincide en dimensiones y conexión con los zócalos reservados en la entrenadora NeoTeo. Es decir, la placa está realizada con la intención de que pueda ser incrustada en la entrenadora y formar así un bloque único, tal como veremos más adelante en los videos. Vale aclarar que por razones de costos, la construcción de esta placa no ameritaba una construcción sobre un circuito impreso de doble faz. Es por este motivo que debemos alertarte sobre la falta de una vía en el dibujo ofrecido de ejemplo del circuito impreso. La unión de los ánodos de los diodos LEDs (que se encuentran todos unidos) deberá conectarse con el positivo de la alimentación de esta placa. Este puente se notará al ver el segundo video y, para facilitar tu trabajo, los puntos a unir están indicados en el dibujo inferior con color amarillo. Por supuesto, si deseas puedes construir tu propio diseño de circuito impreso mejorando la ubicación de los componentes según tu conveniencia y gusto. |
|||||
Circuito impreso utilizado por nosotros |
Aspecto final de la placa terminada |
||||
Los colores de los LEDs
empleados en el montaje coinciden con los que hemos observado en otras
placas utilizadas para este propósito, no porque sepamos que existe
algún código de colores que indique esta asignación. Entonces, rojo en
recepción (Rx) y verde en transmisión (Tx). Para las otras dos
conexiones auxiliares seleccionamos el color amarillo para diferenciar
su activación respecto a los indicadores de tráfico de datos. Todos
estos indicadores visuales nos ayudarán a apreciar el funcionamiento
correcto de la placa. Por último, tal como se observa en las imágenes,
la utilización de RTS y CTS se realizará mediante puentes externos hasta
la entrenadora, en caso de que la aplicación lo requiera en algún
momento. |
|||||
La mecánica de
funcionamiento del programa cargado en el PIC se sustenta en nueve
puntos fundamentales. Por supuesto, estos mismos conceptos pueden
aplicarse a otros lenguajes de programación. Nosotros lo evaluamos y te
lo mostramos en función del lenguaje Basic. Estos puntos son: |
|||||
Programa ejemplo utilizado y las 9 zonas fundamentales del proceso |
|||||
La velocidad de transmisión y recepción de datos se realiza a 38400 bps. Ten en cuenta de ingresar al panel de control de tu sistema operativo y controlar que esta velocidad coincida con la que está definida en el puerto serie de tu ordenador. Por defecto, siempre está configurada en 9600 bps. y tú deberás cambiarla. De lo contrario, cuando realices el programa para tu microcontrolador, coloca en la declaración HSERIAL BAUD el valor 9600. El resto de los parámetros deberá coincidir con el software que utilices para enviar los datos a través del puerto serie. En el último video te mostramos que la longitud del texto a enviar es de 16 caracteres y que ocupará sólo el primer renglón del LCD. “Hola Neotenianos” es un texto que ocupa esa cantidad de espacios. El segundo renglón está reservado para el mensaje de espera de datos (punto 6 en el listado del programa). Por último, también vale mencionar la demostración del encendido de los LEDs indicando el tráfico de datos. Esto es de una utilidad enorme a la hora de resolver problemas de conexión. ¿Estará recibiendo los datos? Luego de mostrarlos, ¿los estará enviando o se dispersa hacia otro lugar el programa? Estos son interrogantes que los LEDs te resuelven de manera muy elemental (además de comportarse como un atractivo visual muy “piola”). |
|||||
|
|||||
En este artículo vamos a descubrir que podemos escuchar mucho más que un poco de música en algunas estaciones de FM. |
Resumiendo
|
||||
Indice de montajes | |||||