Video 8: Pines y LEDs externos - Obijuan/digital-electronics-with-open-FPGAs-tutorial GitHub Wiki
Vídeo
Haz click en la imagen para ver el vídeo en Youtube
Descripción
La Icezum Alhambra dispone de un total de 32 pines de E/S repartidos en diferentes conectores. Aprenderemos a conectar LEDs externos a los pines de 3.3V de la FPGA y cómo hacerlos parpadear desde circuitos en Icestudio. Veremos cómo hacer distintos tipos de circuitos físicos para colocar estos LEDs
Colección
Academia-Jedi-HW-08.zip: Colección para este tutorial. Descargar e instalar
Contenido
- Material necesario
- Documentación de la Icezum Alhambra
- Pines de la Icezum Alhambra
- Conectando un LED externo a los pines de 3.3V
- LEDs externos intermitentes
- Montando circuitos externos
- Ejercicios propuestos (18 Bitpoints)
- Ejercicios entregados
- Autor
- Licencia
- Créditos y agradecimientos
- Enlaces
- FAQs
Material necesario
Materia necesario para hacer los ejemplos y ejercicios del tutorial:
Foto | Material |
---|---|
![]() |
Placa entrenadora pequeña |
![]() |
LED pasante, de cualquier color. Tamaño 3mm ó 5mm. Mínimo 2 |
![]() |
Resistencia de 100 Ohmios, de 1/4 W. Al menos 2 |
![]() |
Cable macho - hembra. Al menos dos. Este cable se puede obtener uniendo un hembra-hembra con uno macho-macho |
![]() |
Cable macho - macho. Al menos dos |
![]() |
Cable hembra - hembra. Al menos dos |
Documentación de la Icezum Alhambra
La documentación de la placa Icezum Alhambra está resumida en este diagrama, realizado por Alberto Piganti (¡Gracias!)
Está disponible en otros formatos: (PNG)(SVG)(PDF)
En este diagrama hay mucha información. Vamos a analizar la parte que nos es más familiar: los LEDS de la placa. Si miramos el diagrama veremos esto:
Junto a cada pin/LED hay unos cuadros con la siguiente información:
- Pin físico: Es el número de pin del encapsulado de la FPGA. En la Icezum alhambra, el encapsulado de la FPGA es un TQ144, y la numeración de los pines es como se muestra en la siguiente figura. También se han incluido los pines de los leds
-
Nombre del pin. Es el nombre asignado por Lattice, con independencia del encapsulado (Ya que cada encapsulado tiene una numeración diferente). Así, el pin denominado 1_62 es una salida de la FPGA que está en el banco 1 y que para los encapsulados TQ144 sale por el pin físico 95, pero saldrá por otro en un encapsulado diferente
-
Nombre en Icestudio. Es el nombre que se le asigna en los bloques amarillos de Icestudio
-
Tipo de pin. Indica de qué tipo es el pin. Las flechas blancas con fondo naranja significa que se trata de un LED
La información de la placa también está disponible desde el menú Ver/Pinout de Icestudio
Al pulsar la opción de Pinout se nos abre una ventana con la documentación de la Icezum Alhambra. Si tenemos seleccionada otra placa, saldrá su propia documentación
Sobre esta ventana podemos hacer zoom y navegar. En el caso de la icezum Alhambra, la documentación que se muestra en icestudio 0.3.1 está obsoleta. Hay una más moderna en el repo, que es la que se recomienda usar. En las siguientes versiones de Icestudio se actualizará
Pines de la Icezum Alhambra
La placa Icezum Alhambra tiene 4 tipos de pines para conectarse al exterior, resumidos en este diagrama
Estos conectores son:
1. Conectores de E/S hembra de 5 Voltios
2. Conectores de E/S macho de 5 Voltios, con alimentación y masa
3. Conectores de E/S macho de 3.3 Voltios
4. Conectores macho para entradas analógicas
Conectores hembra de 5V
Son los típicos conectores de Arduino que sirven para conectar cables macho y shields de expasión. Se encuentran en la parte superior e inferior de la placa, como se muestra en la figura
En total hay 31 pines, de los cuales 20 son de E/S de 5v. Los pines de E/S superiores se denominan D13 - D0 en Icestudio, y los inferiores DD5 - DD0. Todos estos pines tienen la característica de que son de 5v. Como los pines de la FPGA son de 3.3 Voltios, se pasan a través de unos conversores bidireccionales de 3V3 - 5v*. Por ello, no están conectados directamente a los pines de la FPGA, y sus características las determinan estos conversores.
Conectores de E/S macho de 5V con alimentación y masa
Son 20 pines de E/S, machos, dulicados de los 20 pines E/S de los conectores hembra de 5v
Cada uno de estos pines incluye uno adicional de alimentación (+5v) y masa (GND). En total son tres pines separados por colores. El pin blanco contiene la señal de E/S, el rojo la alimentación de 5v y el negro la masa (GND)
Tienen esta disposición para poder conectar directamente servos y sensores. Se denominan igual que sus duplicados hembra: D0 - D13 para los de la parte superior y DD0 - DD5 en la parte inferior. En esta foto se muestra un servo conectado al pin D0 y un sensor de infrarrojos en el D13
Aquí se muestran más detalles de la conexión a los pines machos
Conectores de E/S macho de 3.3V (GPx)
Son 8 pines macho dispuestos en dos filas de 4 pines, de color amarillo
Los 8 pines están conectados directamente a pines de la FPGA, que trabajan a 3.3V. Los pines hembra y macho anteriores están conectados a la FPGA a través de conversores de nivel. Se denotan con la nomenclatura GP0 - GP7. Esta es la disposición de los pines
Conectores macho para entradas analógicas
La Icezum Alhambra tiene 4 entradas analógicas situadas en la parte derecha, accesibles a través de pines macho
Cada entrada analógica (Azul) tiene un pin adicional de alimentación (rojo, 5v) y otro de masa (negro, GND)
Estas tiras de 3 pines permiten conectar directamente sensores de Luz o potenciómetros:
Aquí se pueden ver las conexiones con más detalle:
La FPGA NO tiene entradas analógicas, por lo que en la Icezum Alhambra hay un conversor Analógico-digital (A/D) que se conecta a la FPGA a través de un bus I2C. Por ello, para leer las entradas analógicas es preciso incluir en nuestros diseños de un circuito capaz de leer el bus I2C
Ejemplo 1: Conectando un LED externo a los pines de 3.3v
Vamos a conectar un LED externo y hacer que parpadee. Lo conectaremos a las salidas GPx de 3.3 Voltios
Material necesario
El material adicional a la Icezum Alhambra para la conexión del LED externo es:
- Protoboard. Placa de entrenamiento pequeña
- Cable Macho-hembra
- Cable macho-macho
- LED pasante, de 5mm ó 3mm, de cualquier color
- Resistencia pasante de 100 Ohm y 1/4W
Esquema
El esquema para encender el LED externo es
Como la salida es de 3.3V, usamos una resistencia de 100 Ohm en serie con el LED
Esquema del montaje
El esquema del montaje se muestra en este diagrama hecho con Fritzing (Versión 0.9.3b)
El archivo para abrir en Fritzing está disponible en el repo de los tutoriales: Ejemplo-1.fzz
Montaje físico
El montaje del circuito lo haremos sobre una base de corcho. Esto nos permite utilizar chinchetas para fijar los cables y otros elementos. En este primer circuito no usaremos más piezas, pero en los siguientes iremos colocando piezas impresas para amarrar los sensores y actuadores al corcho
Circuito en Icestudio
Para hacer parpadear el LED usaremos el circuito que ya conocemos, con un corazón de 1Hz (por ejemplo). Bien lo podemos cargar directamente desde los ejemplos, en el menú Archivo/Ejemplos/1-Ejemplos/01-LED-externo-parpadeante, o bien lo creamos desde cero. En esta colección el Bombeo de bits está bajo el menú Varios
Cargamos el circuito en la placa, y podremos ver el LED externo parpadeando
Ejemplo 2: LEDs externos intermitentes
Conectaremos ahora dos LEDs externos, a las salidas GP0 y GP7 respectivamente, y haremos que parpadeen alternativamente
El esquema es el mismo que en el ejemplo anterior, pero ahora con 2 LEDs, 2 resistencias y 4 cables
Esquema del montaje
El esquema de montaje en Fritzing es
Se ha duplicado el circuito del ejemplo 1 y se han conectado los cables a diferentes puntos
Montaje físico
Partiendo del montaje del ejemplo anterior, añadidos los nuevos componentes para conectar el segundo LED
Circuito en Icestudio
El circuito de los leds parpadeando alternativamente ya lo sabemos hacer. Bien lo hacemos desde 0 o bien lo abrimos desde los ejemplos a través del menú Archivo/Ejemplos/1-Ejemplos/02-LEDS-externos-alternantes
Cargamos el circuito y veremos los dos LEDs en acción:
Montando circuitos externos
Los circuitos externos para trabajar con placas como la Icezum Alhambra o Arduino se pueden realizar de diferentes maneras. Aquí mostraremos algunas de ellas
Placas entrenadoras
Una forma es utilizando protoboards o placas de pruebas. Es lo que hemos usado en los ejemplos 1 y 2
Conexiones directas
Cuando se trata de componentes sencillos, como LEDs y resistencias, se pueden hacer conexiones directas. Por ejemplo, enrollando la pata de la resistencia de 100 ohm con el LED
Luego usamos dos cables hembra-hembra para insertar la pata del LED en un cable y la de la resistencia en otro
Por último conectamos el cable del LED a cualquier de las salidas GPx de 3.3V y el cable de la pata de la resistencia a cualquier pin macho negro, que son GND
Circuitos sobre cartón / papel
Mediante la misma técnica de conexiones directas, pero usando un papel / cartón de soporte, se pueden hacer circuitos externos muy divertidos. Este es Franky:
Es un robot de cartón cuyos ojos son dos LEDs, y su nariz y boca resistencias de 100 Ohm
Construcción de Franky
Se parte de un trozo de cartón o cartulina, alargado, como se muestra en la foto. Con una chincheta se hacen agujeros para introducir los dos LEDs y las dos resistencias de 100 Ohm
Por la parte de atrás del cartón unimos las patas de los LEDs con sus respectivas resistencias. Los patas positivas del led (las patas largas) las dejamos sin unir. Las patas de las resistencias que no están unidas a los LEDS, las unimos entre sí, dejando un trozo de pata recto al final que sobresalga
Luego conectamos tres cables hembra-hembra, uno para cada LED y otro para las patas unidas de la resistencia, que van a masa
Plegamos el cartón, para darle forma de caja
Y lo cerramos. Pegamos los laterales con celo
Los cables los sacamos por la parte trasera, por un hueco recortado en la parte inferior y colocamos dos chinchetas en los lateras, para darte un aspecto más de Frankenstain :-)
Ponemos un poco de cinta aislante para juntar los cables. Y usamos una chincheta para fijar a Franky al corcho. Conectamos los positivos de los LEDs a los pines GP0 y GP7 de la Icezum, y el otro cable a cualquier de los pines machos negro de GND
Hacemos un rectángulo de papel con unos dobleces, de las dimensiones de la parte superior de la cabeza de franky. Lo usaremos como tapa
Y se la colocamos. La pegamos en los laterales con un poco de celo. ¡Ya tenemos a Franky Listo!
Circuito soldado en placas prototipos
Una opción para hacer circuitos externos más robustos es usar placas de puntos donde se sueldan los componentes. Se vende en placas de tamaños fijos que se pueden cortar fácilmente con una segueta para tener el tamaño de placa que queramos. Se colocan lo componentes, se sueldan y se usen con cables. En el caso de la placa del LED, como es muy sencilla, he usado las mismas patas de los componentes, en vez de cables
La conexión se puede realizar directamente con cables hembra - hembra
O pinchando la placa en una protoboard, y tirando cables macho - hembra
Circuitos imprimibles (PCBPrints)
Una opción muy divertida y sencilla es utilizar PCBprints. Son placas hechas con una impresora 3D, donde se colocan los componentes y luego se sueldan. La más sencilla de todas es "Hola Mundo", que sólo tiene un LED, una resistencia y un conector macho
En este enlace están las instrucciones de montaje
Igual que las placas anteriores, se pueden conectar directamente a la Icezum Alhambra usando cables hembra - hembra
O también se pueden conectar a través de una protoboard
Circuitos impresos (PCBs)
Por último, la opción más profesional es hacerte tu propio PCB y mandarlo a fabricar industrialmente. Una herramienta libre para diseñar PCBs es Kicad, que ya lo usaste para los ejercicios del tutorial 3
Esta es la placa FreeLEDs, que hicimos en el año 2005 y que fue una de las primeras placas libres hecha exclusivamente usando software libre :-)
Ejercicios propuestos (18 BitPoints)
Ver los detalles de los ejercicios y las entregas en el menú Archivos/Ejemplos/2-Ejercicios de la colección de este tutorial
Resumen:
-
Ejercicio 1 (Total 3 Bitpoints): Hacer un circuito digital que haga parpadear alternativamente dos LEDs externos, conectados en una protoboard, a la velocidad de 2Hz
-
Ejercicio 2 (Total 4 Bitpoints): Hacer un circuito digital para que los dos ojos de Franky parpadeen a la vez, a la velocidad de 4Hz. Es necesario construir a Franky
-
Ejercicio 3 (Total 8 Bitpoints): Montar al menos una PCBprint con un led y conectarlo a la Icezum Alhambra. Hacer que parpadee a la frecuencia de 1Hz. Se concecerán bitpoints extras por montar y poner más de un PCBprint (hasta un máximo de 5 PCBprints). Si has puesto más de 1 LED, dividirlos en dos grupos y hacer que parpadeen alternativamente a 1Hz
-
Ejercicio 4 (3 Bitpoints). Ejercicio Libre. Premiar la creatividad. Entregar por redes sociales o github: Pantallazos, enlaces, vídeos, etc...
Ejercicios entregados
Federico Coca
Ejercicio 1
- Vídeo
Ejercicio 2
Vídeo:
Ejercicio 3
Vídeo:
Ejercicio 4
Vídeo:
Ricardo Gómez (eagleman)
Ejercicio 1
Ejercicio 2
Ejercicio 3
Ejercicio 4
Diego Lale
Ejercicio 1
Ejercicio 2
Ejercicio 3
Ejercicio 4
Autor
- Juan González-Gómez (Obijuan)
Licencia
Créditos y agradecimientos
- A Alberto Piganti (Pighixxx) por hacer la documentación del pinout de la Icezum Alhambra. ¡Muchas Gracias! :-)
- A Jorge Lobo (Lobotic) Por incluir la Icezum Alhambra en Fritzing. ¡Muchas gracias! :-)
Enlaces
- Repositorio con las colecciones de la Academia Jedi de Hardware
- BricoGeek. Tienda Friki donde comprar componentes electrónicos
- Repositorio de la Icezum Alhambra
- Documentación de la Icezum Alhambra: (PNG)(SVG)(PDF)
- Icestudio
- Fritzing
- Icezum Alhambra en Fritzing
- Repositorio de PCBprints
- PCBprint "Hola Mundo"
- Placa FreeLEDs
- Monedas Bit imprimibles
FAQs
- ¿Dónde puedo conseguir la placa Icezum Alhambra?
Pueden conseguir una desde Alhambrabits
- ¿Cómo aprendo a manejar github?
Hay mucha información en internet. En su momento hice este Tutorial: Github y FreeCAD para enseñar a manejarlo. Los ejemplos están hechos con ficheros de FreeCAD, sin embargo, lo que se enseña es genérico. También vale para las entregas de los ejercicios del tutorial de Electrónica digital para makers
- ¿Dónde puedo comprar material electrónico?. Hay muchos sitios. Uno muy bueno es Bricogeek