microcontroladores
Innovación en hardware abierto

Placa de desarrollo de hardware abierto combina el STM32C5 con el lenguaje Oberon-2

El diseño de Runar Tenfjord, basado en el formato BluePill, ofrece una plataforma para la experimentación con microcontroladores STMicro STM32C5 y un enfoque de programación alternativo.

El diseñador de electrónica noruego Runar Tenfjord, a través de su compañía Tenko, ha puesto a disposición del público los archivos de diseño y el firmware de una nueva placa de desarrollo. Este proyecto, que se distingue por ser de hardware abierto y tener una licencia permisiva (MIT), se inspira en el popular formato BluePill y se centra en el microcontrolador STMicroelectronics STM32C5.

La placa ha sido diseñada en KiCad v10 y se adapta al formato BluePill, compatible con protoboards. En su núcleo, integra el microcontrolador STMicro STM32C551CE, un componente relativamente nuevo en el mercado. Este MCU cuenta con un núcleo Arm Cortex-M33 de 32 bits, capaz de operar a una frecuencia de hasta 144 MHz, e incorpora 128 kilobytes (kB) de RAM estática y 512 kB de memoria flash.

En cuanto a sus características físicas, la placa incluye un puente UART a USB WCH Electronics CH340E, un regulador de tensión de baja caída (LDO) de 3,3V, un botón de reinicio, un LED y un botón controlables por el usuario. La alimentación y la comunicación de datos serie se realizan a través de un puerto USB-C. No obstante, es importante señalar que este puerto no está destinado a la programación; para ello, la placa dispone de un conector Serial Wire Debug (SWD) y requiere un programador compatible.

Un enfoque de programación alternativo

Más allá del hardware, el aspecto más singular de esta placa reside en su soporte oficial para una variante incrustada del lenguaje de programación Oberon-2, conocido como ECSOberon. Aunque la placa permite la programación tradicional en C/C++, la inclusión de Oberon-2 –un lenguaje inspirado en Pascal y Modula-2– abre una vía distinta para el desarrollo de microcontroladores. Tenfjord destaca que ECSOberon ha sido adaptado con funcionalidades como asignación manual de memoria, tipos sin signo, punteros a variables, paquetes y plantillas simples, lo que lo hace "más práctico para la programación de sistemas y MCUs que la implementación original de Oberon-2".

El creador del proyecto subraya las ventajas de ECSOberon para aplicaciones en microcontroladores, destacando su simplicidad y su soporte para el diseño orientado a objetos mediante herencia única. Una de sus características clave es el tipo de dato SET, que facilita "la manipulación de los registros de bits del MCU de manera muy sencilla y natural". Además, su arquitectura de módulos y paquetes simplifica la organización del código y elimina la necesidad de archivos de cabecera, evitando problemas de colisión de nombres comunes en lenguajes como C.

Límites de la propuesta

Tenfjord también reconoce las limitaciones de este enfoque. Entre ellas, menciona la verbosidad del lenguaje, la exigencia de usar mayúsculas para las palabras clave y la ausencia de soporte para preprocesadores. Sin embargo, considera que el "mayor inconveniente" es la escasez de código de ejemplo y recursos didácticos existentes, lo que implica que "muchas cosas deben implementarse desde cero".

Los archivos del proyecto KiCad, junto con los de producción y el código fuente del firmware, están disponibles en GitHub bajo una licencia MIT, fomentando la colaboración y la modificación por parte de la comunidad de desarrolladores.

Por qué importa

Este proyecto de hardware abierto no solo democratiza el acceso a nuevas plataformas de microcontroladores como el STM32C5, sino que también revitaliza el interés en lenguajes alternativos para sistemas embebidos. Al integrar Oberon-2, Tenfjord propone una reflexión sobre la simplicidad y la seguridad en el desarrollo de firmware, alejándose de la hegemonía de C/C++ y abriendo caminos para la experimentación educativa y profesional con paradigmas menos comunes pero potencialmente eficientes.

Antecedentes

El formato de placa de desarrollo BluePill, en el que se inspira este diseño, se ha consolidado como un estándar popular en el ámbito del hardware abierto por su compatibilidad con protoboards y su bajo coste. En cuanto al lenguaje Oberon-2, se inscribe en la tradición de lenguajes de programación estructurada, siendo un descendiente directo de Pascal y Modula-2, desarrollados por Niklaus Wirth. Estos lenguajes se caracterizan por su diseño minimalista y su énfasis en la seguridad de tipos, buscando optimizar la claridad y fiabilidad del código.

ECSOberon: Pros y Contras para Microcontroladores

La variante ECSOberon, seleccionada para esta placa, persigue optimizar la programación de sistemas embebidos. Entre sus ventajas, Tenfjord destaca su simplicidad, soporte para diseño orientado a objetos con herencia única, y un tipo de dato SET que facilita la manipulación de registros de bits. Además, incorpora funcionalidades como asignación manual de memoria, tipos sin signo y un concepto de módulos que evita la gestión de archivos de cabecera y colisiones de nombres. No obstante, el propio creador señala inconvenientes como su verbosidad, el uso obligatorio de mayúsculas en palabras clave, la ausencia de preprocesador y, principalmente, la escasez de código de ejemplo, lo que obliga a desarrollar gran parte de las funcionalidades desde cero.

Esta es una placa STM32C5 personalizada en el formato BluePill, compatible con protoboards, diseñada en KiCad v10.

Runar Tenfjord, Fundador de Tenko

Esta familia de microcontroladores es bastante nueva y, por lo tanto, no todas las variantes estaban disponibles con los proveedores habituales cuando se creó esta placa.

Runar Tenfjord, Fundador de Tenko

ECSOberon tiene una serie de beneficios para aplicaciones con MCU. Es el lenguaje más simple posible, pero soporta el diseño orientado a objetos con herencia única. El lenguaje tiene el tipo de dato SET de bit, lo que hace que manipular los registros de bits del MCU sea muy fácil y natural.

Runar Tenfjord, Fundador de Tenko

El lenguaje ECSOberon está actualizado con asignación manual, tipos sin signo, punteros de variables, paquetes y plantillas simples. Haciéndolo más práctico para la programación de sistemas y MCUs que la implementación original de Oberon-2. No hay archivos de cabecera de los que preocuparse. La visibilidad de los elementos del código se define directamente en el módulo. El concepto de módulo y paquete mantiene el código limpiamente segregado y evita el problema con los nombres en colisión en C.

Runar Tenfjord, Fundador de Tenko

…muchas cosas deben implementarse desde cero. Este es el mayor inconveniente en mi opinión.

Runar Tenfjord, Fundador de Tenko

Datos clave

MicrocontroladorSTMicro STM32C551CE
NúcleoArm Cortex-M33 de 32 bits
Frecuencia de relojHasta 144 MHz
Memoria SRAM128 kB
Memoria Flash512 kB
Licencia de diseñoMIT

Fuente original: Hackster.io

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *