# A71 电磨 TIM1 三相占空比暂存接口

状态：候选固件、主机模型、ARM构建通过。没有实机转动、速度控制或效果验收；FABRICATION_HOLD。

## 本轮接入

A33仅配置硬关闭GPIO并进入WFI。A71从真实main完成safe boot后调用TIM1初始化：明确检查HSI开启/就绪、SYSCLK来源及请求均为HSI、AHB/APB2无分频、PF1未被HSE占用，以及RUN/睡眠和六路PWM脚的输出模式、推挽、ODR/IDR低电平。拒绝接管已开启时钟的TIM1；首次接管先复位TIM1，清除旧通道/DMA/从模式/锁定状态。

初始化候选为PSC0、ARR400、中心对齐模式3、三路PWM模式1及比较预装载、DTG16且CKD0。仅在名义16MHz条件下，对应候选20kHz周期及1us死区；HSI误差、波形、驱动器和电机适配未验证。CEN、CCER、MOE/AOE均保持0，GPIO不切至AF，驱动RUN和SLEEP继续为低，充电仍关闭；main只报告配置可用性并等待，不写非零占空比。

drill_pwm_stage_write把0..65535三路占空比量化为比较值，先完成三路参数验证，再写CCR1/2/3。候选拒绝两侧小于等于16tick的脉宽；此规则没有证明ADC采样窗口或驱动最小脉宽合格。接口要求当前仍处于本模块的静态关断配置，不能启动计数器、配置GPIO复用、开启通道或授予电机许可。接口目前只链接，不由main运行请求调用；为未来电流环到PWM的结合点，不能把暂存称作实际PWM输出。

依据：ST RM0440高级定时器章节和ST官方TIM入门资料：https://www.st.com/resource/en/reference_manual/rm0440-stm32g4-series-advanced-armbased-32bit-mcus-stmicroelectronics.pdf ；https://wiki.st.com/stm32mcu/wiki/Getting_started_with_TIM 。寄存器位和布局使用随包STM32G431 CMSIS官方头文件。完整RM PDF网页读取因体积被工具拒绝，中心计数语义由ST官方页面及RM索引摘录核对，没有宣称本地完整下载。

## 验证范围

ASan/UBSan 65,772模型场景通过：65536个全量占空比、CR1/CR2/SMCR/DIER/CCER/BDTR六寄存器192个逐位污染、8个引脚32个模式组合、10个时钟/输出/占用异常和两个后续参数失败。验证拒绝时不写CCR；接收时比较值正确；GPIO不被该模块改写；计数器、通道和MOE均未开启。

另256个真实main启动路径模型通过：模拟不同旧GPIO模式及高锁存、计时器旧寄存器内容，调用实际safe boot→TIM1初始化→WFI。模型按BSRR更新ODR/IDR，按APB2复位请求复位TIM1；确认驱动请求/睡眠/六路PWM均低、充电关闭、三个比较值0。模型不能证明实际引脚电平、复位时序或无毛刺。

ARM GCC16.2构建通过：text7388、data4、bss2316字节，bin/elf/map及镜像核对随包提供。主程序至初始化路径通过链接/反汇编检查。FOC仍单独以硬浮点ABI编译、不链接到软浮点启动镜像；观察器、电流采样和硬件FPU运行闭合尚未完成，不能称FOC已经运行。存储占用不包含已验收的最坏中断栈预算。

A32控制板与A34电机板六对PWM连接从实际网表核对，记录PWM_board_binding.csv。没有修改硬件CAD，没有以固件构建替代板卡复测或针脚复用资格。主机头文件变换及源哈希见host_model/provenance.json。

## 下一步与交付边界

还需ADC同步采样与校准、驱动SPI配置/读回、转子角度反馈/观察器、启动及失步处理、速度闭环/正反转、UI/充电整合与带载验证。50,000rpm、转矩/稳定性、续航、噪声/振动及其他整机要求均未实测通过。没有样板电机/电池参数时，不能把未调试增益或母线范围当作物理资格。

三款20项实物效果要求仍未验证。没有采购、发送工厂资料、放行制造、烧录或上电。本包仅提供电磨所需源码闭合和共用CMSIS头文件，未将灯板/吸尘器旧固件当作本轮新版本。解压后已运行本轮PWM及main模型，并重建ARM，二进制SHA256一致。
