Empezar con el STM32 I: Introducción

Estos microcontroladores están basados en ARM Cortex™-M3 y por tanto son de 32bits. Los microcontroaldores basados en Cortex-M3 destacan sobre todo por su gran mejora del sistema de interrupciones, ya que cuentan con una unidad dedicada para esta tarea (NVIC) que permite configurar las interrupciones prácticamente de cualquier forma que necesitemos, además puede tener hasta 240 interrupciones físicas con hasta 256 niveles de interrupción distintos. También destacan por su bajo coste, bajo consumo y porque funcionan con el conjunto de instrucciones Thumb®-2 que proporcionan un gran rendimiento con una alta densidad de código, ya que tradicionalmente el conjunto de instrucciones ARM ha tenido una densidad de código muy baja. Actualmente varias son las compañías que están produciendo familias de microcontroladores Cortex-M3, como Luminary Micro (comprada por Texas Instruments) con su familia Stellaris, NXP con los LPC1700, Atmel con los AT91SAM3 y por supuesto STMicroelectronics con los STM32.

 

 

Los primeros en salir fueron los Stellaris, pero de momento me he decidido a probar los STM32 porque he encontrado mucha información, herramientas y ejemplos, así como placas de desarrollo de bajo coste. Quizás dentro de un tiempo me anime a probar los Stellaris o cualquier otro, ya que todos son microcontroladores muy potentes y con muchas prestaciones.

Centrándonos en la familia STM32, vemos que se dividen principalmente en los STM32F y los STM32W. Los STM32W son microcontroladores basados en Cortex-M3 pero con una interfaz radio añadida; están aún en desarrollo y son bastante nuevos por lo que aún es pronto para hablar sobre ellos. A su vez, dentro de la familia STM32F, se dividen en 4 categorías que son la access line (STM32F101), USB access line (STM32F102), performance line (STM32F103) y conectivity line (STM32F105 y STM32F107), siendo estas de menor a mayor número de prestaciones así como de menor a mayor coste. Dentro de cada categoría podremos también escoger entre empaquetados que van desde los 36 pines a los 144, así como memoria flash interna desde 16KB a 512KB y SRAM de 4KB a 64KB.

 

 

Yo me he decidido de momento por la gama STM32F103, aunque también creo que usaré la STM32F101 en alguna ocasión. En cualquier caso, las diferencias siempre serán que tendrán unos periféricos distintos, por lo demás serán iguales. Para empezar he comprado una placa de Futurlec que me servirá como entrenadora y también he pedido unos cuantos de micros para hacer placas e integrarlos en mis proyectos. Una de las grandes ventajas de los STM32 es que cuentan con una ROM que contiene un bootloader, por lo que no necesitamos ningún programador para subir nuestro código, ya que se hace por puerto serie, así que de momento no necesitaré nada más del lado hardware para ir probando cosas.

Para empezar a probar esta plataforma hay muchísimas alternativas más, pero cabe destacar el gran trabajo hecho por STMicroelectronics al crear el STM32 Primer y el STM32 Primer 2 y la comunidad STM32Circle.

 

 

Con esto ya tenemos una idea de qué son los STM32, qué ventajas pueden ofrecernos y cómo elegir uno u otro, ahora viene lo mejor, empezar a programarlos y ver las posibles opciones. He vivido en primera persona cómo es llegar a esta plataforma sin tener ni idea y empezar a buscar un entorno de desarrollo por internet, y la verdad es que tiene sus ventajas y sus inconvenientes. Como ventaja es que hay mucha información, como inconveniente es que hay muchísimo donde elegir, tanto que al final no sabes qué elegir ni qué ventajas tienen unas cosas y otras. Precisamente esto es lo que contaré en próximas entradas del blog, compiladores, IDEs, JTAGs, RTOS, librerías, etc.

Espero que sea de interés y utilidad.

Hola, solo una curiosidad ...

Imagen de Anónimo

Hola,
solo una curiosidad ... a rasgos generales me podrías hacer una comparativa con los DSPIC32 ...

Gracias por adelantado ...

Buenas, pues en realidad no

Imagen de F. J. Sánchez

Buenas, pues en realidad no soy ningún experto como ya he dicho, pero bueno, mirando un poco la principal diferencia sería la arquitectura usada, ya que en este caso Microchip emplea un procesador MIPS que da un poco más de rendimiento que el usado por los Cortex-M3. En cuanto a periféricos, ambos andan más o menos igualados... En unos casos sale ganando uno y en otros otro.

De todos modos, la gran ventaja de los Cortex-M3 es que existen un montón de placas de desarrollo económicas, así como una gran cantidad de software donde poder elegir, pero sobre todo una gran ventaja es contar con GCC, por lo que podemos desarrollar para esta arquitectura sin ninguna restricción. También es más fácil cambiar de un STM32 a un Stellaris, ya que ambos se basan en Cortex-M3 y deberían ajustarse al CMSIS (http://www.arm.com/products/CPUs/CMSIS.html). Con Microchip no hay alternativa a la que poder migrar en caso de necesidad, pero por otro lado Microchip es una empresa muy fiable.

Espero que algo te sirva, aunque tampoco puedo decirte mucho más ahora mismo.

Enviar un comentario nuevo

El contenido de este campo se mantiene privado y no se mostrará públicamente. If you have a Gravatar account, used to display your avatar.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Saltos automáticos de líneas y de párrafos.

Más información sobre opciones de formato