Cómo comenzar con los microcontroladores basados en RISC-V
Colaboración de Editores de DigiKey de América del Norte
2020-01-09
Los diseñadores se encuentran bajo constante presión para innovar y mantener en secreto la IP (propiedad intelectual), al mismo tiempo que reducen el costo y el consumo de energía. Esto hizo que la ISA (arquitectura de conjunto de instrucciones) de hardware de código abierto RISC-V fuera interesante para los diseñadores de procesadores para aplicaciones móviles. Ahora que RISC-V es una opción para los microcontroladores, los diseñadores de sistemas integrados y dispositivos de consumo necesitan un acceso rápido para comenzar sus propios diseños RISC-V.
Uno de esos accesos es la placa de desarrollo FE310 LoFive-R1 de GroupGets LLC. Antes de presentar LoFive-R1, este artículo hablará de RISC-V y por qué es posible que un desarrollador considere usarlo. Luego describirá LoFive-R1 y mostrará cómo comenzar a desarrollar aplicaciones, incluidos algunos consejos y trucos.
¿Qué es RISC-V?
RISC-V es un proyecto de ISA de hardware de código abierto que comenzó en la Universidad de California, Berkeley en 2010. Hubo muchas razones para crear la arquitectura RISC-V, incluidas las siguientes:
- Satisfacer la necesidad de una ISA de código abierto que pudiera ser usada académicamente en proyectos universitarios y por estudiantes
- Un medio para compartir experiencias de diseño relacionadas con el desarrollo de ISA
- Una forma de evitar pagar regalías a las empresas de chips existentes y así ahorrar en costos
- Proteger los detalles de diseño de una arquitectura (la IP de una empresa) para seguir siendo viable comercialmente
Desde el punto de vista de un diseñador, RISC-V es una arquitectura simplificada diseñada una operación rápida y de baja potencia. Esto hace que los chips basados en RISC-V sean buenos para aplicaciones comerciales, no solo académicas. De hecho, la Fundación RISC-V atrajo el interés suficiente como para expandirse a aproximadamente 325 miembros, incluidas empresas como Si-Five, Google, Microchip Technology, NVIDIA y Qualcomm.
Si bien hay muchas empresas que contribuyen al desarrollo de RISC-V, para el desarrollador promedio, la mejor manera de poner manos a la obra con RISC-V es encontrar una placa de desarrollo basada en un procesador RISC-V.
La placa de desarrollo LoFive FE310
Una de estas placas de desarrollo es la placa de desarrollo LoFive-R1 de GroupGets LLC (Figura 1).
Figura 1: la placa de desarrollo LoFive-R1 incluye un procesador RISC-V junto con todos los circuitos de soporte necesarios para hacer de la placa de desarrollo un módulo de procesador que se puede soldar directamente a una placa portadora. (Fuente de la imagen: GroupGets LLC)
En primer lugar, el LoFive R1 incluye un procesador RISC-V que puede ejecutarse a una velocidad de hasta 320 megahercios (MHz). El procesador incluye 8 kilobytes (Kbytes) de OTP (memoria programable una sola vez), 8 Kbytes de máscara ROM, 16 Kbytes de caché de instrucciones y 16 Kbytes de SRAM. El procesador también cuenta con tres reguladores independientes de PWM (modulación por ancho de pulsos), SPI, I2C, UART e incluso una interfaz flash QSPI.
En segundo lugar, la placa de desarrollo puede contar con cabeceras soldadas a ella o, debido a los bordes almenados, puede soldarse directamente en una placa portadora y usarse como un módulo de procesador. Esto puede facilitarle en gran medida el diseño de un hardware personalizado a un desarrollador sin tener que trabajar en la logística de abastecimiento del procesador.
A continuación, la placa de desarrollo incluye flash QSPI en la placa que se proporciona a través de un módulo flash IS25LP128 de ISSI (Integrated Silicon Solution Inc.). El IS25LP128 es un módulo flash de 128 megabits (Mbit) y 16 Mbytes que puede funcionar a velocidades de bus SPI de hasta 133 MHz cuando se usa en modo de entrada/salida cuádruple (Figura 2). El módulo flash SPI se puede usar para el almacenamiento a fin de garantizar que haya suficiente espacio para aplicaciones o para almacenar datos del tiempo de ejecución, como registros de aplicaciones.
Figura 2: la placa de desarrollo LoFive-R1 incluye un módulo flash SPI de 128 Mbit de ISSI que se usa para el almacenamiento de aplicaciones. (Fuente de la imagen: ISSI)
A continuación, la placa de desarrollo también se ejecutará en 5 voltios, que un regulador lineal SPX3819M5 de MaxLinear convierte en 3.3 voltios. El regulador está disponible en un paquete SOT23-5, pero proporciona hasta 500 mA. La placa de desarrollo no consumirá mucha corriente, por lo que puede admitir sensores y dispositivos adicionales sin tener que agregar circuitos de potencia adicionales.
Figura 3: El regulador lineal SPX3819 de 3.3 voltios de la placa de desarrollo LoFive-R1 proporciona hasta 500 mA. Esto es suficiente tanto para los circuitos en la placa como para algunos dispositivos externos, como los sensores. (Fuente de la imagen: MaxLinear)
Finalmente, todos los detalles de diseño de la placa de desarrollo, como los esquemas y la lista de materiales, se encuentran en github. Esta información facilita la comprensión del funcionamiento de la placa a un desarrollador y también se puede usar como guía de diseño para proyectos de desarrollo personalizados.
Configuración de la placa de desarrollo de programación y la cadena de herramientas RISC-V
Un desarrollador se encontrará con que existen diversas cadenas de herramientas disponibles para RISC-V, según la placa de desarrollo que se haya elegido. Es importante darse cuenta de que el SDK para RISC-V está disponible para Windows, macOS y Linux. Este artículo mostrará cómo configurar la placa de desarrollo para Linux.
En primer lugar, en un terminal, revise el SDK LoFive Freedom-E de git con el siguiente comando:
git clone --recursive https://github.com/mwelling/freedom-e-sdk.git
Luego diríjase al directorio creado por el SDK usando:
cd freedom-e-sdk
Existen dos SDK diferentes disponibles para la placa de desarrollo. El primero se conoce como "el SDK heredado" porque es una versión más antigua. Use el último SDK. Este cuenta con una cadena de herramientas preconstruida e incluye OpenOCD para la depuración. Se puede revisar el SDK con los siguientes comandos:
git checkout lofive-r1
git submodule sync
git submodule update –init –recursive
La placa de desarrollo se puede programar de varias maneras diferentes. Primero, hay señales JTAG estándar en el procesador que están disponibles a través de los conectores de expansión LoFive-R1. Un desarrollador puede usar cualquier programador que admita JTAG, como un SEGGER J-Link. Si no se dispone de ningún programador, un desarrollador también puede usar un convertidor de USB a serie de bajo costo como el FT2232H-56Q Mini MDL de FTDI (Figura 4). El FT2232H-56Q Mini MDL es un módulo que aloja todas las conexiones y circuitos impresos que se requieren para comunicarse por interfaz con la placa de desarrollo LoFive-R1. El SDK usa la E/S de propósito general disponible en el FT2232H-56Q para crear las conexiones JTAG necesarias a fin de programar el microcontrolador.
Figura 4: el FT2232H-56Q MINI MDL es un módulo en serie de bajo costo que puede comunicarse mediante interfaz directamente con una computadora a través de USB y luego con el UART integrado en la placa de desarrollo LoFive-R1. (Fuente de la imagen: FTDI)
Existen nueve conexiones diferentes que deben realizarse entre la placa de desarrollo LoFive-R1 y el módulo FT2232H-56Q (Tabla 1).
|
Tabla 1: una tabla simple que se puede usar para unir las conexiones entre la placa de desarrollo LoFive-R1 y el módulo FT2232H-56Q. (Fuente de la tabla: DigiKey)
Estas conexiones se pueden resumir de la siguiente manera:
- Potencia y masa
- Señales JTAG
- Señales UART
Las conexiones se podrían establecer directamente o con un tablero de prueba como el PB-83M de Global Specialties (Figura 5). Estos tableros de prueba cuentan con clavijas de conexión tipo banana para dos fuentes de voltaje y tierra a fin de simplificar la creación de prototipos.

Figura 5: el PB-83M proporciona jacks tipo banana para dos fuentes de voltaje y tierra a fin de facilitar la creación de prototipos. (Fuente de la imagen: Global Specialties)
Cuando utilice el LoFive-R1 por primera vez, se recomienda instalar un gestor de arranque en la placa. El gestor de arranque se instala una vez y se puede usar para facilitar nuevas actualizaciones. El gestor de arranque se puede realizar desde el SDK ejecutando el siguiente comando:
make PROGRAM=lofive-boot TARGET=lofive-r1-bootloader upload
La aplicación "hola mundo" se puede cargar en la placa de desarrollo con el siguiente comando:
make PROGRAM=sifive-welcome TARGET=lofive-r1 upload
En ese momento, un desarrollador habrá programado su primera aplicación RISC-V, y las posibilidades de hacia dónde dirigirse desde aquí son ilimitadas.
Consejos y trucos para trabajar con RISC-V
Comenzar con los procesadores RISC-V es un poco diferente a los ecosistemas de microcontroladores estándares. A continuación le ofrecemos algunos "consejos y trucos":
- Después de revisar el SDK LoFive-R1, tómese el tiempo para revisar el archivo README.md en el directorio principal. Cuenta con información útil sobre dónde encontrar la documentación de SDK y los paquetes de soporte de placa, entre otros datos interesantes.
- Si se encuentra disponible una sonda de depuración profesional como un SEGGER J-Link, úsela para programar aplicaciones en el procesador RISC-V. J-Link apoya a RISC-V desde 2017.
- Para los desarrolladores que prefieren usar un IDE en lugar de herramientas de línea de comandos, considere usar Freedom Studio para el desarrollo de RISC-V, que es un IDE basado en Eclipse.
Los desarrolladores que siguen estos "consejos y trucos" descubrirán que ahorran bastante tiempo e inconvenientes cuando trabajan con RISC-V por primera vez.
Conclusión
RISC-V es una arquitectura interesante que puede ser adecuada para los desarrolladores que buscan utilizar una arquitectura de hardware de código abierto. Actualmente existen placas de desarrollo para procesadores RISC-V y, como se ve en este artículo, la configuración de las cadenas de herramientas no es mucho más difícil que cualquier otro microcontrolador estándar.
No olvide que, aunque RISC-V es interesante, no cuenta el rico ecosistema de muchas de las plataformas de los microcontroladores actuales, por lo que los desarrolladores que eligen seguir el camino de RISC-V pueden encontrarse con menos opciones y recursos para aprovechar su viaje. Esa compensación puede valer la pena, según la aplicación final y las preferencias y los recursos del desarrollador.
Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de DigiKey o de las políticas oficiales de DigiKey.


