Raspberry PI y los pines GPIO: Controlar otros dispositivos desde el puerto serie

En la anterior entrada de esta serie, vimos como controlar Raspberry PI desde el puerto serie de nuestro PC; gracias al puerto UART y un adaptador de TTL a RS232.

Hoy veremos como invertir los papeles, y controlaremos dos dispositivos desde el puerto serie de la PI, un Router y un Switch; para lo que debemos hacer algunos cambios en la configuración por defecto del puerto serie.

Para el segundo ejemplo, en el que conectaremos Raspberry PI a un Switch HP Procurve 2610-24; necesitaremos la placa conversora de TTL a RS232, que ya utilizamos en anteriores entregas; con WRTNode la conexión será directa entre puertos UART.

Conversor TTL Rs232
En el primero de los casos nos conectaremos a WRTNode, para lo que simplemente debemos conectar Raspberry PI con WRTNode mediante sus puertos UART invirtiendo las señales; con la tabla de abajo, y el siguiente esquema podremos entenderlo mejor.
 Raspberry PI Modelos A, B, A+, B+ WRTNode
 GPIO 14 (UART TXD)
GPIO 62 (RXD2)
 GPIO 15 (UART RXD) GPIO 75 (TXD2)

Esquema de conexiones Raspberry PI – WRTNode.

Las conexiones entre la placa conversora de TTL a RS232 y Raspberry serán las mismas que en las pasadas entregas, pero adjunto la explicación referente al conexionado; para facilitar así el seguimiento de la práctica que vamos a realizar.

 Raspberry PI Modelos A, B, A+, B+ Placa conversora TTL a RS232 
 VCC
+ 5V
 TX
GPIO 14 (UART TXD)
 RX
GPIO 15 (UART RXD)
 GND GND
PB150047Conexiones

Esquema de conexiones Raspberry PI – Adaptador RS232.

Algunos módulos conversores de TTL a RS232 no deben alimentarse externamente bajo ningún concepto ya que reciben la alimentación desde el puerto serie, y podríamos quemar nuestra Raspberry PI por sobrealimentación; en nuestro caso vamos a utilizar un conversor basado en el chip SP3232EEN, que si debemos alimentar desde Raspberry a través del pin VCC de la placa conversora.

Pinout y diagrama de conexiónes extraído del datasheet de SP3232E, idéntico a SP3232EEN.

Pinout y diagrama de conexiones extraído del datasheet de SP3232E, idéntico a SP3232EEN.

Ya solo nos falta conectar el Switch HP Procurve 2610-24 al puerto serie, con un cable RJ45 – RS232 rescatado de un viejo router Cisco; y como ambos conectores DB9 son hembra, necesitaremos un cable RS232 macho a macho, o puentear los dos dispositivos, cruzando también TX y RX.

Una vez esté todo correctamente conectado, abriremos el archivo /etc/inittab en Raspberry y comentaremos la última línea; para desactivar el login a través del puerto UART.

#/etc/inittab original
#Spawn a getty on Raspberry Pi serial line
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

A continuación podemos observar la última línea del archivo ya comentada, así es como debe quedar.

#/etc/inittab modificado
#Spawn a getty on Raspberry Pi serial line
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

También debemos editar el archivo /boot/cmdline.txt, eliminando la referencia a /dev/ttyAMA0; para que no muestre la información del arranque mediante el puerto UART.

#/boot/cmdline.txt original
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

Así debe quedar el archivo tras eliminar la secuencia de texto que hace referencia hacia el puerto al que se debe enviar la información del arranque.

#/boot/cmdline.txt modificado
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

A continuación, si no lo hicimos ya en el anterior tutorial; instalaremos ckermit, un software para controlar el puerto serie; y finalmente reiniciaremos para aplicar los cambios de configuración anteriores.

pi@raspberry:~$ sudo apt-get install ckermit
pi@raspberry:~$ sudo reboot

Lo primero que debemos hacer es indicarle el dispositivo con el que va a trabajar; en Raspberry PI por defecto, es /dev/ttyAMA0 y con la opción -l le vamos a indicar que se conecte.

pi@raspberry:~$ sudo kermit -l /dev/ttyAMA0

Una vez abierto ckermit, solo nos queda establecer los parámetros para cada conexión; primero haremos la prueba con WRTNode.

(/home/pi) C-Kermit> set speed 115200
(/home/pi) C-Kermit> set parity none
(/home/pi) C-Kermit> set flow-control none
(/home/pi) C-Kermit> set carrier-watch off
(/home/pi) C-Kermit> connect
 
Connecting to /dev/ttyAMA0, speed 115200
 Escape character: Ctrl-\ (ASCII 28, FS): enabled
Type the escape character followed by C to get back,
or followed by ? to see other options.
----------------------------------------------------

Ahora pulsaremos la tecla enter, y ya estamos en una terminal de administración de OpenWRT; el firmware de WRTNode.

BusyBox v1.22.1 (2014-08-13 19:31:12 UTC) built-in shell (ash)
Enter 'help' for a list of built-in commands.

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 BARRIER BREAKER (Bleeding Edge, r41508)
 -----------------------------------------------------
  * 1/2 oz Galliano         Pour all ingredients into
  * 4 oz cold Coffee        an irish coffee mug filled
  * 1 1/2 oz Dark Rum       with crushed ice. Stir.
  * 2 tsp. Creme de Cacao
 -----------------------------------------------------
root@OpenWrt:/#

Hagamos lo mismo con el Switch HP ProCurve, mas parecido a los típicos Cisco; e idéntico en su configuración.

pi@raspberry:~$ sudo kermit -l /dev/ttyAMA0

Ahora igual que antes, establecemos los parámetros para la conexión que serán los mismos para los dos casos; finalmente pulsaremos enter, y ya podremos iniciar sesión.

(/home/pi) C-Kermit> set speed 115200
(/home/pi) C-Kermit> set parity none
(/home/pi) C-Kermit> set flow-control none
(/home/pi) C-Kermit> set carrier-watch off
(/home/pi) C-Kermit> connect
 
Connecting to /dev/ttyAMA0, speed 115200
 Escape character: Ctrl-\ (ASCII 28, FS): enabled
Type the escape character followed by C to get back,
or followed by ? to see other options.
----------------------------------------------------
Connected at 115200 baud
ProCurve J9085A Switch 2610-24
Software revision R.11.07

Copyright (C) 1991-2008 Hewlett-Packard Co. All Rights Reserved.
 RESTRICTED RIGHTS LEGEND
Use, duplication, or disclosure by the Government is subject to restrictions as set forth in subdivision (b) (3) (ii) of the Rights in Technical Data and Computer Software clause at 52.227-7013.

 HEWLETT-PACKARD COMPANY, 3000 Hanover St., Palo Alto, CA 94303

We'd like to keep you up to date about:
 * Software feature updates
 * New product announcements
 * Special events

Please register your products now at: www.ProCurve.com
Press any key to continue
Username: admin
Password: *****

Si te ha gustado puedes seguirme en Twitter, Facebook, Google+, Linkedin, o compartirlo con los botones ubicados debajo de esta publicación, si tienes cualquier pregunta o sugerencia no dudes en comentar.

Ayudanos a llegar a más lectores Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

Deja un comentario