Es sorprendente el ritmo con el que se incorporan al mercado los dispositivos microcontroladores basados en ARM®. El uso de una familia común de núcleos compatibles con distintos niveles de rendimiento aporta diversos beneficios a los desarrolladores integrados que buscan un nuevo dispositivo en el cual basar el diseño de sus nuevos productos o la nueva plataforma de tecnología. No obstante, en el apuro por incorporar al mercado un dispositivo, los proveedores de microcontroladores deben hacer frente al dilema de dedicar tiempo a ajustar el conjunto periférico y las optimizaciones de arquitectura en torno al núcleo del ARM, o bien, perder participación en el mercado por parte de clientes fieles que necesitan dispositivos precisamente en este momento, mientras encaran nuevos diseños. Esto es lo que sucede con la arquitectura de Cortex-M0/M0+ de ARM. El hecho de darse cuenta del ahorro de energía y de las mejoras periféricas que se incorporaron a los dispositivos de 8 bits a lo largo de los años ha sido valorado en gran medida por los clientes. Además, saber que es necesario personalizar a medida para fabricar el mejor producto posible en cualquier plataforma ha logrado que algunos proveedores de microcontroladores adopten un enfoque más integral a la hora de incorporar los últimos dispositivos ARM Cortex®-M0+ al mercado. Atmel es uno de ellos.
Como primera medida, Atmel dio un paso atrás con su primer producto M0+ y recurrió a sus dos décadas de experiencia en el desarrollo de microcontroladores flash integrados de 8 bits y de sus más de 17 años de experiencia como licenciatarios de ARM. Resultó evidente que gran parte de la innovación realizada a sus dispositivos tinyAVR®, megaAVR® y AVR XMEGA® sería de gran relevancia para la implementación de M0+. Un ejemplo de una característica de AVR® que suele ser valorada en gran medida por los ingenieros es el Peripheral Event System. Se trata de un enfoque que permite que los periféricos cooperen entre sí sin tener que recurrir al uso de CPU o recursos de bus. La IP de baja energía de Atmel también se ha valorado significativamente. Esto incluye utilizar osciladores de baja energía, compuertas y escalas previas de relojes, además de modos inactivos y mejoras en la comunicación en serie para evitar la pérdida de datos al "activarse" desde un modo inactivo.
Como resultado de la incorporación de muchos aspectos de las propias innovaciones en microcontroladores de Atmel con la IP de núcleo de ARM, el SAM D20, basado en dispositivos, modelo Cortex-M0+ de Atmel, cuenta con un punto de referencia CoreMark de 2.14coreMark/MHz y un consumo de energía superior a 150µA/MHz en modo activo y de alrededor de 2µA en modo de conservación RAM. En comparación, otros dispositivos del mercado presentan un consumo de energía activo en el rango de 200 a 400µA/MHz y realizan las mismas tareas a los mismos niveles de rendimiento. Echemos un vistazo en mayor detalle a algunas de las mejoras que hicieron que esto fuera posible.
Tal como se mencionó anteriormente, el Event System permite que los periféricos se comuniquen sin involucrar ningún tipo de actividad del CPU. Es una red de enrutamiento, independiente de las rutas tradicionales de bus de datos. Los distintos accionadores a nivel periférico pueden derivar en un evento, como cuando el temporizador provoca una reacción en otro periférico. Compuesto por ocho canales independientes en el modelo D20 y 12 canales en el modelo D21, el Event System tiene una latencia fija de 2 ciclos. El SAM D10 y D11 tienen 4 canales en el Event System. Si no sufre ningún tipo de vibración, es un método 100 % determinista y el compañero ideal de las aplicaciones en tiempo real. No se pierden eventos y se manejan a un nivel periférico en 2 ciclo, incluso si el CPU está ejecutando una interrupción no enmascarable. Tradicionalmente, la forma de manejar las acciones para una aplicación de baja energía sería mediante el uso de interrupciones. No obstante, las interrupciones activarían el CPU. Por ejemplo, analicemos el caso de una aplicación de controlador de motor que utiliza modulación por ancho de pulsos (PWM). Para detectar situaciones de error, muchas aplicaciones de motor hacen uso de un comparador analógico o ADC para medir la corriente que ingresa en el controlador del motor en situaciones de sobrecorriente en las que quiere cerrar cuanto antes los canales de la PWM que controlan el motor a fin de evitar que se produzcan daños permanentes en el circuito y, también, por motivos de seguridad. Sin un Event System, la situación de sobrecorriente accionará una interrupción; no obstante, la solicitud de servicio de interrupción podría demorarse si el CPU se encuentra realizando otras tareas de mayor prioridad. Mediante el uso de Event System, puede conectar el comparador analógico o el ADC directamente al temporizador y cerrar siempre el temporizador en 2 ciclos, independientemente de lo que está haciendo
el resto del MCU.
En la Figura 1, se ilustra la forma en que Event System administraría la protección de corriente de control de motor sin tener que recurrir a ningún tipo de intervención por parte del CPU. Este enfoque presenta muchas ventajas. Las principales ventajas son la reducción del presupuesto de consumo de energía, la descarga eficiente de tareas de rutina del CPU y el hecho de alcanzar un tiempo de reacción totalmente predecible.
Figura 1 - Event System - Ejemplo de controlador de control del motor
Una de las características principales que distingue al dispositivo de Atmel es la oferta de un módulo de comunicación en serie múltiple altamente configurable (SERCOM). Compuesto hasta por 6 canales de interfaz en serie en las piezas D20 y D21, y 3 canales en serie en las piezas D10 y D11, es posible configurar un software en cada puerto en serie para que se convierta en interfaces I2C, SPI o USART. Esto les ofrece a los desarrolladores una inmensa flexibilidad a la hora de comenzar un diseño, ya que permite configurar las interfaces existentes conforme se necesite. Por ejemplo, si necesita 2 I2C y 4 UART, eso es lo que tiene que hacer. Este enfoque presenta dos beneficios muy importantes para el desarrollador integrado. En primer lugar, ya no tiene que rastrear las especificaciones de los microcontroladores cuando busca un dispositivo con la cantidad de tipos de interfaces en serie que necesita. Esto no solo le permite ahorrar tiempo, sino incorporar un microcontrolador único para una serie de diseños similares, en los que las interfaces necesarias pueden variar levemente, con lo cual ya no es necesario que compre un dispositivo con 5 UART porque necesita 3 SPI. El segundo beneficio está relacionado con el diseño de PCB. Al elegir el tipo de interfaz para que coincida con la ubicación de
cualquier componente de interfaz de respaldo o interconectar con el PCB, se establece un enrutamiento más eficiente del PCB que no solo es potencialmente más corto, sino que también evita que trayectorias largas de señal atraviesen componentes con ruidos eléctricos. Esto se logra mediante la incorporación de varios módulos SERCOM y por el hecho de que cada módulo SERCOM tiene múltiples opciones de conexión con pin. El dispositivo SAM D20 de Atmel admite un modo rápido de I2C de hasta 400 kHz, mientras que SPI y UART presentan una capacidad de velocidad de transferencia de hasta 24 Mb/s. Los módulos de comunicación en serie están conectados al sistema de evento periférico (mencionado arriba) que habilita la cooperación periférica sin intervención del CPU. Si bien no suele ser necesario para muchas aplicaciones, cada módulo SECOM también tiene la capacidad de que se lo reconfigure por medio del software en otro tipo de interfaz sobre la marcha.
Por último, con el objetivo de ofrecer un diseño Cortex-M0+ con las características más útiles que requieren los desarrolladores integrados, Atmel también desarrolló un controlador táctil periférico en los modelos SAM D20 y D21 basados en el amplio conocimiento de la línea de productos maXTouch. Estos nuevos periféricos, los más innovadores de los modelos SAM D20 y D21, pueden utilizarse para implementar interfaces de control táctil mediante el uso de botones, ruedas y controles deslizantes. También ofrece la capacidad de detección por proximidad. El módulo del controlador táctil periférico admite hasta 256 canales en una configuración matriz y es compatible con métodos de sensor mutuos y de autocapacitancia. El SAM D20 presenta un excelente nivel de eliminación de ruidos y características de sensibilidad, además de la autocalibración, lo que le confiere una gran cantidad de capacidades de control táctil en el chip.
El SAM D21 también cuenta con funcionalidades USB de anfitrión y dispositivo. Las diminutas piezas de los modelos SAM D10 y D11 cuentan con capacidad para dispositivos USB, a pesar de encontrarse disponibles en paquetes de 14, 20 y 24 pins, que permiten ahorrar espacio. Si bien el D10 y el D11 no tienen capacidad DMA, admiten hasta 8 canales para un ADC de 12 bits de 350 ksps y un canal para un DAC de 10 bits de 350 ksps. El D21 también viene con 2 canales de I2S con un PLL fraccional de 96 MHz para transmisión de audio.