ywh
|
0b7990bc99
|
P3b-2 AB 正交硬件层上板验证:双定时器同步分频 + 无毛刺相位建立,三段 AB 自测通过
本批完成内容:
HAL AB 硬件层(F407 真机实现):
- 配对定时器同步分频:168MHz/84MHz 两路按 PSC 2 倍关系取相同 ARR,
获得完全一致的计数时钟与周期,避免独立取整造成相位漂移。
- AB 相位建立无毛刺:起步前 GPIO 保持引脚低电平 → OC 强制非活动/冻结
→ UG 加载影子 → CNT 初值(领先相 3/4T、落后相 1/2T,差 90°)
→ 切 PWM1 → OCREF 稳定低电平后再把物理引脚交还定时器 → 关中断下
两路同步 CEN。引脚与 AF 交接期间不产生任何跳变。
- 完整 00 周期边界计数:落后相 CC1 下降沿(00 状态)累计一个指令
周期,DONE 判定与相序边界严格同步。
- 运行中调频只写 PSC/ARR/CCR 预装载(更新事件生效),不触碰 CNT
与输出使能,调频过程零边沿毛刺。
- 反向相序:段3 反向时领先相切换为配对轴,从 00→01→11→10→00 起步。
自测切换 AB 模式(验证后关闭):
- Q0(A)/Q1(B) 三段完整 AB 周期:2000Hz/+1000、5000Hz/+6000、
1000Hz/-500(末段反向,验证相序切换)。
host 测试扩展:
- CNT 写到活动 CCR1 会置 CC1IF 的 F407 实测语义
- AB 起步/计数/反向相序断言(525 项 HAL 检查全绿)
上板验证(逻辑分析仪实测):
- 稳定段相位 +90.2°/+90.6°/-89.9°(理论 ±90°,误差 <1°)
- Q0/Q1 各 7501 上升沿(含启动瞬间 1 个 A/B 同升边沿,待消除)
- 调频毛刺 0 个(上一版 5213 个全部消除)
- 段间 3.57ms = 1/4 首周期,任务延迟 ≈0
- 段2 从标准 00→10→11→01→00 起步
|
il y a 1 mois |
ywh
|
f1babb383a
|
本批完成内容:
HAL 启动参数增加 outputMode,core 会明确传递 PULSE/DIR、AB 或 CW/CCW 模式。
实现 AB 正向相序:00→10→11→01→00。
实现 AB 反向相序:00→01→11→10→00。
四次相位跳变、一个完整周期只累计一个指令脉冲。
AB 仅允许 D=Y0 或 Y2,对应 Q0/Q1、Q2/Q3。
AB 模式忽略 DIR 点和 SFD907 方向延时。
调频同时更新 A、B 两路,且不重置当前相位。
正常完成只在完整 00 周期边界停止。
紧急停止会将主机模型恢复至安全 00。
支持两组 AB 轴独立运行,停止一轴不会影响另一轴。
CW/CCW 目前明确返回 PLSR_RESULT_NOT_SUPPORTED。
目标板 AB 硬件尚未实现时也明确拒绝启动,防止误输出为单路 PWM。
同时修复两个旧边界问题:
零脉冲跳转链耗尽本轮预算时,不再误启动一个 0 脉冲硬件段。
极短段可能在 ACCEL 或 DECEL 阶段结束;现在 ACCEL/RUN/DECEL 均可正确处理段完成事件。
|
il y a 1 mois |
ywh
|
3d3662d27a
|
fix(plsr): 校正首脉冲及减速尾段频率输出
- 修正 Q0~Q3 对应定时器的实际时钟频率
- 清除 UG 产生的 UIF,避免更新事件被误计为物理脉冲
- 增加共享中断 UIF 检查和硬件脉冲计数原子读取
- 在方向稳定期间暂停运动曲线推进
- 根据频率积分计算线性加速首脉冲周期
- 使用硬件实际计数同步运动曲线虚拟脉冲数
- 根据剩余脉冲数反算减速频率并补偿 ARR 预装载延迟
- 增加减速距离计算的 uint64_t 溢出保护
- 增加 Q0 定时器调试快照及相关主机测试
- 忽略并取消追踪本地截图和波形分析文件
验证:
- 实际上板波形验证通过
- 1308 项主机测试全部通过
- IAR 全量编译 0 错误、0 警告
|
il y a 1 mois |
ywh
|
b2e407d91c
|
P3a 硬件层上板验证:修复 PWM 输出两个硬件缺陷,优化段间衔接,扩展三段自测
- PlsrHwStartPwmTimer 补配 CCMR1.OC1M=PWM模式1:裸定时器复位为冻结模式,
通道输出恒定电平(上板实测 PF6 无方波,仅一段 672ms 恒高)
- ARR/CCR 使能预装载(ARPE/OC1PE)+ 启动时 EGR.UG 加载影子寄存器:
运行中调频不再因 CNT 超调提前回绕,加速段多余脉冲消除(7517→7500)
- 方向延时仅在方向变化时生效(首次/换向/换方向点),
段间同向衔接由 14.9ms 缩短至 ~2ms
- 上电自测扩展为 3 段(2000Hz/1000 脉冲、5000Hz/6000、1000Hz/500),
上电延时 1s 后启动,顺带验证段间跳转
- 新增波形分析脚本(破译 16bit/CH0/100MS/s 导出格式 + 时频曲线拟合),
实测三段总脉冲 7500,与理论完全一致
已知遗留(不影响脉冲计数与位置精度,留待 P4 上板调试):
- 段尾 profile DONE 后冻结频率收尾(段3 尾部 150Hz 平台 38 脉冲)
- 段首第一周期被压缩(首脉冲占空比异常)
|
il y a 1 mois |
ywh
|
83803085ec
|
PLSR 新增 P3a 硬件层:单轴 PULSE/DIR 输出打通(host 模拟 + core 接线)
- 新增 plsr_hal_f407.c/.h:Q0~Q3 定时器/引脚映射(PF6-9 + TIM10/11/13/14)、
DIR 输出与方向建立延时状态机、PWM 启停/动态改频(50%占空比、预装载无毛刺)、
更新中断软件计数 + 段完成事件注入、精确停止(周期末关通道,无额外脉冲)
- 定时器时钟按 RCC 实际配置计算(修正 TIM13/14=84MHz 疑点,APB2 分频2 时实际 168MHz)
- core 接线:段进入自动启动硬件+速度曲线、段间自动重启、tick 驱动 profile→改频、
加速完成自动注入 ACCEL_COMPLETE、STOP/急停/限位/故障/终态统一停止硬件
- PLSR_HOST_TEST 下模拟定时器寄存器,HAL 逻辑可单测
- 新增 test_plsr_hal 380 项(含端到端:START→DIR延时→PWM→加速→计数→段间→完成),
六套 host 测试共 1151 项全绿,IAR 0 错误 0 警告
- 待办:上板前补 GPIO 复用与 NVIC 使能(host 覆盖不到)
|
il y a 1 mois |