Electronics > Beginners

Advice for a newbie to dive into digital SMPS control

(1/1)

glon:
Hi everyone, this is my first post so I'm not sure whether this section is the right place to ask.

I'm an electrical engineering working into power electronics (hw design and testing). I would like to have a bigger picture on SMPS design, so I want to start experimenting by myself with a microcontroller development board suitable for digital control loops used in SMPS/motor control.
I know some fundamentals of C and I can use pretty decently Matlab/Simulink, furthermore I had a course in control theory at university. Also I already did some control simulation in PLECS/Simulink environment to run model-based simulations of SMPS.

So, given that background, I want to ask you a few things:

- what would be the 'right' path (if any exists) to become a motor/SMPS control designer?
- I saw some discovery kit/dev board, like the ST32F334 (https://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-mpu-eval-tools/stm32-mcu-mpu-eval-tools/stm32-discovery-kits/32f3348discovery.html), the TI's C2000 (http://www.ti.com/tool/LAUNCHXL-F28379D) and the Freescale/NXP Kinetis series (https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/kv-series-cortex-m4-m0-plus-m7/kinetis-kv5x-240-mhz-motor-control-and-power-conversion-ethernet-mcus-based-on-arm-cortex-m7:KV5x?tab=Design_Tools_Tab, but I didn't get which board would be the right one for my purpose).
- Matlab/Simulink code generation support would be a benefit, since it should allow me to perform some processor-in-the-loop simulation (right?)

Looking forward to receive your advices, thank you in advance guys!  :)

ogden:
Mentioned 32F3348DISCOVERY is fine choice. For studies it is good idea to "augment" it with input DC fuse holder and bunch of 0.5A or 1A fuses. You may want to check LTspice with many "test fixtures" of (analog) SMPS supplied. Obviously no MCU-based supplies here. Otherwise very good and popular in EE community, simulation tool.

glon:
Thanks for the tip Odgen. I think I will go for the STM32, even because it's based on ARM-Cortex architecture, which is everywhere nowadays. Also, the STM board seems more basic with respect to others, and having to deal with more stuff might confuse a beginner as I am.

T3sl4co1l:
Just to reiterate (in case you haven't covered it already), you're controlling inductor current first and foremost.  Why?  Transistors explode beyond their design current ratings, simple as that.  Running an inner current loop also gives you an operational current limit for free (the current amp simply delivers whatever INPUT_MAXVAL corresponds to!).

(For the typical, voltage sourced, switched inductor, converter.  Obviously this is flipped in a current sourced, switched capacitor, converter.  Not to be confused with a charge pump (voltage sourced, switched capacitor), or, I guess what would be called a "flux pump" (current sourced, switched inductor).)

To implement such a control loop digitally, you of course need bandwidth high enough to deal with that; preferably, sample rate a few times F_sw would be good.  This makes the STM32F0 range of MCUs (and comparable parts from others) a practical minimum, and the F4 mentioned above will give you a lot of CPU cycles -- and hardware -- to spare.

You may also consider an attachable controller like MCP1630, which contains all the hard real-time logic, while you can provide much less strict signals from the MCU.

Some have this integrated (I see some PICs that offer it), or have general enough hardware that you can construct something equivalent (e.g., AVR event system; probably a lot of ARMs; lots of SoCs; and FPGAs of course).

You can offload more and more; the canonical, old-school way is a DAC or two, driving the setpoint(s) of a traditional SMPS controller/regulator.  This is stable even if the CPU crashes (the setpoints simply freeze in place), and a simple watchdog can disable the outputs in that case.  You barely need 1 MIPS to run such a system (e.g., a 6502).

Tim

Navigation

[0] Message Index

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod