Porqué controladores embebidos ARM Cortex Mx

Hola amigos

Quiero compartir con Ustedes el resultado de años metido en el asunto de los microcontroladores en sistemas embebidos. Quizá estos datos sean de alguna utilidad y tienen que ver con el tema del hilo, la programación en C o ASM.

Debido a que las estructuras en semiconductores han sido miniaturizadas y continúan siendo miniaturizadas, ocurre un efecto muy interesante. El número de entradas y salidas que acaban requiriendo pines en el empaque ha llegado a tal extremo, que el tamaño de un pedazo de silicio es determinado por el número de salidas a pines y no por los circuitos dentro del pedazo de silicio.

La consecuencia es, que el espacio interno disponible en el silicio no es utilizado por completo quedando vacio. En consecuencia es posible en un pedazo de silicio de igual tamaño, y solo el tamaño determina su costo de produción, meter un controlador de 32 bits o uno de 8 o 16 bits. Es mas, el espacio libre en esos pedazos de silicio es tal, que por ejemplo NXP y otros productores y diseñadores ponen programas completos en ellos facilitando así su uso para aplicaciones por ejemplo que contienen USB u otros usos. es mas en los controladores del tipo ARM Codex M4 se ponen mas de un controlador, aquí un ARM Cortex M0 y un M3, de periferias ni hablar.

Así resulta que los costos de producción de un ARM Cortex M0 pueden resultar iguales y hasta menores que los de los populares controladores de Avnet o PIC y en consecuencia también los precios.

Como la empresa ARM que licencia sus diseños de controladores ARM Cortex a los mas diversos productores exige de aquellos que licencian sus diseños, y todos los controladores tipo ARM son licenciados de ARM, que estos hagan disponibles las interfaces de aquellas funciones periféricas que incluyan en un silicio de acuerdo a lo definido en CMSIS. Son librerías que tienen un formato común. La consecuencia de esto es, que los productores y diseñadores de controladores del tipo ARM Cortex Mx, M0, M0+, M3 y M4, crean productos entre los cuales es facil portar aplicaciones programadas, siempre y cuando se orienten por el "estandard" CMSIS. Ahora cada productor tiene el problema, el reto, de crear utilidad por el usuario, para que este siga usando sus productos y no los de su competidor. Un criterio es la combinación adecuada de funciones periféricas para cierto tipo de aplicaciones, pero la otra también es la calidad de sus librerías que implementan CMSIS. Una librería ineficiente es a detrimento del proveedor, aunque quizá su hardware sea de mejor calidad. Así la calidad de las librerías es algo de interés primordial para el productor.

Pero esto no acaba allí! También el sistema de desarollo es un criterio de gran importancia. Imaginense un compilador ineficiente hace que un controlador sea aparentemente de menor rendimiento, cuando físicamente no lo es! estos sistemas se conocen bajo el término de IDE!

Pero no acaba allí tampoco. En la programación de estos controladores el costo de las herramientas es un factor que no es de importancia tan alta para empresas grandes, de allí Keil todavía está en el negocio. Un ejemplo relacionado a esto es el analisis del código, conocido bajo el término de "debugging". Estos controladores Arm Cortex tienen una interfaz JTAG y permiten experimentar con el código compilado, no en un simulador, sino el el propio controlador y este dentro de la aplicación que se está desarrollando. Todo lo que conocemos de posibilidades dentro de un simulador es posible, pero en tiempo real y en la hardware que tenemos como objetivo. eso es mucho mas rápido e idéntico a lo que va a ser el entorno de la aplicación que estamos desarrollando! El lujo y el aumento de eficiencia que resulta de ello hace cuestionable el uso de controladores tradicionales de 8 o 16 bit como lo son muchos Avnet y PICs donde el costo es un criterio de grán importancia.

Pero tampoco aquí acaban los beneficios para nosotros! Los IDEs y permítanme tomar los de la empresa NXP son gratuitos hasta un código de 512kbytes! Como la calidad del IDE es de importancia estratégica para NXP, NXP decidió adquirir la empresa "Code Red", antiguamente aquella que desarrollaba la IDE y de paso doblo el tamaño del código de la versión gratuita de 256 kBytes a 512kBytes!

Y siguen los beneficios! Como estos productores buscan ganar a aquellos usuarios de controladores emebidods tradionales, Avnet o PIC como ejemplo, hacen disponibles tarjetas de evaluación de forma en extremo económicas y si se va a alguna feria estos hasta regalan esas placas.

Yo, despues de muchos esfuerzos de investigación, acabé con 2 productores entre los cuales escoger. TI, Texas Instruments, y NXP, antiguamente Philips. Me decidí por NXP por la disponibilidad de las placas LPCXpresso.

Estas placas son tan económicas, comprando las una por una, solo 19,80 Euros o 27 USD para una placa con el LPC1769, un ARM Cortex M3. Pero aún mas económicas son aquellas placas LPCXpresso con un M0 o Mo+, la segunda variante requiriendo a un menos energía para ser operada.

Pero no acaban allí las ventajas. Tomo como ejemplo la LPCXpresso 1769. Siempre estas placas usan la variante mas poderosa y grande de la familia y existen las mas diversas familias de controladores ARM Cortex Mx.. La placa del LPCXpresso1769 es tan pequeña de sus dimensiones físicas, en especial cuando se separa el módulo con el LPC1769 del módulo con la interfaz JTAG y es tan ecónomico, que aunque en el pasado me hacía yo mismo las placas con el controlador, ahora me queda mas económico usar esta placa a comprar las diversas componentes en ella requeridas para operar el LPC1769, armarla y verificar su adecuada función. Ademas no requiero inventario, pues si ordeno la placa me llega de un día al otro. pero lo que no es de menospreciar, y eso es especialmente aplicable cuando se usa la versión mas poderosa de una familia de controladores, en este caso la familia de los ARM Cortex M17xx de NXP, es el reto de producir placas con tantos pines tan junto el uno al otro. Usando la placa LPCXpresso 1769 sin el módulo con la interfaz JTAG que solo requiero durante el diseño, pero que puedo conectar a esta por cable en cualquier momento posterior, poir ejemplo para mantenimiento y servicio, uso 2 filas de pines macho a una distancia de pines de 2,54 mm para montar el controlador en una placa específica para la aplicación de un cliente. La distancia de 2,54 mm entre pin y pin es un estandard tradicional y facil de realizar placas de bajo costo!

Escrito todo lo anterior:

Uno nuevo a los controladores le recomendaría empezar usando como lenguage de programación "C" o "C++", y aceder las periferias exclusivamente usando las librerías CMSIS disponibles por el proveedor de forma gratuita y si requiere un sistema operacional para sistemas embebidos usar por ejemplo FreeRTOS, lo que como el nombre indica es igualmente gratuito. Favor no confundir un sistema operacional para sistemas embebidos que requiere de reaciones de sus controlador de forma rápida y predecible con las posibilidades por ejemplo de Linux.

Para todo aquel que alcanze los límites de sus controladores de 8 o 16 bit, por ejemplo de Avnet o un PIC, o que realice que las limitaciones de estos controladores y sus IDEs resultando en deficiencia en la eficiencia de programación, cambiar a los controladores modernos del tipo ARM Cortex Mx y a la programación con "C" o mas moderno "C++"!

Queda como última parte de esto escribir del tal llamado "ecosistema". Bajo el término de "ecosistema" se refiere a la comunidad de personas y empresas que contribuyen a publicar ejemplos de programación, de aplicaciones y a las cuales se puede uno dirigir en búsqueda de apoyo. Siendo ARM el tipo de controlador que está por reemplazar Intel como el mayor proveedor de procesadores y siendo la arquitectura mas popular y moderna el el mercado de controladores, también de aquellos para sistemas embebidos, y siendo muy facil de transferir código de un proveedor de controladores embebidos a otro, el ecosistema para controladores Arm Cortex M es fenomenal!

Repito, ojalá esto sea de alguna utilidad para alguno de ustedes. Sin mas por el momento.

Saludos Hellmut
 
Atrás
Arriba