H743 仅限 V 修订的高频配置

冷启动 STM32H743ZIT6 参考配置需要区分 CPU、总线与外设时钟域时,可选择 hsi64-pll384-cache-off。本页说明当前固定配置、统一 owner 及失败边界,仅覆盖 V 修订 0x2003,Cache 关闭。实板 HIL 仍为 not_executed;软件执行不能测量供电、结温、时钟精度或通信表现。

一份装配选择一个时钟 owner

FIG-05:当前生成 Platform 的生命周期;箭头表示显式启动、逆序清理与保留责任

FIG-05 描述通用 Platform 生命周期。对本精确参考配置,SoC 启动依次展开为时钟 owner、System 时基和选定 consumer。逆向路径必须先撤销 consumer 与 System,再撤销时钟 owner。该图不是调频时序或物理证明;下文的精确时钟阶段细化了图中的生命周期责任。

一项 TOML clock 选择经已审SoC 事实解析为不可变时钟域 IR。生成 bundle 选择私有实现,CMake 选择其编译单元。typed factory 仍只返回已有静态 face,不执行 MMIO、分配、时钟设置或探测。运行调用通过共享只读方法表直接进入选定 provider。

私有时钟合同负责准入与时钟责任,System负责 TIM2 及其向量。生成的生命周期装配规定调用顺序并保留启动、清理诊断。两者的 effect mask 属于不同命名空间;平台投影仍保留的责任,不能把数值 mask 当作可互换标识。

准入精确的冷态配置

高频配置的自动准入要求 DEV_ID 0x450、REV_ID 0x2003(V)及出厂默认 HSI 用户 trim。ES0392 Rev15 表 2 将 0x1003 同时映射到 Y/W,将 0x2001 映射到 X。已审 DS12110 Rev11 电气章节明确覆盖 V;Y/W 无法区分,X 又缺少明确审查对应的电气章节,因此不能准入这些 ID。它们与未知修订均返回 UNSUPPORTED,不取得效果。没有自动回退或可由用户覆盖的修订允许列表。

启动必须遵循实际由 reset owner 控制的调用顺序,发生在 SysTick、调度器、I/O 或其他时钟 owner 运行之前。寄存器值相符不能证明这些历史前提。诊断刻意不读取 SysTick CTRL,因为 COUNTFLAG 是读清位;LOAD/VAL 为零不能证明 ENABLE 已清零。接管 bootloader 和运行时调频需要独立合同。

冷态检查包括 LDO/VOS3 就绪、Flash 脉冲及编程模式未活动、PLL 配置处于复位值、consumer 静止,以及已知干净且关闭的 cache。可读的 cache 关闭位不能证明没有外来脏行。IDCODE 或读回不能建立供电、温度、封装及 PCB 的资格。

分别表达时钟域与不确定度

下列数值是已审设计边界,不是频率测量值。CPU 与源于 PLL 的时钟域在 HSI 包络之外计入保守的 PLL-ready 偏差。未经倍频的 HSI kernel 不承担该 PLL 系数。

时钟域

名义频率

已审设计区间

consumer 责任

CPU

384 MHz

364.56..397.8 MHz

PLL1P,M=10/N=120/P=2

HCLK

192 MHz

182.28..198.9 MHz

CPU /2

APB1..4

96 MHz

91.14..99.45 MHz

HCLK /2

TIM2/TIM3

192 MHz

182.28..198.9 MHz

APB 倍频后的 timer kernel,不是 CPU 频率

USART3/I2C1

64 MHz

62..65 MHz

显式 HSI kernel selector

SPI4

96 MHz

91.14..99.45 MHz

APB2;分频准入使用其上界

ADC12 输入

64 MHz

62..65 MHz

per_ck 源自 HSI;输入选择不等于配置 ADC 转换

选定 ADC1 转换

16 MHz

15.5..16.25 MHz

provider 取得 ADC12 后选择 async /4

空配置设置 ADC12 输入 selector,但不初始化 ADC 或其分频器。TIM2 使用 PSC191 得到名义 1 MHz 计数器。软件毫秒仍是源于 HSI 的名义时间;PSC383 会使计数速率减半,真实生产模型测试会拒绝该错误。TIM3 同样使用实际 192 MHz kernel 准入整数 tick 分频。

HSI 包络的来源

DS12110 Rev11表 134、第 232 页给出 V 修订在 VDD 3.3 V、结温 30 °C 下的出厂 HSI 频率 63.7..64.3 MHz,并分别规定 VDD 1.62..3.6 V 下的电压漂移 −0.12..+0.03%,以及 −40 °C..TJmax 下的温度漂移 −2..+1%。出厂频率边界通过生产测试保证,完整温度漂移使用特性表征,二者保证程度不同。−20..105 °C 的较窄行不是完整温度包络;后缀 6 的结温边界不能与环境温度或热耗散条件混淆。

保守乘法端点为 63.7 × 0.98 × 0.9988 = 62.3510888 MHz 和 64.3 × 1.01 × 1.0003 = 64.9624829 MHz。加法下界估计 63.7 − 64.3 × (0.02 + 0.0012) 为 62.33684 MHz。选定 62..65 MHz 区间覆盖这些组合,是已审工程包络,不是数据手册原文区间。RM0433 Rev9 的 PLL-ready 偏差再计入保守系数 0.98..1.02,得到 62 × 6 × 0.98 = 364.56 MHz 至 65 × 6 × 1.02 = 397.8 MHz。设计保持低于已审 VOS1 的 CPU/HCLK/APB 上限 400/200/100 MHz;不同源假设需要新的已审配置。

先建立保护再提速,清理失败保留责任

选定的统一 owner 保存一份四字节 effect 记录,拥有可撤回的 SYSCFG gate、电压请求、共享 Flash 时序、总线预分频、PLL 配置与源,以及 USART/I2C/ADC kernel selector。它不拥有 consumer 请求、缓冲区、worker task 或调度器。

  1. 校验冷态前提,取得可撤回 gate 并拒绝外来 overdrive,证明 VOS1 已就绪,以及 Flash LATENCY2/WRHIGHFREQ2 的读回结果。

  2. 配置固定总线分频,在配置 PLL1 前等待 32 次有序 RCC 观测。RM0433 第 8.7.8 节允许 HPRE 传播最长占用 16 个最慢 APB 周期,本配置 APB=HCLK/2。能读回 HPRE 不能证明有效分频器已稳定。

  3. 建立 PLL1、观察就绪、请求切换时钟源,并在发布名义 CPU 时钟前证明实际 SWS。取得并验证 kernel selector,然后启动 System 与选定 consumer。

  4. 关闭准入,排空并 join consumer,然后撤销 System。任一 consumer 或 System 停止失败都保留时钟 owner 及其保护。

  5. 仅恢复自有 selector;每个字段可以已处于基线或自有目标值。遇到外来 selector 时拒绝,不覆盖所在寄存器。关闭 PLL 或降低总线、Flash 和电压保护前,必须证明实际已选择 HSI。只有观察到恢复成功后才清除对应 effect。

启动错误保留 primary 结果,有序清理另行报告自己的失败和保留责任。恢复失败使同一 owner 继续存活以供重试;timeout 不能授权释放未被证明已撤回的效果。这是单一固定冷态配置,不是通用时钟树管理器。

高频配置的 Flash 脉冲要求观察到 V 修订、VOS1、HCLK、2WS/WR2 及 Cache-off 组合。高频 owner 替代固定 HSI 的可选 Flash 时序 owner,二者不能管理同一时序字段。脉冲期间不重新调整 ACR;原有电压、未交换 bank、区域、对齐和新鲜擦除要求仍适用。全 FF 读回不能证明 ECC 单元尚未编程。忙 bank 取指可能停顿;不可中止的脉冲必须结束后才能返回,无法证明最终撤回时,现有终止故障路径会保留调用帧。因此不承诺严格物理 deadline。

I2C 时序需要显式 kernel 和电气边界;PCLK 不是其选定的 64 MHz kernel。SPI 分频使用 99.45 MHz,而保存的名义源仍为 96 MHz。1.5 MHz 上限对应 /128,而非按名义值算出的 /64。即使调用者 deadline 到期,仍必须完成线上尾部排空与 CS 释放。ADC 的 16 位存储不能建立实测有效精度或校准电压的结论。

选入成本、已执行范围与下一退出条件

仅高频配置生成统一 owner 并选入 clock.c。已有四种固定 HSI/cache 配置保留各自生命周期,不调用此 owner。四字节记录是源码层面的选配状态事实,不是整幅镜像 RAM 增量的测量;对齐、代码保留及已链接 ELF 成本须分别观察。选择时钟不引入分配或额外热路径转发层。

已执行开发范围

实际结果

边界

时钟测试

38 个 GoogleTest case 通过

外部寄存器模型中的 V-only 拒绝、顺序、部分效果与重试

高频 System 测试

19 个 case 通过

真实时钟 owner 加 TIM2、IRQ、名义时间和失败清理

Kernel 测试

30 个 case 通过

独立时钟域、分频边界、Flash 准入和混合 selector 回退

生成 factory 测试

10 个 case 通过

正常 TOML/IR/生成生命周期、冷查找、consumer 调用及停止失败重试

三个正常 ARM 配置

configure 和 build 返回零

下述精确 empty、UART、peripheral fixture;覆盖代码生成和链接,不是硬件

ARM preset 为 fixture-io-evolution-h743-high-empty、fixture-io-evolution-h743-high-uart 和 fixture-io-evolution-h743-high-peripherals。其维护输入是 empty、UART 和 peripherals。这些记录描述本开发迭代,不建立 clean 软件候选、离线可复现或物理资格。I/O 台账仍是状态权威。

高频 Cache-on、H743 连续 DMA、SPI DMA、更多硅片修订、bootloader 接管及运行时切换时钟均有独立实施和验收退出条件。已有有限 DMA 模式不能推导出这些扩展。物理时钟、电压、温度、UART、SPI、I2C、ADC 和 Flash 测试均保持 not_executed,直到连接的设备实际测量选定镜像。