Vídeo 7: Manipulando bits. Puerta NOT - 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

Los circuitos digitales realizan tres operaciones con los bits: transporte, almacenamiento y manipulación. Veremos un ejemplo de manipulación sencilla usando la puerta lógica NOT, con la que haremos que dos leds parpadeen alternativamente

Colección

Academia-Jedi-HW-07.zip: Colección para este tutorial. Descargar e instalar

Contenido

Todo es número

Vivimos en un mundo digital: televisión digital, radio digital, circuitos digitales...Es la era digital ¿Pero esto qué significa? Simplemente que TODO son números. Toda la información que recibimos son números. Las imágenes que nos llegan por la televisión son en realidad números. Los sonidos que escuchamos son números. Las Apps que ejecutamos en nuestros móviles son números. Los documentos que enviamos por internet son ... ¡Números!

Pero es que además, gracias al segundo teorema de Nyquist, tenemos garantizado matemáticamente que cualquier señal analógica se puede convertir a números y posteriormente ser reconstruidas. De esta forma, tenemos garantizado que cualquier señal la podemos convertir a números ¡¡Los pitagóricos estarían orgullosos!! ¡¡Tenían razón!! :-)

Circuitos digitales

Los circuitos digitales son los que trabajan con números. Y sólo con números. Sólo realizan tres operaciones con los números: Almacenar, transportar y manipular

Estos circuitos reciben números por sus entradas, realizan estas operaciones, y producen otros números como salida

Ahora bien, con la tecnología actual, los chips trabajan internamente con bits. Son elementos de información que sólo pueden estar en dos estados: 1 ó 0. Y se usan bits porque son muy fáciles de implementar a partir de transistores que se fabrican muy fácilmente y barato con silicio

Cualquier número se puede representar mediante dígitos binarios (bits). De esta forma podemos redefinir los chips digitales como: Aquellos componentes que almacenan, transportan y manipulan bits. Y sólo hacen eso

Por sus entradas llegan bits, que son manipulados, almacenados y transportados, y como resultado se obtienen más bits que se sacan por las salidas

Elementos de un circuito digital

Cualquier circuito digital, por muy complejo que sea, sólo está formado por tres elementos básicos: Los cables, para transportar bits, las puertas lógicas para manipularlos y los biestables para almacenarlos

Los cables ya los hemos utilizado para transportar los bits desde dentro del chip hasta sus patas de salida, para encender los leds o hacerlos parpadear. Lo siguiente será aprender a manipularlos

Manipulación de bits: Puerta NOT

La manipulación más sencilla se realiza con la puerta NOT, que transforma un bit a 1 en 0, y al contrario, un bit 0 en 1

Esta puerta tiene una entrada por la izquierda, por donde entra un bit, y una salida por la derecha por donde aparece el bit invertido. En esta animación se muestra su funcionamiento

En la app circuit scramble, que vimos en el tutorial 1, la puerta not aparece a partir del nivel 5. El símbolo es diferente al usado típicamente, pero el funcionamiento es el mismo

Ejemplo 1: LEDs parpadeando a la vez

Haremos primero un ejemplo de cómo hacer parpadear 2 leds a la vez. Lo haremos con los LEDs 0 y 7. Ya sabemos hacerlo, y se planteó como ejercicio en el tutorial 6. Lo resolveremos aquí y aprenderemos de paso a tirar varios cables desde la misma salida

Partimos del circuito que ya conocemos que hace parpadear un led a la velocidad de 1Hz (Lo podemos cargar rápidamente desde el menú Archivo/Ejemplos/1-Ejemplos/1-LED parpadeante)

Colocamos un bloque de salida asociado al LED 0:

Desde la salida de un bloque es posible sacar más de un cable. Nos colocamos en la salida del corazón de 1Hz hasta que el cursor se ponga en forma de cruz

Tiramos un cable como ya sabemos, pinchando con el botón izquierdo y arrastrando. Nos aparece un nuevo cable, unido al original

Nos situamos en la entrada del bloque de salida y soltamos el botón para fijar el cable

Así es como queda el circuito, con un corazón conectado a los leds para que parpadeen a la vez

El cable que acabamos de colocar se puede mover. Para ello nos situamos encima. Su aspecto cambia

Dejamos pulsado el botón izquierdo y movemos el cable hacia la izquierda

Soltamos el botón y ya tenemos el cable recolocado

Cargamos el circuito para probarlo. Los LEDs 0 y 7 parpadean a la vez

Ejemplo 2: Leds parpadeando alternativamente

Vamos a utilizar la puerta NOT para crear una sirena luminosa haciendo que dos leds parpadeen alternativamente

Partimos del ejemplo creado anteriormente, al que también tenemos acceso desde el menú Archivo/Ejemplos/1-Ejemplos/2-Leds-parpadeantes-igual. Primero eliminamos el cable que conecta el corazón con el LED0. Para ello situamos el ratón encima del cable: nos aparece una X roja

Nos situamos sobre ella

y la apretamos, eliminando el cable

Colocaremos una puerta NOT. Nos vamos al menú Puertas/Not

Y colocamos la puerta a la izquierda del bloque de salida del LED 0

Ahora tiramos un cable desde el corazón a la entrada de la puerta y otro desde su salida al LED 0

Cargamos el circuito en la placa, para probarlo

Vemos cómo los leds parpadean alternativamente: primero uno y luego otro

Funcionamiento del circuito

El circuito de los leds alternantes funciona de la siguiente manera: Cuando el corazón bombea un bit a 1, se transmite por el cable al LED 7 y por el otro cable llega a la entrada de la puerta NOT. El bit se convierte a 0 y se saca por el LED 0. Por ello, el LED 7 se enciende y el LED 0 se apaga

Cuando el corazón bombea un bit 0 ocurre lo contrario. El 0 llega al LED 7, apagándolo, y por el otro cable llega a la puerta NOT, convirtiéndose en un 1 y encendiendo el LED 0

El funcionamiento completo se muestra en esta animación:

Tabla de verdad

El funcionamiento del circuito queda descrito de manera más concisa usando una tabla de verdad, en la que se muestra el resultado de todas sus salidas segun el valor del bit bombeado por el corazón

En la columan de la izquierda están puestos los dos valores que puede tomar el corazón: 0 y 1. Y en las dos columnas de la derecha los valores que salen por las salidas y que llegan a los LEDs 7 y 0 respectivamente

Bits imprimibles en 3D

Para realizar simulaciones de los circuitos lógicos se puede utilizar estas Monedas Bits imprimibles

Ejercicios propuestos (11 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 los LEDs pares y los impares a una velocidad de una vez por segundo

  • Ejercicio 2 (Total 3 Bitpoints): Hacer un circuito digital que haga parpadear alternativamente los LEDs 3 y 4 a la velocidad de 4 veces por segundo. Los leds 0 y 1 parpadean a la vez, una vez por segundo y los leds 7 y 6 lo hacen también una vez por segundo pero alternativamente con los leds 0 y 1

  • Ejercicio 3 (Total 3 Bitpoints): Hacer el circuito indicado en el enunciado de la colección, probarlo en la placa y obtener su tabla de verdad

  • Ejercicio 4 (2 Bitpoints). Ejercicio Libre. Premiar la creatividad. Entregar por redes sociales o github: Pantallazos, enlaces, vídeos, etc...

Ejercicios entregados

Federico Coca

Jorge Lobo

Ricardo Gómez (3agl3man)

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