The STM32F411 is ST's ARM Cortex-M4 microcontroller with hardware FPU, rated at 125 DMIPS, with up to 512 KB Flash, 128 KB SRAM, USB OTG full-speed with integrated transceivers, 11 timers, one 12-bit ADC, and 13 communication interfaces. Its maximum CPU clock frequency is 100 MHz — that's the headline number, and it's confirmed by the datasheet's own run-mode current tables, which characterize the part at fHCLK = 100 MHz. It's aimed at USB-connected products (device, host, or OTG), floating-point signal-processing workloads, and multi-interface bridging roles where you want M4-class performance on a simple power scheme. That last part is the real story of this post: the F411's datasheet doesn't demand a complicated supply architecture, but it does demand a precise one, and most of the design risk lives in the numbers below.
The numbers most often misread on the STM32F411
100 MHz is the clock limit, not a target. The core runs up to 100 MHz via PLL. Two things bite people here. First, flash wait states and peripheral clock limits are VDD-dependent (the datasheet's Table 15 collects these range-dependent features), so a clock configuration that boots fine at 3.3 V can fail at 1.8 V if it assumed the 3.3 V wait-state count. Second, running at 100 MHz costs current: at 3.6 V, external clock + PLL on, all peripherals enabled, the datasheet gives typ 29.5 mA / max 31.5 mA at 25 °C — and that grows to 33.3 mA at 105 °C. The same 100 MHz with peripherals disabled is typ 20.4 mA / max 21.8 mA. Budget your supply with the temperature-dependent max, not the typical.
VDD is 1.7–3.6 V, but the bottom of that range is conditional. Below the internal POR/PDR active region, the internal supervisor is disabled and the datasheet requires an external power-supply supervisor on the VDD and NRST pins. If your rail can sit near 1.7 V, you're signing up for that external supervisor — or you should pick a different operating point.
USB FS works down to 2.7 V, with a documented penalty. The datasheet states the embedded full-speed PHY can drop to 2.7 V, but "the electrical characteristics of D- and D+ pins will be degraded between 2.7 and 3 V." Translation: battery-powered USB products at 2.8 V will enumerate, but you're outside full-speed signal quality. If you rely on USB compliance, keep the rail at or above 3.0 V.
Current limits are aggregate, and the aggregate is the one people miss. A single I/O can sink/source ±25 mA; the sum across all I/Os is ±120 mA; total VDD current is 160 mA, with 100 mA per VDD pin. A board with many simultaneously driven outputs can blow the 120/160 mA totals while every individual pin looks fine. Drive LEDs and relays through transistors.
Injection limits are asymmetric. FT/TC pins and NRST/B pins allow −5/+0 mA of injected current — positive injection (any input driven above VDD) is disallowed entirely, with a ±25 mA total across all pins. So a 5 V-tolerant FT pin tolerates a static 5 V, but an overshooting inductive kickback or cable transient that sources current into the pin is out of spec. Clamp anything that can overshoot.
Wiring the STM32F411 into your design
Power and decoupling. VDD and VDDA must both sit in 1.7–3.6 V, with VDDA/VSSA tied to VDD/VSS and decoupled. The mandatory components:
| Component | Where | Value |
|---|---|---|
| Bulk ceramic | one VDD pin | 4.7 µF |
| Decoupling | every supply pair (VDD/VSS, VDDA/VSSA), close to or under the pins | ceramics (datasheet calls for 10 nF good-quality caps close to the chip) |
| VCAP caps | internal regulator output | 2 × 2.2 µF |
| VCAP caps, regulator bypassed | VCAP pins become external 1.2 V supply inputs | 2 × 100 nF |
The datasheet explicitly warns against removing these capacitors to save board space or cost — it can cause incorrect operation. Take that warning at face value: the internal regulator's stability depends on it. One package note: the VCAP2 pad exists only on LQFP100/UFBGA100, so smaller packages get a single VCAP cap.
Reset. NRST has an internal weak pull-up of 30/40/50 kΩ (min/typ/max). The pin filters pulses ≤ 100 ns out and guarantees pulses ≥ 300 ns (at VDD > 2.7 V) are not filtered; the part's own generated reset pulse is ≥ 20 µs. If you add an RC for power-on delay or an external supervisor, its asserted pulse must exceed 300 ns or it will be silently swallowed.
Package-dependent power modes — check before layout, not after. This is where the F411 differs from siblings:
- PDR_ON (which disables the internal POR/PDR so you can use an external supervisor) exists only on WLCSP49 and UFBGA100. On LQFP48/64/100 you cannot disable the internal reset at all.
- Regulator OFF via the BYPASS_REG pin is UFBGA100-only. In regulator-OFF with internal reset ON, PA0 is repurposed as the internal reset — design it as reset, not GPIO, in that mode. In this configuration you also lose POR/PDR, BOR, PVD, and VBAT functionality entirely (VBAT must be tied to VDD), which means a battery-backed RTC and internal-reset-OFF are mutually exclusive on this part.
- In regulator-OFF mode the datasheet imposes hard rules: a reset must be applied on PA0 when VDD falls below 1.08 V to reset the internal logic, and if VCAP1/VCAP2 drop below the V12 minimum while VDD is above 1.7 V, a reset must be asserted on PA0 — your supervisor has to do this; it's not automatic.
GPIO-level exceptions. Internal pull-up/pull-down resistors are 30/40/50 kΩ everywhere except PA10 (OTG_FS_ID), which is 7/10/14 kΩ — a USB ID divider computed against a 40 kΩ assumption will be wrong on that pin. BOOT0 has different input thresholds from all other pins (VIL = 0.1·VDD + 0.1 V, VIH = 0.17·VDD + 0.7 V, 0.1 V hysteresis) and is separately rated to 9 V absolute maximum — a convenience for bootstrap circuits, but a reminder that it is not a normal GPIO.
I²C pull-ups. Fast mode rise time is limited to 300 ns with up to 400 pF bus capacitance per line; the internal spike filter rejects pulses ≤ 50 ns. Note that the datasheet's I²C characteristics table (Table 58) carries the footnote "guaranteed by design, not tested in production," and the spike-filter figure is further qualified — the minimum width of spikes filtered by the analog filter is above tSP (max). Treat these as design targets, not production-tested limits, when sizing pull-ups: keep RC charging inside the 300 ns window at your actual bus capacitance — a 10 kΩ pull-up on a fully loaded bus will violate it.
Verifying the STM32F411 on the bench
Test in this order:
- Supply ramp. The datasheet requires tVDD ≥ 20 µs/V. If your supply (or a hot-plug event) ramps faster, the operating envelope no longer applies. Ramp deliberately and confirm clean startup.
- Reset behavior. Apply a 200 ns pulse to NRST — the device must not reset. Apply 350–400 ns — it must reset. Confirm your board's reset source produces ≥ 300 ns at the pin, and that NRST idles at VDD through the internal pull-up.
- Run-mode current. At 3.6 V and 25 °C: expect typ 20.4 mA / max 21.8 mA at 100 MHz with peripherals off, typ 29.5 mA / max 31.5 mA with everything on, and typ 3.6 mA / max 4.1 mA on HSI at 16 MHz, PLL off, peripherals off. A reading far above max usually means a short, a missing/miswired VCAP cap, or bad decoupling.
- Standby floor. Typ 2.1 µA / max 4 µA at 25 °C with RTC+LSE off; typ 3 µA / max 5 µA with LSE+RTC on. Tens of µA means a GPIO is leaking into the rail or the HSI (60 µA typ / 80 µA max) is left running.
- Low-voltage corner. Verify firmware and flash actually work at 1.7 V, not just 3.3 V — flash wait states, ADC clock, and I/O speed limits all shift across VDD.
- Clock accuracy. Route HSI out via MCO and measure. It's factory-calibrated to ±1% at 25 °C, −4/+4% over −10 to 85 °C, and −8/+4.5% over −40 to 105 °C; startup is 2.2 µs typ / 4 µs max. If your UART baud or USB timing needs better, use HSE — HSI alone will drift with temperature.
- ADC sanity. At an 18 MHz ADC clock the part is characterized at 10.3–10.4 ENOB, INL ±2/±3 LSB, DNL ±1/±2 LSB, with 0.1 µs minimum sampling time and a 2 Msps ceiling for the single 12-bit ADC.
- ESD/latch-up screen. HBM is 2000 V (class 2); CDM varies sharply by package — 500 V on UFBGA100/UFQFN48, 400 V on WLCSP49, only 250 V on LQFP64/LQFP100. If your LQFP board goes through automated handling, the CDM budget is your tightest constraint. Latch-up is class II level A at 105 °C.
Known limitation: HSE crystal requirements (Table 37), flash endurance/retention, POR/BOR values verified below notwithstanding some ESD sub-tables, the 36 MHz ADC accuracy table, and the I²C characteristics (Table 58, "guaranteed by design, not tested in production") were not fully verified for this guide — read those tables directly in the datasheet before signing off a production design.
One useful verified table for bring-up: POR/PDR releases reset on a rising edge at 1.72 V typ (1.64–1.80 V) and re-asserts at 1.68 V typ (1.60–1.76 V) falling, with 0.5–3.0 ms of POR reset timing and up to 200 mA of in-rush when the regulator powers on or the part wakes from Standby — size your supply and decoupling for that surge, not just the µA standby figure.
Troubleshooting the STM32F411
Won't boot, or resets right after power-up. Check where your rail crosses the POR/PDR thresholds: reset releases around 1.72 V rising (typ). A supply idling between the 1.7 V operating minimum and the POR window means the internal reset may never release. Also re-read the option bytes — the three BOR levels (rising typ 2.29 / 2.59 / 2.92 V) are option-byte selectable, so a "resets at 2.4 V" symptom is expected behavior with BOR2 selected, not a fault.
Random resets in operation. Enable the PVD (software-enabled, interrupt-only, 100 mV hysteresis, eight selectable levels from ~2.14 to ~3.14 V rising) and see if it fires before your resets — if it does, the board supply is the culprit, not the MCU. If your package has PDR_ON and it's tied to disable the internal reset, you have no internal low-voltage protection: an external supervisor asserting NRST below 1.7 V is mandatory.
Reset button or supervisor "does nothing." Your pulse is probably under 300 ns and being filtered. Scope NRST at the pin; a real, internally generated reset lasts ≥ 20 µs, so use that as your reference window. Don't hang a large capacitor or strong pulldown on NRST — its 40 kΩ-typical internal pull-up can be dragged below the release threshold.
Timing drifts between boards or with temperature. If you're on HSI, that's the spec working as written (see the accuracy figures above). Trim via RCC_CR for ≤1%, or move to a crystal.
Watchdog resets even though the loop feeds it. The IWDG runs from an independent 32 kHz RC and keeps counting in Stop and Standby — sleep longer than its timeout and it resets you regardless of your main loop. The WWDG is clocked from the main clock, so it stalls if the clock dies (use IWDG for clock-fault coverage); its counter can be frozen in debug for single-stepping.
Field failures on connector pins. Remember the zero-injection-tolerance pin list (BOOT0, NRST, PB3–PB9, PC13–PC15, and others per the susceptibility table) and the datasheet's own recommendation: add a Schottky diode from pin to ground on analog pins that may see negative excursions.
Part page: STM32F411.