Agregue un tablero de FPGA a la combinación de placas DEV Arduino y Raspberry Pi

Las placas de desarrollo de Arduino y Raspberry Pi (placas DEV) se encuentran en la cúspide de una revolución en la forma en que los ingenieros desarrollan sistemas integrados. Algún tiempo atrás, usted desarrollaba un sistema integrado a partir del hardware. En términos generales, los pasos del proyecto eran los siguientes:

  1. Especificar los requisitos del sistema, incluida una estimación aproximada de la velocidad de procesamiento y los requisitos de E/S.
  2. Seleccionar un microcontrolador o microprocesador adecuado que cumpla con los requisitos de potencia, rendimiento y precio.
  3. Cablear un prototipo de hardware.
  4. Depurar el prototipo de hardware. Escribir un pequeño código de controlador si es necesario para mover las líneas.
  5. Después de que el hardware se esté ejecutando, comenzar a lanzar el código.
  6. Depurar el código.
  7. ¡Enviarlo!

Las cosas no son tan simples ahora. En primer lugar, hay literalmente miles de procesadores y microcontroladores para elegir de numerosos proveedores. Nadie puede mantener todas estas alternativas en mente.

En segundo lugar, el punto número tres anteriormente mencionado (cablear un prototipo de hardware) presenta un problema real, ya que el mundo evolucionó a la tecnología del montaje en superficie hace tres décadas. El cableado a mano e incluso la tecnología de envoltura de alambre que prevalecía en gran manera como una técnica de creación de prototipos en la década de 1970 es similar a la herrería para la ingeniería eléctrica. Es poco común hoy en día. ¿Realmente necesita diseñar, fabricar y soldar una placa de CI prototipo? ¿Quién tiene tiempo para eso si existen alternativas mejores (más rápidas y menos costosas)?

Esta situación creó una oportunidad para las placas DEV que hacen que el corto circuito suba de uno a cuatro. Dos de las placas DEV más famosas del mercado hoy en día son Arduino Uno (y sus numerosas variantes) y Raspberry Pi. El modelo más actual de Raspberry Pi es el modelo B+ de Raspberry Pi . Aunque a menudo se mencionan al mismo tiempo, las placas DEV Arduino y Raspberry Pi no son en absoluto similares.

Arduino es el nombre de una compañía de software y hardware de código abierto, un proyecto de comunidad de código abierto, la comunidad de usuarios que diseña y fabrica las placas DEV Arduino, un entorno de desarrollo integrado (IDE) y la placa misma del microcontrolador Arduino. (El nombre Arduino proviene de un bar en Ivrea, Italia, donde se reunían algunos de los fundadores originales del proyecto Arduino).

Figura 1: Arduino Uno, una placa de desarrollo de nivel de entrada basada en un microcontrolador Atmel 8-bit con algunas capacidades simples de E/S, sirve como plataforma de desarrollo para diseños integrados que no necesitan un alto rendimiento. (Fuente de la imagen: Arduino)

Las primeras placas DEV Arduino se basaron en los microcontroladores AVRdeAtmel. Usted desarrolló el código utilizando el IDE de Arduino, que luego compiló el código y lo descargó en la Memoria Flash del microcontrolador incorporado. El IDE de Arduino admite los lenguajes C y C++ con reglas de estructuración de códigos especiales exclusivas del IDE de Arduino. Debido a que el concepto de Arduino ha crecido enormemente, las nuevas variantes de Arduino se han pasado a los microcontroladores basados en el Arm® Cortex®-M0 32-bit para obtener un rendimiento mayor (Figura 1).

Debido a que fueron diseñadas como placas DEV de microprocesadores introductorios para controlar sistemas incorporados relativamente simples, las placas DEV Arduino tienen capacidades de E/S muy simples. Junto con algunas cabeceras de 0.1'' con E/S digitales simples y clavijas de entrada analógica, las placas DEV Arduino Uno tienen un puerto USB y algunos LED integrados para parpadear. Así es. Las clavijas E/S están bajo el control del software, por lo que usted no obtendrá mucho rendimiento de ellos.

Ascienda a Raspberry Pi

Si su diseño incorporado necesita más rendimiento, entonces la placa DEV de Raspberry Pi 3 B+ es un ascenso considerable respecto de Arduino (Figura 2). Estas son sus características más importantes:

  • El sistema en chip (SoC) Broadcom BCM2837B0, Cortex®-A53 (Arm®v8) 64-bita 1.4 GHz
  • LPDDR2 de 1 GB SDRAM
  • LAN inalámbrica IEEE 802.11.b/g/n/ac de 2.4 GHz y 5 GHz, Bluetooth 4.2, bluetooth de baja energía (BLE)
  • Ethernet Gigabit sobre USB 2.0 (rendimiento máximo de 300 Mbit)
  • Cabecera de entrada y salida de uso general extendida de 40-pin
  • HDMI de tamaño completo
  • Cuatro puertos USB 2.0
  • Cabecera de entrada y salida de uso general extendida de 40-pin
  • Puerto de cámara CSI para conectar una cámara Raspberry Pi
  • Puerto de pantalla DSI para conectar una pantalla táctil de Raspberry Pi
  • Salida estéreo 4-pole y puerto de video integrado
  • Puerto micro SD para cargar un sistema operativo y almacenar datos
  • Entrada de alimentación de 5 V/2.5 A DC
  • Soporte de Alimentación por Ethernet (PoE) (requiere PoE HAT por separado)

Figura 2: El modelo B+ de Raspberry Pi sirve como una excelente plataforma de desarrollo de hardware integrado con un procesador de aplicación Arm 64-bit de cuatro núcleos, 1 Gbit de SDRAM y amplias capacidades de E/S. (Fuente de la imagen: Raspberry Pi)

Usted puede hacer mucho con esa potencia de procesamiento, memoria y capacidad de E/S. La placa DEV de Raspberry Pi 3 B+ funciona con Linux y hay una gran comunidad que apoya el producto. Teniendo en cuenta su bajo precio, el modelo B+ de Raspberry Pi 3 es una excelente plataforma de hardware para muchos proyectos de desarrollo integrados.

¿Qué pasa cuando usted siente una necesidad de velocidad?

Si el modelo B+ de Raspberry Pi 3 cumple con todos sus requisitos de diseño del sistema integrado, entonces usted no necesita ir más lejos. Teniendo en cuenta el bajo precio de esta placa DEV extremadamente útil, ¿para qué molestarse? Sin embargo, si su sistema incorporado requiere capacidades de E/S especiales más allá de los considerables recursos de E/S del modelo B+ de Raspberry Pi 3, ¿qué sucede?

Esta situación es un ejemplo de cuando necesita las capacidades de alto rendimiento de los arreglos programables de puertas en campo (FPGA), que se destacan por permitirle definir nuevos tipos de interfaces de alta velocidad, definidas por la utilización de software únicamente. No se necesita cableado adicional. Además, puede tener capacidades FPGA ya integradas en el factor de forma del modelo 2 de Raspberry Pi con la placa DEV de Trenz Electronic TE0726-03M : ZynqBerry (Figura 3).

Figura 3: La placa DEV Trenz TE0726-03M ZynqBerry empaqueta un sistema en chip (Soc)Xilinx Zynq Z-7010 en un factor de forma Raspberry Pi modelo 2 para diseños integrados que necesiten un rendimiento adicional de E/S. (Fuente de la imagen: Trenz Electronic)

ZynqBerry se basa en un SoC Xilinx Zynq Z-7010, que fusiona un microprocesador Arm® Cortex®-A9 32-bit de doble núcleo con un FPGA, lo que da como resultado un dispositivo que puede manejar muchas más tareas de alto rendimiento que un procesador solo (incluso que cuatro procesadores que funcionen a 1.4 GHz). Usted programa el Trenz ZynqBerry con el conjunto de herramientas descargable Xilinx Vivado, que proporciona un IDE para los lados del software (procesador) y hardware (FPGA) del SoC Zynq.

¿Prefiere el factor de forma Arduino?

Pero, ¿qué ocurre si prefiere el factor de forma del Arduino Uno? Trenz Electronic lo tiene cubierto allí también con el ArduZynq TE0723-03M (Figura 4).

Figura 4: El TE0723-03M ArduZynq de Trenz Electronic incluye un SoC Xilinx Zynq en el factor de forma de la placa de desarrollo Arduino para los proyectos Arduino que necesiten más procesador y rendimiento de E/S. (Fuente de la imagen: Trenz Electronic)

Al igual que Trenz ZynqBerry, usted programa Trenz ArduZynq con el conjunto de herramientas descargable Xilinx Vivado.

Las placas como Arduino Uno y Raspberry Pi simplifican muchas opciones de desarrollo integrado, pero no son capaces de enfrentar todos los desafíos de diseño integrado. Cuando sus requisitos superen las capacidades de estas placas, no es necesario que usted cambie el factor de forma de la placa. Todo lo que debe hacer es agregar un poco de FPGA a la combinación.

Información sobre el autor

Image of Steve Leibson Steve Leibson fue ingeniero de sistemas para HP y Cadnetix, editor en jefe de EDN y Microprocessor Report, blogger tecnológico de Xilinx y Cadence (entre otros), y se desempeñó como experto en tecnología en dos episodios de "The Next Wave with Leonard Nimoy". Ha ayudado a los ingenieros de diseño a desarrollar sistemas mejores, más rápidos y más confiables durante 33 años.
More posts by Steve Leibson