domingo, 26 de mayo de 2013

Unboxing Mojo (placa de desarrollo FPGA)


La presente entrada es para mostraros mi última adquisición, una FPGA development board llamada Mojo, basada en el chip Spartan-6 de Xilinx.



Esta placa proveniente de la lanzadera de negocios y productos Kickstarter sale a un precio de 75 USD, que para una placa para diseñar tu propio hardware esta muy bien de precio.

Características
  • Spartan 6 XC6SLX9 FPGA - 9.152 celdas lógicas
  • 84 pines IO digitales de propósito general (GPIO 3.3V)
  • 8 entradas analógicas
  • 8 LEDS controlados por el usuario
  • Conexión USB para configurar la FPGA y enviar recibir datos de nuestro diseño
  • Regulación de voltaje pensión (4,5 V - Entrada de 12 V, 3,3 V y 1,2 V salidas)
  • Reloj de 50 MHz (se puede multiplicar internamente por el FPGA)
  • Botón de reinicio para ser usado en nuestros diseños

Unboxing
El paquete recibido por el fabricante.

Desempaquetando la placa.

Vista frontal de la placa.

Vista inferior para dejar sin dudar a dudas su nombre.

Uso
De momento estoy configurando la aplicación ISE Design Suite de Xilinx como primer punto de partida para empezar a diseñar el hardware sobre la placa de desarrollo FPGA, y luego a refrescar los conocimientos de VHDL que están casi olvidados desde la época universitaria.

Más información en embeddedmicro.com



lunes, 20 de mayo de 2013

Uso de los puertos GPIO en la Raspberry Pi con una pantalla LCD

En una entrada anterior en el blog vimos como usar los pines GPIO para encender/apagar la Raspberry Pi utilizando una miniplaca externa. Ahora, vamos a ver otro ejemplo práctico, siendo en esta caso conectar una pantalla LCD a fin de informar lo que queramos.

Lo primero, veamos diferentes placas/breadboards para el prototipado, que podemos adquirir por ejemplo en Adafruit.


Detalle del adaptador a breadboards/protoboards

Una placa para circuito definitivo (mediana)
 Otra placa
 Resultado tras soldar


Ejemplo del circuito
El siguiente esquema (realizado con fritzing 0.7.12) muestra el circuito que he creado para conectar de manera rápida y sencilla una pantalla de LCD a la Raspberry Pi.



Resultado final


Y otro ejemplo dinámico...

Espero que veáis lo sencillo y versátil que es la Raspberry Pi. y para lo que queráis saber el como se comunica, en otra entrada hablaremos de como usar las librerías para escribir en la pantalla LCD; dando una pista: una simple y sencilla librería Python, aunque existen múltiples alternativas (ver enlace).


sábado, 11 de mayo de 2013

Interruptor de encendido/apagado para la Raspberry Pi

De todos es conocido que a fin de reducir costes en la placa Raspberry Pi no se incluyen por defecto el botón de encendido/apagado tan común en otros sistemas. Pues no tiene por que ser así, y como ejemplo una pequeña placa presentada por MausBerry Circuits que permite esta funcionalidad.

La miniplaca que podéis ver en la imagen adjunta dispone de las siguientes funcionalidades:


  • Botón de encendido y apagado (On / Off Power switch)
  • Botón de reset.
  • 2 conectores de comunicación vía GPIO con la Raspberry Pi

De esta manera, esta placa puede comunicarse con la Raspberry Pi y hacer un cierre correcto del sistema y acto seguido la placa misma desconecta la alimentación de la Raspberry (quedando todos los LEDs apagados). Al conmutar a la posición On el sistema vuelve a alimentar la Raspberry haciendo que se inicie correctamente.

Configuración

Primero de todo es necesario identificar dos puertos GPIO que no utilicemos, en mi caso he utilizado el GPIO23 y GPIO24.

Para que los dos sistemas se comuniquen, es necesario la instalación de un pequeño programa en la Raspberry Pi, tal que se a capaz de interactuar y reconocer la información que llegan por los puertos GPIO.

Primero, descargamos el programa de configuración:
wget http://www.mausberrycircuits.com/setup.sh

y lo instalamos:
sudo bash setup.sh

Ya podemos reiniciar el sistema.
sudo shutdown -r now

Si quisieramos cambiar los pines GPIO de comunicación con el Interruptor (Switch), debemos de editar el fichero generado en la instalación.

sudo nano /etc/switch.sh

concretamente, las lineas GPIOpin1=23 y GPIOpin2=24 con los pines que deseemos descritos en la imagen de distribución de pines de la Raspberry Pi.

Resultado final

En la siguiente imagen podemos apreciar el conexionado de la alimentación y de los dos cables de control entre ambas placas.


y en detalle el dispositivo interruptor.



Ahora ya disponemos de un interruptor en condiciones (por 15 EUR), que cierra el sistema de manera correcta, y que nos enciende la Raspberry Pi sin tener que ir enchufando/desenchufando los cables de la alimentación.

Por último, un vídeo de su funcionamiento.