-
Notifications
You must be signed in to change notification settings - Fork 18
MCU Info Page: STM32H7 Family
Since its launch in 2017, the STM32H7 family has risen to an impressive level of popularity. As they boast high clock rates and powerful peripherals, yet are still reasonably simple to integrate into a PCB design, there's a lot to love on these chips! Mbed OS currently supports a number of STM32H7 MCUs, and this page will provide comparisons of each and some background information.
The STM32H7 can be seen as a direct competitor to NXP's MIMXRT family of devices (e.g. the MIMXRT105x). Both MCUs hit some of the highest clock rates available in Cortex-M microprocessors, and both are to some extent the flagship line from their respective companies. Having used MCUs from both families quite a bit, I'd say that I'm in a good position to compare them.
I would say that the strengths of STM32H7 are circuit simplicity, documentation, and features. Designing a circuit for an STM32H7 micro is fairly straightforward: you just feed in a clock signal and add capacitors to the pins that the datasheet tells you to. MIMXRTs, in contrast, have a mandatory switching regulator that has to be routed and require an external flash chip (+ the correct software configs for it). And STMicro documentation, while not perfect, at least makes an effort to tell you what things do and how to configure them. MIMXRT docs, however, are decidedly mediocre, and are full of confusing, badly formatted diagrams and weirdly worded explanations. Last but not least, STM32H7 MCUs have a wide breadth of features available, such as an arbitrary polynomial CRC accelerator, a DAC, and a JPEG codec. While MIMXRT MCUs have all the standard features one would expect for a microcontroller, they don't really have fun extras like these.
Meanwhile, the MIMXRT family has its own strengths: speed and MCU simplicity. MIMXRTs can reach a faster core speed than STM32H7s, so they will be the winners in workloads that are very heavily CPU bound. And their bus speeds go higher as well on some models, so even for memory-bound workloads, they will likely take the upper hand. Also, there is a fundamental simplicity of design that one can appreciate about MIMXRT chips, even if it's a bit abstract. For instance, almost all MIMXRTs have a single unified address space*, where all the DMA and MCUs can access all the peripherals -- even if the bus architecture isn't unified, at least the addressing is. Meanwhile, STM32H7 has a highly complex address map where each peripheral in each domain can only access specific other domains and peripherals. Sometimes that isolation might be useful, but it causes a lot of programming complexity. Another example is, MIMXRT MCUs have an elegant, unified crossbar (XBAR) interconnect that goes between virtually every peripheral. Though it's not perfect, it lets you build all sorts of interesting digital logic contraptions using the fabric of the MCU itself.
*MIMXRT117x and some of its relatives have an errata that interferes with this
So all in all, it's hard to really pick one or the other as better or worse; they are just good at different things. If you can handle the circuit complexity and documentation, I would recommend not discounting the MIMXRT as a possible competitor for the STM32H7!