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 起步
|
1 个月前 |
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 脉冲)
- 段首第一周期被压缩(首脉冲占空比异常)
|
1 个月前 |
ywh
|
539fe6b4a5
|
PLSR P3a 上板准备:GPIO/定时器初始化 + 上电自测(Q0 测试脉冲)
- PlsrHwInit 补生产初始化:全部输出点上电安全电平(先输出拉低再切 AF)、
PF6/7=AF3、PF8/9=AF9 定时器复用、TIM10/11/13/14 时钟与更新中断 NVIC(优先级1)
- 新增 plsr_self_test.c/.h:上电自动执行 Q0 发 2000Hz/1000 脉冲(K1 默认参数、
方向端子 Y4、静态数据源),main.c 一行接入,验证后可删
- 六套 host 测试 1151 项全绿,IAR 0 错误 0 警告
|
1 个月前 |
ywh
|
ffd715ae75
|
建立十态单轴状态机
|
1 个月前 |
ywh
|
1dd8de5b2f
|
SFD900~1419 现在可以安全保存到片内 Flash
|
1 个月前 |
ywh
|
1fa91b403e
|
固化四轴地址映射,包括HSD、SFD、SM、SD和I事件入口。[plsr_address_map.h (line 10)](F:\\Xinje_Modbus_IAR\\TrainCamp_yuwenhao_modbus\\PLSR\\Inc\\plsr_address_map.h:10)
实现紧凑软元件存储:HSD:384字节
SFD RAM缓存:2080字节
SD:192字节
SM:4字节
实现地址范围和空洞检查,例如SD1012~1019会判定为非法地址。
实现访问权限:HSD0~15、SM、SD禁止外部直接写入。
HSD460~539和SFD900~1419允许配置写入。
实现HSD相邻两个32位软元件的原子64位读写。
实现HSD脏标志和安全检查点。[plc_device.c (line 254)](F:\\Xinje_Modbus_IAR\\TrainCamp_yuwenhao_modbus\\PLSR\\Src\\plc_device.c:254)
实现I6000~6399事件地址计算,段号使用1~100。[plc_device.c (line 441)](F:\\Xinje_Modbus_IAR\\TrainCamp_yuwenhao_modbus\\PLSR\\Src\\plc_device.c:441)
在系统启动并开启Backup SRAM后初始化软元件层。[main.c (line 164)](F:\\Xinje_Modbus_IAR\\TrainCamp_yuwenhao_modbus\\Core\\Src\\main.c:164)
将新模块加入IAR工程和头文件搜索路径。
|
1 个月前 |
ywh
|
e35595aae1
|
完成了初版需求规格书与方案书
|
1 个月前 |
ywh
|
31e9874a19
|
写了些需求文档
|
1 个月前 |
ywh
|
4c45d6e670
|
开始做PLSR项目
|
1 个月前 |
ywh
|
e9adda50f6
|
增加了代码规范
|
1 个月前 |
ywh
|
0267178819
|
增加了0x14功能码,用于读取通信历史
|
1 个月前 |
ywh
|
63abe443c0
|
增加了主站异常码测试窗口,增加了通信历史功能
|
1 个月前 |
ywh
|
a338c8cfa3
|
增加了触摸屏上主站的代码
|
1 个月前 |
ywh
|
d6825564ee
|
新增掉电保持功能
|
1 个月前 |
ywh
|
17f2578f93
|
增加了0X05功能码,写了测试大纲,设计方案书,需求规格书
|
1 个月前 |
ywh
|
3a44a1e033
|
新增ModbusRTU代码,测试通过,可以和触摸屏通信
|
1 个月前 |
ywh
|
c29722f2ac
|
增加了一些注释
|
1 个月前 |
ywh
|
29ab30cffd
|
移植完ucosII,并写了一个最小启动任务,测试通过
|
1 个月前 |
ywh
|
72b60bb7fa
|
增加了DMA搭配串口
|
1 个月前 |
ywh
|
ff70ccff14
|
串口修改成标准的 8E1
|
1 个月前 |
ywh
|
32de64be9f
|
配置了一下串口
|
1 个月前 |
ywh
|
67971b3770
|
HAL库新工程
|
1 个月前 |