本测试覆盖两组固定 AB 点对:Q0/Q1(轴 Y0)和 Q2/Q3(轴 Y2)。脚本使用
K3 的 100kHz 零加减速配置,自动写入 S0/S1、COMMIT、START,并核对两组
TIM9/TIM12 硬件计数租约、任务/位置/物理周期数和 DWT 实时预算。动态用例还会
执行100kHz→50kHz→100kHz原子变频以及Q0/Q1单组PAUSE/RESUME。
当前状态(2026-08-10):
independent、simultaneous与dynamic均已通过自动测试和100MS/s四通道真机验收。前者Q0/Q1严格100000沿、Q2/Q3严格200000沿、D1468=382 cycles;等长用例四通道各严格200000沿、D1468=392 cycles,已确认修复CH2多1沿及停止悬高;动态用例四通道各严格600000沿,100kHz→50kHz→100kHz、00边界PAUSE/RESUME、调频边界和末周期均通过。三组首沿均在2.50us±0.05us边界内,正反相序、完整末周期和停止全低均通过。稳定段约±50~60ns偏差作为采样量化级记录。
main.c 的板测准备路径必须执行 PlsrHardwareCounterSelfTestPrepare(),以生成 K3。完整执行独立停止、等长并发、动态变频/暂停三个用例:
python HostComputer\plsr_modbus_ab_stress_test.py --port COM5
为便于逻辑分析仪精确统计,推荐硬复位后分别采集:
python HostComputer\plsr_modbus_ab_stress_test.py --port COM5 --case independent
python HostComputer\plsr_modbus_ab_stress_test.py --port COM5 --case simultaneous
python HostComputer\plsr_modbus_ab_stress_test.py --port COM5 --case dynamic
independent 要求 Q0/Q1 完成后计数冻结且保持低,同时 Q2/Q3 继续运行。
simultaneous 使用相同的 200000 周期目标验证两组并发完成;两个 START 通过
Modbus 串行提交,因此两组实际启动/结束时刻允许相差一次 RTU 事务时间。
dynamic 使用每组600000周期,给9600bps下的串行START、一致性状态读取和FC16变频留出足够时间;要求两组调频时保持相位和连续计数;Q0/Q1只在
完整00边界暂停并保持低,Q2/Q3不受影响,随后Q0/Q1从00恢复正确相序。
脚本还检查 D1468~D1469 发布的 AB 末周期快速门控最大周期数。168MHz 下必须
非零且小于 420 cycles(2.5us,一个 100kHz AB 周期的四分之一)。
D1468取实际停表门控扫描和输出ISR异常返回前最终跨组安全扫描的最大值;整个输出ISR另由P16输出ISR预算约束。
00→10→11→01→00,反向必须为逆序。00边界生效,RESUME从00重新建立相序,另一组全程不得停顿或串扰。00;A/B 首个上升沿间隔 2.50us(建议容差 ±0.05us),不得同时上升。00;停止后至少 1ms 全低且无残余边沿。脚本的内部 physical_pulses 只用于固件一致性检查,不能替代端子波形验收。