I'm a developer of the "brain" part of the switch-mode power-supplies. Now I'm on AVRs, but I'd like to develop my self to more advanced processors. Switch-mode power supplies are the devices with lots of processes taking place within fractions of microsecond so with ARVs I used the corresponding PWM controller ICs. DSP and, probably ARMs will be able to provide direct driving of the switch gates and high-speed data acquisition. My opinion that ARM is the right stuff. But I know nothing about this wide varied devices. How to choose the right device? Is there enough information on the web? Are the dev.tools so advanced as for AVRs? Please bless me to move to the ARM-based developing :)


If you are planning to use ARM devices for switched mode power supplies, then I would suggest taking a look at the Cortex M0 and Cortex M3 devices. These are commonly used in switched power applications and are available from numerous vendors including big players such as ST and NXP.

Both these devices typically have the following features that make them suitable for switched power applications: onboard timers, which are useful for generating PWM waveforms, analog comparators, which are useful for responding to fast current signals, ADC converters, and DAC converters. Compared to a typical AVR, the 32 bit architecture offers more raw processing power.

The main difference between the Cortex M0 and M3 is the computing power. The M0 is considered to be an entry level device. I am using this M0 from ST and it is more than sufficient for a voltage control application. A good way of getting started would be to use a demo board such as this. If you need to do current control, which requires more computional power, consider using a Cortex M3.

Concerning toolchains, there are many to choose from. If you don't need more than 32k, then a good place to start is with the MDK-ARM Microcontroller Development Kit from Keil. It is free for up to 32k, which is often more than enough. Other toolchains worth looking at are:

  • LPCXpresso. For Philips ARM devices, this IDE has a free edition that allows code sizes of 256k to be compiled.
  • GNU ARM Eclipse. This is free but can be tricky to get up and running.
  • \$\begingroup\$ Thank you very much for such detailed answer! Is it will be correct if I'd say that DSP is not best solution for such kind of tasks? And can I hope that software tools for ARM will be easy to use for the person (I) used Codevision AVR C compiler? \$\endgroup\$ – Roman Matveev Jan 21 '14 at 11:24
  • \$\begingroup\$ A DSP would be an alternative to a Cortex M3, i.e. useful if you need to perform complex mathematical operations in a very short time. It is difficult to say what is the best solution for you without a better idea of your requirements. Perhaps you should clarify your question and include more information about your intended application? \$\endgroup\$ – mr_js Jan 21 '14 at 11:54

Not the answer you're looking for? Browse other questions tagged or ask your own question.