Vídeo 4: Mi primer circuito. Encendiendo un led - Obijuan/digital-electronics-with-open-FPGAs-tutorial GitHub Wiki

Vídeo

Click to see the youtube video

Haz click en la imagen para ver el vídeo en Youtube

Descripción

Haremos nuestro primer circuito desde cero, en Icestudio, y lo sintetizaremos en la FPGA para probarlo. Será muy sencillo: el circuito simplemente enciende el LED 7, pero nos servirá de ejemplo para comprender el concepto de Bit y tener mayor intuición de cómo se mapea el circuito en la FPGA

Contenido

Un lienzo en Blanco

¡Hola! Soy obijuan y en este microtutorial vamos a crear nuestro primer circuito digital: encenderemos un LED. Lo se, es muy simple. Pero lo utilizaré de excusa para explicar algunos conceptos

Vamos a crear un circuito físico, con existencia real, que estará dentro de la FPGA de la Icezum Alhambra, ese chip grande que está en el centro. Encenderemos los LEDs, que están en la parte superior izquierda de la placa

La FPGA la podemos ver como un lienzo en blanco, donde pintaremos nuestro circuito digital. Es importante localizar exactamente dónde estará nuestro circuito, para no perder la perspectiva

Para este tutorial sólo usaremos los LEDs de la Icezum Alhambra. En este dibujo hemos puesto sólo las partes que nos interesan: los LEDs, la FPGA, la placa y los cables que unen las patas de la FPGA con los LEDS

Los cables entre la FPGA y los leds están fijos. Se encuentra en la placa de circuito impreso de la Icezum Alhambra. Los LEDS se dibujan en blanco para indicar que están apagados, y la FPGA también está en color blanco, para resaltar el hecho de que no tiene ningún circuito en su interior todavía (No está configurada)

Abrimos Icestudio. Es nuestro lienzo donde haremos los circuitos digitales. Se corresponde con el interior de la FPGA

Haciendo el circuito Hola Mundo

Comenzaremos con el circuito más sencillo posible: un circuito digital que enciende el LED7 de la Icezum alhambra

BITs

Los circuitos digitales trabajan con BITs, que son elementos de información que pueden estar en dos estados: uno o cero. Estos dos estados pueden representar difernetes cosas, como por ejemplo encendido - apago, verdadero o falso, arriba o abajo, cara o Cruz, 5 voltios - 0 voltios, el ying o el yang, culo o codo :-)

En este ejemplo usaremos el significado 1 = encendido. Para encender el LED sólo hay que colocar un bit a 1, y hacer que salga por la pata de la FPGA correspondiente al LED 7. Para transportar el bit desde el interior hacia la pata usaremos un cable.

Construyendo el circuito

Primero colocaremos el bit a 1. Nos vamos al menú superior Bit y pinchamos en el 1

Nos aparecerá un bloque azul, con el cursor del ratón en forma de mano encima

Lo movemos hasta una zona de la pantalla y picamos con el ratón. Se nos colocará el Bit 1

Ahora tenemos que colocar el bloque que se corresponde con la pata de la FPGA por donde saldrá el bit 1 al exterior. Nos vamos al menú Básico/Salida

Y nos aparece una ventana pidiendo el nombre que le queremos dar a la salida.

De momento no ponemos nada, y le damos al OK

Colocamos el bloque a la derecha del Bit 1 y picamos

Ahora tiramos el cable. Situamos el ratón en la derecha del Bit 1 hasta que el cursor tenga forma de cruz

Apretamos el botón y arrastramos. Saldrá el cable

Nos situamos en la parte izquierda del bloque de salida y soltamos el botón

Ahora los dos bloques estarán unidos por el cable

Sólo nos queda seleccionar por qué pata de la FPGA queremos que salga el Bit a 1. Pinchamos en el desplegable del bloque de salida y pinchamos en LED7

Ahora nos aparecerá la etiqueta LED7 en el interior del bloque de salida. Ya tenemos nuestro circuito listo

Probando el circuito

Conectamos la Icezum Alhambra al ordenador y nos vamos al menú Herramientas/Cargar

Al apretar comienza la síntesis y carga del circuito en la FPGA. Aparece una notificación en la parte inferior derecha

y al cabo de unos segundos nos aparecen dos notificaciones nuevas. Una verde para indicar que ya se ha realizado la carga y otra con los recursos que ha ocupado el circuito

Y ahora en la icezum Alhambra podemos ver cómo el LED 7 está encendido

Aquí se puede ver una animación de todo el proceso

Analizando el circuito

Lo que ha sucedido al cargar es que el circuito hecho en Icestudio se ha transferido a la FPGA

Y este es el circuito físico que tenemos ahora

¡Un Chip con nuestro circuito en su interior!. Pero tiene existencia física real. Es decir, que no es una simulación, ni hay debajo un microcontrolador que haga el trabajo. No. Es un circuito real. Es hardware puro.

El bit a 1 está conectado a la pata de la FPGA que llega al LED 7. De esta manera, el Bit a 1 (que en realidad es una tensión de 3.3v) sale por la pata, llega al LED 7 y lo enciende

Es un circuito constante. El led permanecerá encendido hasta que apaguemos la palca. Una vez la volvamos a alimentar, la FPGA se reconfigurará y aparecerá otra vez el circuito

Si ahora modificamos el circuito para encender el LED 3

y volvemos a cargarlo, lo que ocurre en el interior es que la FPGA se reconfigura para que aparezca un nuevo circuito que saque el Bit a 1 por la pata correspondiente al LED 3

Ejercicios propuestos (10 BitPoints)

  • Ejercicio 1 (2 Bitpoints): Hacer un circuito que encienda el LED5. Sacar 1 pantallazo con el circuito en Icestudio y una foto de la placa con el circuito cargado. Enviar las capturas por redes sociales (mención a @Obijuan_cube). Se concederá 1 Bitpoint adicional por subirlas al repositorio de entregas de github

  • Ejercicio 2 (2 Bitpoints): Hacer un circuito que encienda los LEDs 0 y 7. Sacar 1 pantallazo con el circuito en Icestudio y una foto de la placa con el circuito cargado. Enviar las capturas por redes sociales (mención a @Obijuan_cube). Se concederá 1 Bitpoint adicional por subirlas al repositorio de entregas de github

  • Ejercicio 3 (1 Bitpoint): Conectar una pila (o power bank) para que la placa esté en modo autónomo. Sacar 1 foto. Enviar la captura por redes sociales (mención a @Obijuan_cube). Se concederá 1 Bitpoint adicional por subirlas al repositorio de entregas de github

  • Ejercicio 4 (Hasta 2 Bitpoints): Ejercicio Libre. Premiar la creatividad. Entrega por redes sociales o por github

Ejercicios entregados

Pedro Ruiz

JorgeLN

Federico Coca

Autor

Licencia

Créditos y agradecimientos

Enlaces

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