Using Scalable Microcontrollers to Achieve Design Flexibility

By Kenton Williston

Contributed By DigiKey's North American Editors

As advanced features such as artificial intelligence (AI) and complex, graphics-rich human-machine interfaces (HMIs) become more common in applications, product designers are looking for more powerful microcontroller units (MCUs). However, designers are also asked to create cost-optimized products that forego these flashy features. These competing pressures make it imperative to pick an MCU that can readily scale to meet different market requirements.

The increasing speed of innovation is adding to this pressure. Application requirements can change unexpectedly, so it is essential to have easy access to alternative MCUs. Futureproofing and reuse must also be considered. Significant time and cost savings can be achieved when design elements can be reused for other projects.

One way to address these challenges is by choosing an MCU family with a wide range of options. The STMicroelectronics STM32H7 is a good example. It ranges from value-optimized, entry-level 32-bit MCUs to dual-core MCUs with rich feature sets.

This article highlights criteria to consider when selecting an MCU family, using features of the STM32H7 family as examples. It also introduces development boards and tools available for the STM32H7 MCUs and explains how to kickstart projects using this infrastructure.

Factors that make an MCU family flexible and scalable

Many factors must be considered when searching for a flexible MCU family. Having options across a wide range of performance and power levels is particularly important. The preferred MCU family should include options with a wide range of clock speeds and cores optimized for different targets. For example, Arm® Cortex®-M4 for low power and Arm Cortex-M7 for high performance.

The family should carry MCUs with basic processing capabilities and options with extended capabilities. Many applications require data protection and secure communications. Features like hardware-based encryption, secure boot, and cryptographic accelerators are essential for these use cases. Similarly, a digital signal processor (DSP) and floating-point instructions are critical for data-intensive applications.

The MCU family should also offer a wide range of RAM and flash memory sizes to accommodate everything from simple applications to those requiring extensive software frameworks or data storage. The MCUs should have external memory interfaces for applications exceeding internal memory capabilities to provide necessary scalability.

Finally, MCU families with more peripheral options can handle a wider variety of applications. It is essential to ensure that the MCU family includes options with advanced I/O like USB, Ethernet, Bluetooth, and Wi-Fi, as these interfaces can be challenging to add as upgrades in later designs. Ideally, the selected family will offer pin compatibility across its product range to support hardware upgrades or downgrades without major printed circuit board (pc board) redesigns.

The development tools should support the entire MCU family from a software perspective. To accelerate development, there should be a consistent software application programming interface (API) and a robust set of libraries, middleware, and a real-time operating system (RTOS).

STM32H7: a case study in versatility

The STM32H7 series from STMicroelectronics exemplifies an MCU family that meets these criteria. As illustrated in Table 1, it is highly scalable, with a range built around the Arm Cortex-M7 that encompasses both basic and advanced MCUs. The series has four lines, each optimized for different applications.

MCU Core and Clock Maximum Flash/RAM Key Features
Value Line 280 MHz to 550 MHz
Arm Cortex-M7
128 Kbyte Flash
1 Mbyte RAM
Low cost, Ethernet, QSPI, TFT
Single-Core Line 280 MHz to 550 MHz
Arm Cortex-M7
2 Mbyte Flash
1.4 Mbyte RAM
TFT, Ethernet, Q-SPI, low-power
Dual-Core Line 480 MHz
Arm Cortex-M7 +
240 MHz
Arm Cortex-M4
2 Mbyte Flash
1 Mbyte RAM
Switched-mode power supply (SMPS), TFT-LCD, MIPI-DSI, JPEG
BootFlash Line 600 MHz
Arm Cortex-M7
External Flash, 620 Kbyte RAM NeoChrom GPU, I3C, XiP, USB PHY

Table 1: Key highlights of the four STM32H7 series’ lines. (Table source: Author, using source material from STMicroelectronics)

The Value Line is available at speeds from 280 to 550 megahertz (MHz) and features 128 kilobytes (Kbytes) of embedded flash memory and 1 megabyte (Mbyte) of RAM. It supports a variety of communication interfaces and external memory extensions, providing a cost-effective solution for performance-oriented systems. The STM32H750VBT6 is one such MCU, and comes in a 14 x 14 millimeter (mm) 100-LQFP.

The Single-Core Line also runs at speeds from 280 to 550 MHz. It provides up to 2 Mbytes of flash memory and up to 1.4 Mbytes of RAM, catering to applications that demand rich user interfaces and real-time control. One example is the STM32H743IIK6, which comes in a 10 x 10 mm 201-UFBGA package.

The Dual-Core Line features a secondary Arm Cortex-M4 core optimized for efficiency. An embedded switched-mode power supply (SMPS) enhances power efficiency. Other advanced peripherals include TFT-LCD, MIPI-DSI, and a hardware JPEG codec. A typical example is the STM32H747AII6, which comes in a 7 x 7 mm 169-UFBGA package.

The BootFlash Line stands out for its high performance, reaching speeds up to 600 MHz. It is designed to facilitate real-time execute-in-place (XiP) applications and is equipped with 64 Kbytes of boot flash alongside 620 Kbytes of RAM. Additionally, some models in this line feature an optional NeoChrom GPU for enhanced graphics acceleration. Typifying this line is the STM32H7R3Z8J6 with its 10 x 10 mm 144-UFBGA package.

The benefits of compatibility with the STM32F4 and STM32F7 families

The STM32H7 is part of a more extensive range of STMicroelectronics MCUs and is pin-compatible with its sibling STM32F4 and STM32F7 families for the most common packages. These MCUs are all based on Arm Cortex-M cores and share similar peripherals and GPIO pin layouts. The commonalities make it easier for designers to migrate between the MCUs without significant changes to their hardware. This compatibility can reduce development time and cost when upgrading a product or designing new products based on the different capabilities of each family.

Additionally, the MCUs are all supported by the same software development ecosystem, including the STM32CubeMX for configuration and initialization-code generation, and the STM32CubeIDE for development and debug. This compatibility ensures that software components, middleware, and application code can be reused across projects targeting either family, further accelerating development cycles.

Getting started with STM32H7 series MCUs

Getting started with STM32H7 MCUs involves a few key steps and the effective use of development boards and tools. The following step-by-step guide will show how to begin development with these powerful microcontrollers.

1. Choose a development board

Ideal for initial exploration, Discovery kits come with an integrated debugger/programmer and usually feature various onboard user LEDs, keys, sensors, and connectivity options. Nucleo boards, such as the NUCLEO-F767ZI (Figure 1), are a good balance between flexibility and affordability. They are Arduino Uno compatible for easy expansion and have an STLINK interface for use with debuggers/programmers.

Image of STMicroelectronics NUCLEO-F767ZI development boardFigure 1: The NUCLEO-F767ZI development board is a simple but flexible starting point for experimentation. (Image source: STMicroelectronics)

Evaluation boards offer the most comprehensive set of peripherals and connectivity options for full-feature exploration. For example, Discovery kits like the STM32H745I-DISCO (Figure 2) and the STM32H750B-DK quickly allow the evaluation of various interfaces with features such as:

  • 4.3 inch (in.) RGB interface LCD with touch panel
  • Ethernet compliance with IEEE-802.3-2002
  • Power over Ethernet (PoE)
  • USB OTG FS
  • SAI audio codec
  • One ST-MEMS digital microphone
  • 2 × 512 Mbit Quad-SPI NOR flash memory
  • 128 Mbit SDRAM
  • 4 gigabytes (Gbytes) of on-board eMMC
  • 2 × CAN FDs
  • Arduino shields compatible
  • Onboard STLINK-V3E debugger/programmer with USB re-enumeration capability: mass storage, Virtual COM port, and debug port

Image of STMicroelectronics STM32H745I-DISCO evaluation boardFigure 2: The STM32H745I-DISCO evaluation board offers a rich set of hardware resources. (Image source: STMicroelectronics)

2. Software tools setup

STMicroelectronics offers an integrated development environment (IDE) for its MCUs (Figure 3). It includes a compiler, debugger, and a configurator for initialization-code generation and peripheral setup.

Image of STMicroelectronics STM32H7 IDEFigure 3: Shown is a screenshot of the STM32H7 IDE. (Image source: STMicroelectronics)

3. Learn and experiment

Next, it is advisable to read the documentation. An excellent place to start is the user manual for the development board and the relevant STM32H7 reference manual. These documents provide vital information on MCU architectures, peripheral configuration, Pin-Mux, and hardware characteristics.

Experimenting with example projects is an effective way to learn the tools. STMicroelectronics offers a range of example projects for various STM32 MCUs. These examples can serve as a great starting point for understanding how to use different MCU features.

Lastly, the developer community can provide additional support. Engaging with resources like the ST Community, tutorials, and videos can provide solutions to common problems and inspiration for possible projects.

4. Development and debug

The IDE provides everything needed to start writing, compiling, and debugging code. The configurator within the IDE can be leveraged for peripheral initialization and middleware setup. The development board's integrated STLINK debugger/programmer interface allows for real-time debugging. Issues can be identified using breakpoints, watching variables, and stepping through code.

5. Expanding a project

Expansion boards can add functionality such as connectivity or sensors to Discovery and Nucleo boards. Once the desired functionality has been established via development boards, a custom pc board may be designed using the schematics of the development board as a reference. One example of a custom board is the OpenMV4 CAM H7 camera platform (Figure 4) from Seeed Technology Co., Ltd. It uses the single-core STM32H743.

Image of Seeed Technology OpenMV4 CAM H7 is intended for vision systemsFigure 4: The OpenMV4 CAM H7 is intended for vision systems. (Image source: Seeed Technology Co. Ltd.)

Another example is the ABX00051 Nicla Vision (Figure 5) from Arduino, which uses the dual-core STM32H747.

Image of Arduino ABX00051 Nicla VisionFigure 5: The ABX00051 Nicla Vision helps developers evaluate different image sensors. (Image source: Arduino)

Conclusion

The selection of the MCU in a product design is critical, given the competing demands for advanced features and cost optimization. The STM32H7 series from STMicroelectronics is a potent example of how choosing the right MCU family can provide a scalable, flexible solution that addresses current and future needs.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

About this author

Image of Kenton Williston

Kenton Williston

Kenton Williston received his B.S. in Electrical Engineering in 2000 and started his career as processor benchmark analyst. Since then he worked as an editor with the EE Times group and helped launch and lead multiple publications and conferences serving the electronics industry.

About this publisher

DigiKey's North American Editors