FPGA Libre
EnglishEspañolS.F. Summary
Hosted by:
Get Free FPGA development tools at SourceForge.net. Fast, secure and Free Open Source software downloads

Kéfir (Kit Educativo con FPGA, Inclusivo y Reciclable) es un kit de desarrollo económico basado en la FPGA Lattice iCE40HX4K-TQ144.

¿Qué es Kéfir?:

Kéfir es un proyecto para realizar kits de desarrollo educativos basados en FPGAs.

Se proponen como objetivos del proyectos los siguientes pilares:

  • Inclusivo: buscando un costo que lo haga accesible, y que al menos una versión del mismo pueda ser construida utilizando las tecnologías de soldadura disponibles en la región.
  • Reciclable: buscando que el kit propiamente dicho, y el cable de configuración, puedan ser reusados para fines diferentes al de difundir la tecnología FPGA.

El primer resultado de este proyecto es la placa Kéfir I. Esta placa se basa en una FPGA iCE40HX4K-TQ144 de Lattice. Las características principales de esta familia de FPGAs se dicuten aquí.

A los fines de reducir los costos de fabricación, y complejidad del PCB, se optó por una placa básica, con la menor cantidad de componentes posibles. Al mismo tiempo se separó la funcionalidad de configuración (y parte de la fuente de alimentación) en una placa separada. Esta placa puede usarse para configurar otras FPGAs, realizar depuración con CPUs AVR y ARM y otras tareas similares. La placa que contiene dicha funcionalidad se denomina MILK.

Con el objetivo de permitir expandir las funcionalidades de Kéfir I, reutilizando placas ya existentes, se decidió que tuviera conectores compatibles con Arduino y conectores PMOD. Esto no sólo permite reutilizar shields de Arduino sino que abre otra posibilidad interesante: reciclar Kéfir I como una placa compatible con Arduino. Para mayor información visitar Lattuino.

Kéfir foto top


Características técnicas:

  • FPGA:
    • Lattice iCE40HX4K-TQ144 (3520 LUT4s, FFs y carry; 2 PLLs; 80 kib SRAM; 107 GPIOs)
    • Memoria de configuración: Winbond W25X40CL (SPI, 4 Mib, quedan casi 3 Mib libres)
    • Reloj: zócalo para colocar un oscilador tipo DIP-8/14. (evitando usar 1 PLL todo el tiempo)

  • PCB: (FR4 1,6 mm de espesor)
    • Capas: 2
    • Separación mínima: 8 mils
    • Ancho mínimo de pistas: 10 mils
    • Diámetro vías: 40 mils
    • Agujero vías: 0,51 mm
    • Nota I: la FPGA tiene un paso de 0,5 mm
    • Nota II: todos los componentes pueden soldarse con soldador (no QFN, no BGA, etc.)

  • Conectores: (GPIO 3,3 V)
    • Tiene los conectores de ChipKit, que son los de Arduino UNO, pero con el doble de I/Os. Un total de 42 GPIOs.
    • 2 PMOD de 12 pines (8 I/Os + 2 GND + 2 Vcc c/u)
    • 2 conectores de 20 pines para configuración y comunicación con la PC. Estos conectores están pensados para conectar con MILK.

  • Interfaz de usuario:
    • Botones: ninguno físico, tiene 4 CapSense.
    • LEDs: 4 LEDs de uso general (+ power + DONE).

  • Entradas analógicas: (MCP3008)
    • 8 canales de 10 bits
    • Frecuencia máxima de sampleo 100 ks/s

  • USB:
    • Conector tipo B
    • Driver TUSB1106 (LS/FS)
    • Adicionalmente MILK provee comunicación con la PC (SPI, I2C, RS-232, etc.)

  • Alimentación:
    • Desde el USB a través de MILK
    • Opcionalmente puede alimentarse con 3,3 V

Pinout de Kéfir


Comparación con proyectos similares:

La siguiente tabla resume las principales diferencias entre Kéfir I y otros proyectos similares, resaltando sus ventajas y desventajas:

Placa Ice Blink Alhambra I Kéfir I Alhambra II CIAA EDU-FPGA
Publicada 2012 2016 2017 2018 2020
Libre No Si Si Si Si
EDA libre (KiCad) No (No disponible) Si (3) Si No (Altium) Si
FPGA
Modelo HX1K HX1K HX4K HX4K HX4K
LUTs/FF 1280 1280 7680 7680 7680
BRAM 64K 64K 128K 128K 128K
PLLs 1 1 2 2 2
Reloj 333 kHz
3,33 Mhz
33,33 MHz
12 MHz 24 MHz Intercambiable (6) 12 MHz 12 MHz
Configuración
Circuito separable No No Si No No
Estándar (5) No Si Si Si Si
Chip AT90USB2 FT2232H FT2232H FT2232H FT2232H
Otros usos No No Debug ARM y AVR (Arduino).
Cable RS-232, JTAG y SPI.
Config. Xilinx
No No
Flash M25P10 N25Q032A W25X40CL N25Q032A W25X40CL
Capacidad 1M 32M 4M 32M 4M
PCB
Capas 4 4 2 4 2
Tamaño pasivos más pequeños 0402 0402 0603 0402 0805
Componentes QFN/BGA Si Si No Si No (1)
Conectores Arduino
IOL Si Si Si Si Si
IOH Si Si Si Si Si
Power Si Si Si Si Si
AD Sólo digital Sólo digital Si Sólo digital No
ICSP No No Si No No
I/O tolerante 5 V No Si (20 I/Os) No Si (20 I/Os) No
Conectores Chipkit UNO32
IOL UNO32 Si No Si No Si
IOH UNO32 Si No Si No Si
AD UNO32 Si No Si No Si
Otros conectores
PMOD 3 (2) - 2 - 2
Otros 1 SPI y 1 Power
(similar Power Arduino)
4xAnalog In, 8 I/Os 16 I/Os y 1 SPI 4xAnalog In, 8 I/Os -
Total I/O dig. 68 30 52+20 (4) 30 48
Entradas analógicas
Canales - 4 8 4 -
Resolución - 12 bits 10 bits 12 bits -
S.R. - 100 ks/s 100 ks/s 100 ks/s -
Interfaz - I2C SPI I2C -
Interfaz Humana
Botones 4 Capsense 2 4 Capsense 2 4
LEDs 4 8 4 8 4
Otras interfaces
USB directa No No Si No No
Máxima transferencia PC a FPGA - 12 Mb/s (UART) >320 Mb/s (async FIFO) 12 Mb/s (UART) 30 Mb/s (MPSSE)

Notas:

  1. El cristal tiene 4 PADs que podrían equipararse a un QFN.
  2. Uno compartido con el conector AD UNO32.
  3. La versión KiCad fue migrada desde el original en Altium.
  4. 20 líneas conectan la Kéfir I con Milk, removiendo Milk se accede a estas líneas adicionales.
  5. Se refiere a si la configuración se hace con herramientas estándares (libres y propietarias) y no con herramientas específicas de esa placa.
  6. El oscilador va montado en un zócalo permitiendo cambiarlo por otro de la frecuencia que se desee.


¿Se verificó su funcionamiento?:

La placa Kéfir I fue fabricada en Argentina y luego los componentes soldados manualmente (utilizando un soldador PACE con punta fina y un videoscopio). Se probaron las siguientes descripciones de hardware:

  1. Destello de un LED a 1 Hz a partir de reloj de 24 MHz (46 celdas)
  2. Funcionamiento de los 4 CapSense señalizando en los LEDs (39/50 celdas)
  3. Adquisición del A/D a 55 ks/s representando los 4 LSB/MSB en los LEDs (45 celdas)
  4. CPU compatible con el AVR ATtiny22 enviando "Hello world!" por RS-232 a 115.200 b/s (1012 celdas)
  5. USB device que se reporta como joystick, los CapSense son los botone del joystick, Low Speed (978 celdas)
  6. USB device que se reporta como joystick, los CapSense son los botone del joystick, Full Speed (970 celdas)
  7. USB device que permite leer los CapSense y encender los LEDs usando WISHBONE, Full Speed (1046 celdas)
  8. Aplicación compatible con Arduino UNO usando shield con TFT y touchscreen (ver Lattuino)

Todas las implementaciones funcionaron satisfactoriamente. Se detectaron niveles inusuales de ruido en las aplicaciones que utilizaban los CapSense. Por estas razones se hizo una revisión del diseño que elimina dicho problema (r1.14).


¿Donde puedo conseguir Kéfir I?:

Kéfir I es un proyecto de hardware abierto, por lo que toda la información de diseño puede descargarse de este sitio.

En la actualidad no hay ningún proveedor que ofrezca versiones de Kéfir I ya armadas. Es nuestra intención fomentar la existencia de fabricantes ya que entendemos que no es eficiente pretender que cada usuario fabrique su propio circuito. Por esta razón alentamos a potenciales fabricantes a ponerse en contacto con nosotros.

Es completamente legal que una Universidad o equipo de entusiastas forme un grupo a los fines de realizar una pequeña tanda de fabricación, bajando así los costos. A tales fines invitamos a los interesados a coordinarse utilizando la lista de correo de Kéfir.

En el caso de voluntarios que puedan comprometerse a colaborar con el proyecto tenemos algunos circuitos impresos y/o componentes disponibles para que puedan armar su propia placa. En el caso de estudiantes universitarios que deban realizar su PPS (Práctica Profesional Supervisada) es posible realizarla en el INTI trabajando en este proyecto. En cualquiera de estos casos por favor contactarse con nosotros.


Niveles de tensión soportados:

Es muy importante tener en cuenta que los pines de entrada salida de la placa funcionan con 3,3 V y no toleran 5 V.

Se decidió dejar la protección de estos pines fuera de la placa principal, ya que el tipo y grado de protección dependen del uso que se le de. En caso de utilizar la placa en un ambiente educativo hostil se recomienda utilizar shields de Arduino que incluyan protecciones adecuadas. El diseño de los mismos es muy simple.


Licenciamiento:

Kéfir I es un proyecto de hardware abierto, por lo que toda la información de diseño puede descargarse de este sitio.

La licencia actual del proyecto es Licencia Creative Commons Atribución - Compartir Igual 4.0 Internacional. Esto permite el uso comercial, pero si se realizan cambios deberán compartirse con la misma licencia.


Circuito:

Kéfir I fue desarrollado usando KiCad.

Cara superior
Cara inferior
Renders de KiCad


KiCad:

KiCad es una herramienta de software libre para el diseño de circuitos electrónicos.

Los últimos esquemáticos y PCBs de Kéfir I fueron realizados utilizando KiCad "4.0.5+dfsg1-4" que es la versión incluida en Debian GNU/Linux 9.

La revisión fabricada (1.12) fue realizada utilizando KiCad "Build: (22-Jun-2014 BZR 4027)-stable" que es la versión incluida en Debian GNU/Linux 8.


¿Con qué software se puede usar?:

Basicamente hay dos conjuntos de herramientas que pueden usarse:

  1. Las herramientas gratuitas (pero privativas) del fabricante, que soportan VHDL y Verilog (Más información).
  2. Herramientas de Software Libre, que soportan Verilog y un entorno de desarrollo visual (Más información).

Kéfir I está soportada por ambos conjuntos de herramientas.


Ejemplos de uso:

Esta sección contiene diferentes ejemplos de como usar la funcionalidad de la placa:

  1. Botones capacitivos: este ejemplo muestra como utilizarlos en VHDL y Verilog. Los ejemplos muestran el uso con diferentes herramientas (iCEcube2/Diamond Programmer, IceStorm, Xil Tools, APIO, APIO IDE y icestudio). Se puede navegar on-line o descargar.


Documentación relacionada:

Estos son algunos trabajos relacionados con Kéfir:


Contacto:

Para preguntas generales puede usar la lista de correo de Kéfir.

Para preguntas específicas puede contactar a Salvador E. Tropea o por teléfono al +54-11-4724-6300 interno 6919.


Entidades adherentes:

Las siguientes entidades han declarado a este proyecto de interés:

  • Universidad Tecnológica Nacional - Facultad Regional Haedo
  • Universidad Tecnológica Nacional - Facultad Regional Córdoba
  • Universidad Nacional de Tierra del Fuego
  • Universidad Nacional de Catamarca


webmaster.

Valid HTML 4.01! Valid CSS! GIMP Any browser! SourceForge.net Logo

Copyright © 2005-2017 proyecto FPGALibre.
Generated using CAL v0.2.1 and ARENA v0.1.0 on vie may 29 10:39:22 -03 2020