Repository navigation
H7: support 25 MHz HSE in PLL1 and PLL2 setup (fixes SYNERDUINOH7 build) - #12184
sensei-hacker wants to merge 1 commit into
Conversation
SYNERDUINOH7 and SYNERDUINOH7A (HSE_MHZ 25) fail to build: the PLL2 block asserts HSE_VALUE is a multiple of 1.6 MHz. For a 25 MHz HSE, use M=10 (VCI 2.5 MHz, inside the 2-16 MHz input range the wide VCO requires per DS12110 Table 50) and scale N so both PLLs keep their existing VCO frequencies: - PLL2: N=320, VCO 800 MHz, VCI range 2-4 MHz - PLL1: N scaled by 4/5 (320/384), VCO 800/960 MHz as with 8/16 MHz HSE Previously PLL1 used M=12 for 25 MHz, giving 417 MHz (rev Y) and an out-of-spec 1000 MHz VCO / 500 MHz core (rev V). Builds for 8 and 16 MHz HSE targets are unchanged.
|
ⓘ Qodo reviews are paused because the subscription is no longer active. Ask your workspace admin to reactivate the subscription to resume reviews. Manage billing |
PR Summary by QodoFix STM32H7 PLL clocks for 25 MHz HSE boards
AI Description
Diagram
High-Level Assessment
Files changed (1)
|
Code Review by Qodo🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)
Great, no issues found!Qodo reviewed your code and found no material issues that require reviewTip of the day💡 Did you know, you can enable the Remediation agent and Qodo fixes findings in a dedicated fix PR |
|
@synersignart can you please test? |
|
RAM / Flash usage vs. base commit
See RAM/flash optimization guide for techniques to reduce usage. |
|
Test firmware build ready — commit Download firmware for PR #12184 251 targets built. Find your board's
|
|
yas ok we'll check on it, thanks |
Summary
SYNERDUINOH7 and SYNERDUINOH7A (
HSE_MHZ 25) fail to build on maintenance-10.x: the PLL2 (SDMMC/FDCAN) setup assertsHSE_VALUE % 1600000 == 0.This adds a 25 MHz HSE case for both PLLs. M=10 gives a 2.5 MHz VCO input, inside the 2-16 MHz input range the wide-range VCO requires (DS12110, Table 50). N is chosen so that each PLL keeps its existing VCO frequency, which leaves every P/Q/R output unchanged:
Before this change, PLL1 used
M = 25/2 = 12with a 25 MHz HSE. That ran the core at 417 MHz on rev Y. On rev V it ran at 500 MHz with a 1000 MHz VCO, which is outside the VCO's specified range.The
#elsebranches are unchanged, so 8 and 16 MHz HSE targets compile to the same configuration as before.Testing