ARM: Introducción

En éste apartado voy a escribir lo que estoy aprendiendo en la asignatura de informática industrial, donde estamos viendo la programación de un microcontrolador basado en ARM Cortex. Además, se parece "sospechosamente" a lo que hay en éste blog sobre el curso de programación:

http://armpower.blogs.upv.es/materiales-arm-cortex-m-iniciacion-2/

Pero bueno...

Yo voy a pasar de "los microprocesadores y microcontroladores son blablabla y sirven para blablabla..." y me meto directamente en lo interesante del tema. Material del bueno.

¿Qué es ARM y por qué me interesa?

Es la empresa que diseña los núcleos de los microcontroladores, entre ellos las series Cortex-M, Cortex-R y Cortex-A.

La familia Cortex-A os puede sonar porque están integrándose en el mundo de la telefonía móvil. Unos pepinazos.

Pues bien, ésta empresa vende el diseño a empresas fabricantes como ST, Texas Instruments, Atmel, ... Y éstos le añaden unos periféricos (puertos de entrada/salida, relojes, todo aquello que el núcleo no lleva) y lo meten todo en uno de éstos:

Pongo una imagen porque, como que impresiona más

Además tienen la buena manía de añadirlos a placas de desarrollo ya construidas y fáciles de usar, tipo sistema embebido, y son baratas, muy buen precio, la verdad. Ésta es la que uso yo en clase y que, debido a mi diógenes electrónico, he adquirido:

Si es que mola sólo de verla, y con más razones.

STM32F4Discovery

Pues es éso, han cogido el integrado y te lo han puesto en una placa con sus pines, un par de botones y cosas bonitas, y a programar que se ha dicho. Ésta placa me costó unos 14 euros y tiene lo siguiente:

  • Un microcontrolador STM32F407VGT6, con un núcleo ARM Cortex-M de 32 bits,  1MB de Flash, 192KB de RAM y todo ésto a 168 MHz.
  • Un acelerómetro de 3 ejes
  • Un micrófono
  • Un conversor digital/analógico para audio
  • 4 LEDs integrados que puedes manejar a tu gusto
  • 2 botones: uno de reset y otro de usuario para que lo programes como quieras
  • Un USB para que conectes lo que puedas, aparte de otro para programación y debug
  • Montones y montones de pines para el resto de puertos y utilidades

Algo muy importante de éstos microcontroladores es que tienen un modo debug, en el que puedes ver a tiempo real cómo cambian los registros y posiciones en la memoria en la pantalla de tu ordenador.

Me ha gustado ¿cómo se programa eso?

Hay distintos programas y todos tienen sus tonterías. A mí el que me está funcionando es uno semi-gratuito llamado Keil: tienes una versión de prueba con todas las funcionalidades disponibles pero "solo" puedes programar 32KB de la memoria.

También hay otros de licencia gratuita, por ejemplo el CooCox.

En realidad la programación de un ARM es algo "especialita": todos los fabricantes tienen sus programas y librerías, todos los programas tienen unas funciones u otras, ...  Al final sale ARM un poco al medio y pone algo de orden con sus librería estándar. Es probable que no consigas que funcione a la primera, pero no te preocupes porque al final algo saldrá en claro.

Yo voy a usar el Keil versión 4, aunque puedes probar la versión 5. Descarga gratuita en Keil.com

Deja un comentario

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