Notas sobre el ARM Cortex-Mx (M0, M1 y M3)


1. Introducción
2. Los micros disponibles
3. Libros para empezar
4. Módulos y kits de evaluación
4.1. Luminary micro (ahora Texas Instruments)
4.2. STMicroelectronics
4.3. Atmel
4.4. NXP
5. JTAG
6. Herramientas de desarrollo
7. Librerías de desarrollo
8. Apuntes por clasificar

Última actualización: 20 de mayo de 2009

1. Introducción

Esta arquitectura de 32 bits para microcontroladores tiene muy buena pinta y parece tener futuro. El objetivo de ARM es tener precio de 8 bits y potencia de 32 bits, es decir, hacerse con el mercado de 8 y 16 bits.

A mediados del 2008 se presentó la revisión 2 de la arquitectura Cortex-M3, con interesantes mejoras en la gestión de energía (por ejemplo, el "Wake-Up Interrupt Controller" (WIC) permite pasar de dormido a activo rápidamente). Habrá que tenerlo en cuenta para futuras evaluaciones cuando ya haya disponibles chips con la revision.

Esta arquitectura está soportada por el "GNU Toolchain", así que se pueden hacer progrmas sin gastarse nada en las herramientas software (pero, por lo leido, no es fácil).

Como un objetivo es que lo puedan usar los alumnos en sus propios proyectos, la idea es buscar sistemas de desarrollo lo mas económicos posible.

2. Los micros disponibles

ARM ha creado una pagina donde se van añadiendo los miembros "públicos" que van produciendo los fabricantes. Están mezclados todos los tipos de ARM microcontrolador (ARM7-TDMI, ARM-9, ...).

Esta en www.onarm.com, sección "available devices".

Por la experiencia con distintos fabricantes, nos hemos decantado por elegir entre los siguientes fabricantes: Atmel, Luminary, NXP y STMicroelectronics.

Se ha comprobado que en Atmel solo hay una foto de la nueva familia SAM3 y que no hay nada mas disponible. Bueno, ahora (junio 2009) hay algo mas http://www.atmel.com/products/at91/sam3landing.asp?family_id=605.

NXP ya tiene diponibles muestras (de hecho ya tengo uno), pero no se pueden comprar aun (tienen una pinta impresionante y son de la revisión 2 de la arquitectura).

Quedan Luminary y St. Los dos parecen buena elección y hay kits de evaluacion a buen precio.

3. Libros para empezar

El único especifico que he encontrado:

"The Definitive Guide to the ARM Cortex-M3" by Joseph Yiu. Publisher: Newnes (August 23, 2007) ISBN-10: 0750685344 ISBN-13: 978-0750685344

Después de leerlo, el consejo es que más vale empezar por otro sitio o podemos desanimarnos. Es muy técnico y enfocado a la arquitectura y su aprovechamiento desde el punto de vista del código máquina.

Para romper mano, quizá sea mejor utilizar las guías de los fabricantes. Las de St se entienden bastante bien.

En la conferencia ESC, Micrium y ST han presentado un libro+kit para RTOS. Mola, habra que hacerse con el.

4. Módulos y kits de evaluación

"Amb diners, cartxofes", pero estamos buscando algo económico que puedan comprar nuestros estudiantes.

A continuación se enumera lo que se va encontrando y su precio aproximado. Se clasifica por fabricantes del micro.

4.1. Luminary micro (ahora Texas Instruments)

4.2. STMicroelectronics

Atencion, tener en cuenta que hay una nueva "conectivity line".

  • Módulo ST Primer 2 de Raisonance. Unos 70 Eur. y muy bien equipado. Tiene una comunidad muy activa llamada stm32circle. ATENCIÓN: No coger la version antigua (la redonda).

    Están apareciendo también módulos añadidos muy interesantes aquí http://www.raisonance-tools.com/primer2-addon.html

  • Modulo STM3210E-LK del fabricante. Aún no existe y no sé si saldrá de verdad (lo he encontrado en la documentacion interna de St).

  • Módulo STM32-H103 de Olimex. Sencillo e ideal para los alumnos y para algunos diseños. Unos 27 Eur.

  • Módulo de la China por Ebay en la tienda eelec. Unos 100 Eur. pero impresionantemente equipado y con JTAG. ¿Funcionará?.

  • Módulo de ET-STM32F103 de ETTteam. Por Ebay se puede encontrar por unos 35 Eur. Buena pinta.

  • Módulo bugblat cortino por 30 Eur. Pretende ser compatible con el arduino.

  • Módulos de propox. Pequeñitos. Unos 30 Eur.

4.3. Atmel

Ya tiene los SAM3 funcionando.

En Keil hay un kit interesdante: http://www.atmel.com/products/at91/sam3landing.asp?family_id=605

4.4. NXP

Ya los tiene disponibles.

5. JTAG

Imprescindible para depurar y hacer cosas serias. Interesan solo los que sean muy económicos.

  • Olimex ARM-JTAG. Unos 15 Eur.y es compatible Wiggler (puerto paralelo). Tienen más tipos que son USB.

  • Clónicos del U-Link de Keil en ebay.

6. Herramientas de desarrollo

Desarrollo en ensamblador y C.

Otros:

mas cosas:

http://rowebots.com/Embedded_Processor_support/TI_AEC_ARM_Cortex-M3 ukernel compatible POSIX y Linux. Brutal.

7. Librerías de desarrollo

Esta arquitectura está cargadísima de periféricos y posibilidades por lo que empezar un aplicación desde 0 es bastante trabajoso.

Para facilitar la entrada en esta familia, los fabricantes suelen proveer una librerías que facilitan mucho el desarrollo de las aplicaciones, reduciéndose considerablemente el esfuerzo para aprender a manejar los distintos dispositivos.

Hasta el momento, cada fabricante ofrecía su propio "firmware", con lo que un desarrollo empleando las librerías de un determinado fabricante de Cortex-Mx no era compatible con las de otro fabricante de las misma arquitectura.

Con el propósito de estandarizar, ARM y los fabricantes han propuesto CMSIS (Cortex Microcontroller Software Interface Standard), que se traduce en la práctica en que las librerías serán comunes a los fabricantes que se adhieran a esta iniciativa. En abril de 2009, St presentaba su librería estándar 3.0.0, y Luminary Micro está haciendo otro tanto.

CONSEJO: Dejar pasar un par de meses antes de seguir trabajando y pasarse a estas librerías estándar.

8. Apuntes por clasificar

ARM ofrece recursos y descuentos a Universidades en http://www.arm.com/community/university/. Hoy (4/2/2009) esta haciendo donaciones de hardware a personal cualificado (profesores, investigadores,etc) hasta que se agote.

Uno que tiene informacion sobre como empezar: http://milksnot.com/joomla/blog/11-generalblog/50-arm-cortex-m3-getting-started