Acerca de la familia ARM-Cortex M0+

En la actualidad muchas tarjetas de desarrollo utilizan la familia ARM-Cortex M para integrar el núcleo de sus PCB. En particular la familia ARM-Cortex M0+ se ha vuelto una de las más populares para tarjetas de bajo costo. Podemos mencionar las distintas variantes de Arduino Nano, la micro:bit V1 y V2, la Raspberry Pi Pico, entre otros. En esta entrada queremos profundizar en lo que hace tan popular a esta arquitectura de microcontroladores, en qué se distingue del resto de las familias M de ARM y por qué es importante estudiar esta familia de microcontroladores.

¿Qué es ARM Cortex-M0+?

Es una arquitectura de microcontroladores desarrollada por ARM. Diversos fabricantes la utilizan para desarrollar sus propios circuitos integrados. Por ejemplo, la fundación Raspberry Pi utilizó esta arquitectura para el RP2040. Microchip para los microcontroladores SAMD21, que podemos encontrar en las Arduino Nano 33. STMicroelectronics con el STM32G071RB, que podemos encontrar en su tarjeta NUCLEO-G071RB, entre otros ejemplos.

Características clave

El Arm® Cortex®-M0+ es el procesador más eficiente disponible para aplicaciones embebidas para diseños restringidos. Con su smallest silicon footprint y mínimo conjunto de instrucciones los desarrolladores pueden lograr un desempeño de 32 bits con el costo que tendría un microcontrolador de 16 y 8 bits. Es adecuado para aplicaciones con funciones simples. Se basa en el ARM Cortex M0, con funciones añadidas.

  • Arquitectura Armv6-M
  • Unidad de protección de memoria
  • Interfaz AHB-Lite
  • Interfaces de entrada y salida de baja latencia
  • Puerto JTAG y Serial Wire Debug (SWD) con 4 breakpoints y 2 watchpoints
  • Micro Trace Buffer opcional

Adicionalmente podemos recalcar que es una de las familias de ARM con menor consumo de energía. En modo activo los microcontroladores que usan esta arquitectura suelen tener un consumo de corriente de 7mA a 12mA, logrando en los casos más eficientes hasta 2.5mA. En modos de reposo, si se configura bien el dispositivo, se pueden lograr consumos de hasta 35uA.

Elementos de la arquitectura. Vía: STMicroelectronics

¿Por qué es importante?

Muchas de las aplicaciones complejas que se pueden realizar con TinyML se pueden implementar con el M0+, lo que nos permite diseñar un dispositivo muy eficiente. Por ejemplo, es posible implementar algoritmos de inferencia usando voz, como el reconocer instrucciones para encender o apagar dispositivos. Se emplea con mucha frecuencia para aplicaciones de Edge Computing y el Internet of Things. La clave de su uso es en productos que consuman muy baja corriente, con el mejor rendimiento posible, a un costo muy bajo.

Referencias:

ARM Developer: Cortex M0+

Arm® Cortex®-M0+ in a nutshell

Arm Cortex-M Processor Comparison Table

The Cortex M0+ challenge: How low can we go?

The definitive guide to ARM Cortex-M0/M0+: Ultralow-power designs

ARM® Cortex®-M0+

Micro Trace Buffer

ATMEL ATSAMD21, un microcontrolador basado en la arquitectura ARM-Cortex M0+. Vía: Makers Portal