What are the recommended steps to take when reviewing my custom STM32 schematic design?
In this two-part article we will cover several main areas of focus when conducting a self-review of a custom STM32 schematic and share some hardware debugging tips.In total, there are seven key areas to consider when conducting your STM32 schematic review:
- Pinout / Alternate Functions
- Power
- Clocks
- Debug
- Boot
- Reset
- 5V-Tolerant Pins
In part one of this article, we’ll begin by covering sections I through IV.
1. Pinout / Alternate Functions
Every STM32 part number is composed of a combination of various letters and numbers. Use the ordering information section in the micro’s datasheet to decipher device information using your unique STM32 part number.As an example, we will be using the STM32F733IET. Using the package information derived from the STM32F7’s part number, we can further locate the pinout diagram in the datasheet.The next step is to verify that the alternate function you want to use is available on the pin selected. In the STM32’s datasheet, refer to the pin and ball definition table. Locate your STM32 device, package information and have the pinout diagram handy as you will want to search for the STM32’s pin number and pin name. Every row on this table indicates the pin’s name and alternate functions available on that pin.The STM32 alternate function mapping table can also be used as a secondary table to reference the alternate functions available for your chosen pins.All of the STM32’s I/Os include internal pull-up and pull-down resistors that can be activated accordingly using STM32CubeMX, eliminating the need for external resistors. Typically, the values of these resistors range from 30KΩ to 40KΩ, but it’s always best to verify your selected device’s internal resistors values by checking the I/O static characteristics table in the STM32’s datasheet.To minimize current consumption, we recommend configuring all your unused I/Os as analog input. In newer STM32 families, during and just after reset the alternate functions are not active so your device may already have most of the I/O ports configured in analog mode. However, this is not always the case so please verify this point in the GPIO section of your STM32’s reference manual.In STM32CubeMX, note that there’s an option to configure all unused I/Os as analog input. This option can be found under the project manager tab > code generator > HAL Settings as shown below:
2. Power
Upon reviewing the power connections to your board, it’s imperative to include in your design the required capacitors and to place these capacitors as closely as possible to the power pins. As an example, AN4661 is the STM32F7 series’ hardware development guide where you can find the appropriate power supply scheme diagram and any additional information required for power designs. For additional guidance on hardware design, each STM32 series has its own getting started with hardware development application note that you should refer to.
3. Clocks
When reviewing your STM32’s clock design, you will want to refer to two specific documents:
- AN2867 the oscillator design guide
- Your selected STM32’s datasheet
The oscillator design guide provides a list of ST approved STM32 compatible crystals, while the datasheet details the supported oscillator frequency range in the respective HSE or LSE oscillator characteristics table as well as gives the crystal’s gain margin or maximum critical crystal value needed for start-up. Depending on the STM32, the value to pay close attention to may be denoted as maximum critical crystal value or crystal gain margin. In any case for appropriate start-up conditions, the gain margin needs to be a value larger than 5 and the maximum critical crystal value must be less than the stated max value in the datasheet. For an example calculation and further guidance on calculating gain margin or the maximum critical crystal value, please refer to AN2867.4. Debug
At a minimum, the debug signals required to be present are:
Each STM32 is unique therefore we always recommend checking your specific STM32’s datasheet for the list of supported and available debugger options (e.g., SWD, JTAG and ETM).
You can find part two of this article here.