Almost every company that develops microcontrollers (MCU) has a part or series of parts that is designed for motor and real time control. When used correctly, the parts I have worked with all perform admirably. Although I generally choose an MCU based on the price, peripherals, package type, and familiarity, there are performance differences between them beyond just the added features. This post is my attempt to measure the performance of a selection of MCU cores when executing a standard Field Oriented Control (FOC) loop. These tests are very application specific and mainly stress each MCU’s math, flash, and caching speed.
The Contenders
I chose a selection of MCUs that I have experience using, have the tools to develop, and cover a range of core types. The price varies greatly between the most expensive and least expensive MCU I tested. The exact part chosen depended more on availability of development boards than any particular application requirement. However, the overall family of each MCU has a variety of parts that cover a large range of price points and feature-sets. That said, following are the MCUs: