Vídeo 7: Manipulando bits. Puerta NOT - 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
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
- Circuitos digitales
- Elementos de un circuito digital
- Manipulación de bits: Puerta NOT
- Ejemplo 1: Leds parpadeando a la vez
- Ejemplo 2: Leds parpadeando alternativamente
- Funcionamiento del circuito
- Tabla de verdad
- Bits imprimibles en 3D
- Ejercicios propuestos (11 Bitpoints)
- Ejercicios entregados
- Autor
- Licencia
- Créditos y agradecimientos
- Enlaces
- FAQs
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
- Juan González-Gómez (Obijuan)
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