ARM microcontrollers are very successfully positioned microcontrollers in the market. Billions of them are used in all areas where control, data processing in interfacing is needed. ARM microcontrollers has evolved in to high level product that provides high processing power with minimal clock frequency and power usage.
Practically all major manufacturers are developing their own line or ARM processors that share same standard core functionality and variations between MCUs starts with peripherals and other external features. ARM microcontrollers are really cheap and powerful that makes them attractive to use in almost all applications. They successfully taking place of smaller microcontrollers like ARM or PIC. Hobbyists also are taking them over.
ARM Cortex – M3
To be short, ARM Cortex – M3 is ARM architecture introduced in 2006. It is improved ARM architecture comparing to ARM7TDMI which was and still is widely used as successful microcontroller in the market and in hobby level. Anyway if you are getting started with ARMs, then definitely go with ARM Cortex – M3 which is efficient when talking about performance and power, is easier to write code which is also smaller in size comparing to older ARM architectures. There are more debugging options and even more that we will try to discover during tutorials.
Probably the only disadvantage of starting with ARMs as hobbyist is packaging of microcontrollers. They as usually in small packages like LQFP, QFN and BGA. So soldering boards may be difficult but possible. And of course it is best to start with ready made developing boards like STM32-Discovery which we will use in our tutorial.
STM32 – Discovery
STM32 – Discovery development board is a cheap development board to start with ARM microcontrollers provided by STMicroelectronics.
In STM32-Discovery board you will find STM32F100RB 32-bit microcontroller with 128KB of Flash, 8KB of RAM. Microcontroller can be clocked to maximum 24MHz. Board already have ST-link interface that allows programming and debugging board without additional hardware. It already have couple LEDs and push button for fast start. Board is designed so it can be connected to prototyping board for easy interfacing. So I strongly encourage to start with this board. More information about development board can be found here.
Available development tools
ARM microcontrollers require tool to to write code, compile, debug or emulate. There you can find lots of choices like Keil Development kit, IAR, CrosWorks for ARM, CodeSourcery, GNU GCC tools like Yagarto and more. Companies provide great tools with lots of options and wizards that makes code developing robust, but these are paid options that usually isn’t acceptable by hobbyists. Sure you can give a try with demo or limited versions but still this means that you cannot fully use their benefits. So obvious choice is to go with free software which is powerful enough to use and get same results. As I am not a Linux user I will suggest only windows alternatives. As I mentioned on option is to use Yagarto tools that works great with Eclipse IDE which his also free. Another great free compiler tools are provided by CodeSourcery. They provide free Light edition G++ that provides all necessary tools that also can be used with Eclipse IDE. We will get more in to these in later tutorials.