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 have evolved into a high-level product that provides high processing power with the minimum clock frequency and power usage.
Practically all major manufacturers are developing their line or ARM processors that share the same standard core functionality, and variations between MCUs starts with peripherals and other external features. ARM microcontrollers are cheap and robust which makes them attractive to use in almost all applications. They are successfully taking the place of smaller microcontrollers like ARM or PIC. Hobbyists also are taking them over.
ARM Cortex – M3
ARM Cortex – M3 is ARM architecture introduced in 2006. It is improved ARM architecture compared to ARM7TDMI, which was and still is widely used as a successful microcontroller in the market and 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 and is more comfortable to write code which is also smaller in size compared to older ARM architectures. There are more debugging options and even more things that we will try to discover during tutorials.
Probably the only disadvantage of starting with ARMs as a hobbyist is the 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 and 8KB of RAM. The microcontroller can be clocked to maximum 24MHz. Board already have ST-link interface that allows programming and debugging board without additional hardware. It already has a couple of LEDs and button for a 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 a tool 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 handle and get exact 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 tool are provided by CodeSourcery. They offer free Light edition G++ that contains all necessary tools that also can be used with Eclipse IDE. We will get more in to these in later tutorials.