Preface: the switch-mode power supply is a flyback power-factor corrected AC-DC converter. I'm currently using a combination of AVR microcontroller (ATmega64A) with some analog (such as DACs) and digital (logic) external components. So control system used to switch main transistor, to control inductor discharge time, failures and so on (no special purpose PWM-controller implemented).

This approach has some certain limitations and drawbacks:

  • I can not precisely control several high-frequency processes and I limited regarding switch frequency to about 30-50 kHz

  • If I need to make any changes to hard logic - I need to use solder and a knife

  • I don't really like AVR documentation and periferal structure: many of software changes require a lot of reading and debugging, as peripheral (for example timers) has complicated control and modes

There are several alternatives I already considered as a next step:

  • ARM Cortex-M0(3) controllers (looks much faster than AVR, more peripheral, huge community),

  • Altera FPGAs (even faster, flexible programmable logic on a single chip, however there are no or rare any periphery such as ADCs, DACs, require for several unusual power supplies, no small packages available, quite different development chain and finally much more expensive).

So for me ARM looks as an obvious step forward but FPGAs looks very promising in some aspects.

Maybe I'm missing some alternatives?

For example I know that TI, ST and Microchip has several special purpose microcontrollers dedicated to SMPSs.

Maybe there are any controllers between FPGAs and GPMCs which can be good for my purposes?

Conclusion: I realize that I did not describe my needs in a degree that would be enough for expert answer, but I hope to have some directions to look forward and decide myself where to go in my closest future.

  • \$\begingroup\$ As soon as you said "flyback" and 500 watts I lost serious interest in this question. Surely a "forward" or push-pull topology is the best approach. \$\endgroup\$
    – Andy aka
    Commented Jun 17, 2015 at 10:11
  • \$\begingroup\$ @Andyaka, I'm aware of flyback limitations. Please consider my question as a general one but not flyback dedicated. \$\endgroup\$ Commented Jun 17, 2015 at 10:28
  • \$\begingroup\$ @Andyaka please refer to an article in addition to your flyback power remark, which is about flyback advantages and power limitations (this comment is not for any further discussion but for your facultative analysis): goo.gl/kOHYDQ \$\endgroup\$ Commented Jun 17, 2015 at 10:49
  • \$\begingroup\$ Listen, I'm not about to read thru that paper on some whim of yours. If you have a point to make, make it clearly in your question or as a comment. \$\endgroup\$
    – Andy aka
    Commented Jun 17, 2015 at 11:05
  • \$\begingroup\$ If you think AVR peripherals are complex, good luck with ARM (have a read of CMSIS for a warmup). ATmega64 peripherals are some of the easiest to use. If you want to avoid reading lots of documentation you are going to have to get someone else to do the project for you. \$\endgroup\$
    – Jon
    Commented Jun 17, 2015 at 11:06

1 Answer 1


Not really an answer but a "what would I do"

I used to work for a department where many bright people worked for many years to design a microcontroller based DCDC converter. They could not get it to work properly under all circumstances ! For sure the demands on that design were more complex than yours.

The reason why I bring this up is that I doubt if it is a good idea to try to implement this with an FPGA or microC. instead of using a dedicated SMPS controller. For sure that would be far easier and above all SAFER !

Of course the decision is yours but I know what I would do (use a dedicated SMPS controller).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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