Categorias: Todos - electrónica - contadores - circuitos

por José Arévalo 5 anos atrás

341

Electrónica Digital con FPGAs Libres (Usando IceStudio)

En este curso se explora el diseño de circuitos combinacionales utilizando FPGAs libres, especialmente a través de la plataforma Icestudio. Se abordan temas como la creación de bloques combinacionales a partir de tablas de verdad y el uso de contadores ascendentes para medir tiempo y contar eventos.

Electrónica Digital con FPGAs Libres (Usando IceStudio)

FPGA

Electrónica digital para makers con FPGAs libres

Tutorial 30 (12 Partes)
Tutorial 30: Puerto serie. Parte XII: Ejercicios propuestos
Tutorial 30: Puerto serie. Parte XI: Aplicación 3. Comunicación Bluetooth-serie
Tutorial 30: Puerto serie. Parte X: Aplicación 2. Comunicación de nuestros programas en el PC con la FPGA
Tutorial 30: Puerto serie. Parte IX: Aplicación. Comunición Arduino-FPGA
Tutorial 30: Puerto serie. Parte VIII: Combinando transmisor y receptor
Tutorial 30: Puerto serie. Parte VII: Funcionamiento del receptor serie
Tutorial 30: Puerto serie. Parte VI: Receptor serie
Tutorial 30: Puerto serie. Parte V: Funcionamiento del transmisor de 8 bits
Tutorial 30: Puerto serie. Parte IV: Funcionamiento del transmisor múltiple
Tutorial 30: Puerto serie. Parte III: Transmisor serie de múltiples caracteres
Tutorial 30: Puerto serie. Parte II: Transmisor de 8 bits
Tutorial 30: Puerto serie. Parte I: Puesta en marcha El puerto serie nos abre la posibilidad de comunicar el PC y el móvil con nuestros circuitos en la FPGA. Aprenderemos a usar el transmisor y receptor serie, sus fundamentos internos y veremos ejemplos de aplicación
Grupo III
Último vídeo de la Temporada I. Haremos un repaso de lo que ha avanzado el ecosistema de las FPGAs libres durante este año. Han aparecido muchas placas, y las herramientas siguen evolucionando para soportar más modelos de FPGAs. Como ejemplo de la colección Jedi, veremos cómo usar el conversor analógico-digital
Tutorial 29: Registros y comparadores. Parte I: Registros Los registros nos permiten almacenar números de varios bits en nuestros circuitos, y transmitirlos de un circuito a otro en paralelo o en Serie. Veremos ejemplos de comunicación entre el Arduino y la FPGA, usando comunicaciones serie síncronas. Gracias a los comparadores, podemos tomar decisiones dependiendo de los valores almacenados en los registros.
Nuestros circuitos manipulan datos, que típicamente se almacenan los biestables tipo D. Los podemos conectar de diferentes maneras para realizar operaciones aritméticas y conversiones de paralelo a serie y vice-versa, que se usan mucho en los controladores de acceso a periféricos. También aprenderemos a usar los biestables de cambio, o tipo T, con los que podemos convertir los pulsadores en interruptores
Los contadores son unos componentes fundamentales, importantísimos en electrónica digital. Aprenderemos el funcionamiento de los contadores ascendentes, y los usaremos para contar eventos, medir tiempo y recorrer tablas
En los circuitos se tiene noción del tiempo gracias al reloj del sistema. Mediante los temporizadores podemos medir el tiempo, realizar acciones y propagar eventos. Veremos como combinar estos elementos para realizar pequeños automatismos. Empezamos a vislumbrar la potencia de los circuitos secuenciales
Para almacenar los bits necesitamos un nuevo componente: el biestable. Con estos elementos, nuestros circuitos pueden recordar eventos ocurridos en el pasado, y no sólo en el presente. Haremos ejemplos de uso de biestables en circuitos simples, para ganar intuición sobre cómo utiliarlos
Los displays de 7 segmentos permiten que nuestros circuitos, que internamente trabajan en binario, muestren información en dígitos decimales, que son legibles por los humanos. Para manejarlos simplemente hay que saber encender LEDs y saber hacer circuitos combinacionales a partir de tablas de verdad
Las colecciones de Icestudio nos permiten organizar los bloques y los ejemplos. Con ellas podemos estructurar lo que queremos enseñar, mostrando sólo lo que es relevante. Aprenderemos a modificarlas y crearlas desde cero
Aprenderemos a construir circuitos combinacionales de varias salidas, y veremos de ejemplo de manejo del robot icebot con los pulsadores, así como la reproducción de secuencias en los LEDs. Para crear bloques combinacionales a partir de tablas de verdad, con las entradas y salidas que queramos, utilizaremos la Fábrica de bloques de Icestudio (IceFactory)
Los circuitos que hemos creado utilizan bloques. Aprenderemos a crear nuestros propios bloques, utilizando los que ya conocemos. Esto nos permitirá ocultar la complejidad y así crear circuitos más potentes, usando diseño jerárquico
Grupo II
Hasta ahora hemos hecho circuitos que trataban con los bits de manera aislada. Con circuitos más complejos, es mejor agrupar los cables en buses, y tratar la información como números, en vez de bits aislados. Aprenderemos a crear buses, agrupar entradas y salidas, y utilizar componentes cuyas entradas y salidas son números
Los circuitos combinaciones son los que nos permiten realizar manipulaciones de los bits. Se caracterizan porque sólo manipulan bits, pero no los almacenan. No tienen memoria. Quedan totalmente definidos por su tabla de verdad. Empezaremos estudiando los circuitos combinacionales de varias entradas y una salida, y cómo los podemos implementar fácilmente a partir de su tabla de verdad usando los bloques memory de Icestudio 0.3.3-beta o superiorom/watch?v=boSUklCva0A
VIDEO 18: Bloques con parámetros Hasta ahora hemos utilizado bloques específicos que hacían una función concreta. Aprenderemos a usar los bloques genéricos, que nos permiten crear bloques específicos mediante la asignación de valores a sus parámetros. Lo aplicaremos al manejo de tres nuevos componentes paramétricos: el corazon, el servobit y el motorbit. Esto nos permitirá fijar la frecuencia, el periodo, el ángulo del servo o la velocidad a valores diferentes de los establecidos por defecto
VIDEO 17: Puertas lógicas: OR La puerta lógica OR nos permite hacer manipulaciones de bits. Aprenderemos su funcionamiento y la utilizaremos para combinar señales. Con esto ya conocemos las tres puertas lógicas básicas: AND, OR y NOT, que nos permiten crear cualquier otra función lógica, por muy complicada que sea
Los sensores de infrarrojos nos permiten detectar objetos a corta distancia. Aprenderemos a manejarlos y los usaremos para dotar al robot icebot de su primer comportamiento reactivo
VIDEO 15: Servos de rotación continua Aprenderemos a manejar los servos de rotación contínua, modelo SM-4303R, con el controlador MotorBit. Y esto nos permitirá construir nuestro primer robot móvil: el icebot 0.1. Usaremos circuitos digitales sencillos para mover el robot
Los multiplexores nos permite combinar circuitos que usan las mismas salidas. Veremos el funcionamiento de dos tipos: los multiplexores 2:1 y los 4:1
Conectaremos a nuestros circuitos LEDs externos a los pines de 5v, para incorporarlos a nuestros papeles. También añadiremos zumbadores, con los que podremos crear sonidos
Utilizaremos interruptores y pulsadores externos para introducir bits en nuestros circuitos digitales. Aprenderemos las diferentes formas de conexión, y construiremos paneles de control con ellos
La puerta lógica AND nos permite hacer manipulaciones de bits. Aprenderemos su funcionamiento y la utilizaremos para habilitar / deshabilitar señales
Grupo I
Empezaremos a manejar servos. Son actuadores cuyo eje de salida se puede fijar a una posición concreta. Se usan mucho en robots educativos, para implementar pinzas o articulaciones. Se presenta el controlador más simple para moverlos: El servoBit, que permite posicionar el servo en dos posiciones, según el bit recibido por su entrada
Los bits se introducen en los circuitos digitales a través de sus entradas. Veremos cómo meter bits mediante los pulsadores internos de la Icezum Alhmabra, y haremos circuitos sencillos con entradas y salidas
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
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
En hardware las cosas van en paralelo. Los circuitos independientes funcionan en paralelo, lo que nos permite crearlos de manera aislada y luego juntarlo para que funcionen a la vez (Superposición). Aprenderemos cómo podemos hacer parpadear bits a diferentes velocidades mediante el bombeo de bits
Las colecciones contienen bloques y ejemplos. Aprenderemos a instalarlas y usarlas. Haremos el circuito "hola mundo" que ya conocemos pero con una colección nueva, y lo documentaremos usando el bloque informació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
Tutorial 3: La Icezum Alhambra y otras placas con FPGAs libres Las herramientas que usaremos en estos tutoriales son Icestudio y la placa Icezum Alhambra. Pero existen otras placas con FPGAs libres que se están desarrollando en la comunidad. La icezum Alhambra es una placa libre, y puedes ver sus tripas usando herramientas libres como Kicad. También puedes ver cómo están hechos sus componentes 3D y sus accesorios, con Freecad. Es importante ser conscientes de lo que implican las tecnologías libres: ¡Acceso total a sus planos! ¡Esto nos da un inmenso poder! Las empresas van y vienen, y con ellas sus productos. Pero lo libre permanece
Tutorial 2: ¡Poniendo en marcha Icestudio!
Serie de micro-tutoriales para aprender electrónica digital usando FPGAs libres Tutorial 1: Electrónica digital para todos