The H7 family of STM32 microcontrollers is, as of 2021, the most badass there is. It is based on the ARM Cortex-M7F core running at up to 550 MHz, with some chips in the family equipped with a second ARM Cortex-M4F core running at 240 MHz. How powerful is that ? Well, back when I was a kid, PC’s were equipped with Pentium MMX processors which could barely hit 200 MHz… and that was enough to run Windows 95 and first-person shooter games like Doom and Quake.
STM32H7 are what you might call flagship devices. And as a result, just like flagship smartphones, they carry pretty much every type of peripheral ever grafted onto a microcontroller, and in bulk quantities too. That makes them fairly large and complex chips. In turn, that makes it complicated to design circuit boards around. That’s why I use off-the-shelf modules instead, and design carrier boards for those.
This section covers the two modules (and microcontrollers) I’m playing with : the Nucleo-H745ZI-Q for the STM32H745 dual-core microcontroller and a Chinese module of mysterious origins for the STM32H750 single-core low-cost microcontroller. Here’s a team photo :
If you already know what you’re looking for, feel free to navigate this section. Otherwise, let me show you around :
On the left sits the Nucleo. This is a development module made, sold and supported by ST themselves. Nucleo are sold below cost, making them a darling of students and amateur roboticists all around the world. You can easily recognize them from their white PCB. Nucleo are about as user-friendly as an Arduino, but with a lot more options for fully exploiting the microcontroller they carry. Here, I’ve installed this one on a carrier board I’ve designed specifically to make it easier to wire each on-chip peripherals. As a simple rule, if an experiment is going to require more than ten jumper wires I just design a circuit board for it. Because signal integrity matters, and accidental shorts do happen.
On the right sits the ESRB. This is a more complex carrier board designed to integrate a RaspberryPi Zero (or anything with a compatible GPIO port), a Xilinx FPGA module and an STM32 module. The result is a real Swiss army knife of an embedded computer. I’ve also added a logic analyzer probe socket underneath to help debug. I’m not saying you can’t learn how to use an STM32H7 without this kind of hardware… but it is a huge help. Sadly, I can’t provide much information about the STM32H750 module I’m using : it’s one of those Chinese products for which there is no parent company, no documentation and no support. I was lucky to find a schematic and even then, I spent half a day checking that it actually matched the module. You never know. On the plus side, it’s even less expensive than a Nucleo and there’s multi-vendor availability.
Those aren’t my first designs and they won’t be the last, but right now I barely have time to work on those two.