Últimamente están apareciendo placas de entrenamiento para FPGAs a un precio bastante interesante, y si miramos al mercado chino, aún más. El otro día me topé con una bastante completa basada en la EP1C3T144 de Altera. Es una FPGA de la primera generación de la familia Cyclone, así que tiene sus limitaciones, pero por el precio, es más que recomendable para empezar a jugar con las FPGA. Si buscas "FPGA Cyclone Altera EP1C3T144 Learning Board" en eBay, la encontrarás sin mayor problema (incluso la venden con el programador USB-Blaster y el cable JTAG).
Las características de la placa son:Altera Cyclone de la serie serie EP1C3T144.
- Cuatro teclas.
- Cuatro displays de 7 segmentos.
- Seis leds.
- Dos DIP de seis interruptores.
- Reloj activo a 50Mhz.
- Receptor de infrarrojos (VS1838).
- Sensor de temperatura (DS18B20).
- Un buzzer.
- Puerto de comunicaciones serie MAX232.
- Módulo de reloj DS1302.
- Interfaz para LCD de 16 pines.
- Interfaz JTAG y AS.
- 28 Puertos E/S.
Pero (siempre hay un pero) tiene un pequeño problema: la documentación. La placa viene tal cual, ni un simple esquemita que te permita saber cómo se conectan los elementos de la placa a la FPGA, así que toca trastear un poco. Para probarla he montado un circuito sencillo que me permita al menos probar los botones y los leds: un semisumador de un bit.
La tabla de verdad para el semisumador es
Esta FPGA se puede usar con el software Quartus II de Altera, sólo hay que bajar la web edition 11, que es gratuita (versiones posteriores no soportan esta FPGA). Así pues, configuramos el circuito:
Las correspondencias de los pines de la FPGA con los botones y los leds en esta placa son:
- PIN_42 - LED7
- PIN_47 - LED6
- PIN_49 - LED5
- PIN_52 - LED4
- PIN_55 - LED3
- PIN_57 - LED2
- PIN_60 - Botón 4
- PIN_61 - Botón 3
- PIN_62 - Botón 2
- PIN_67 - Botón 1
Para el semisumador, he conectado las entradas s1 y s2 a los pines de los botones 1(PIN_67) y 2(PIN_62) y las salidas sum y carry a los leds 2(PIN_57) y 3(PIN_55). Esta es la asignación en el pin planner de Quartus.
Tras configurar la FPGA, la primera en la frente. Se iluminan todos los leds de la placa, incluidos los displays de 7 segmentos. Tiene fácil solución, hay que configurar los pins no conectados como triestado.
Ahora ya no se ilumina toda la placa, pero... el circuito no se comporta correctamente. Es más, parece actuar de forma contraria a la que debería. La verdad es que no es nada extraño que los pines de entrada a la FPGA dónde se conectan los botones estén directamente conectados a VCC a través de una resistencia pull-up, de forma que al pulsarlos conecten el pin a tierra y lo pongan en estado bajo. Justo lo contrario de lo que esperábamos.
Algo parecido ocurre con los leds, así que para solucionarlo he añadido inversores a las entradas y las salidas del circuito.
Ahora sí, vemos que todo marcha como debería.
Ya os iré contando más cosas de esta placa para tratar de suplir un poco la falta de documentación.








Comentarios
Publicar un comentario