ST意法半导体
直播中

张杰

8年用户 1378经验值
私信 关注
[问答]

hrtim里update reset和reset update同时打开不会互相激励吗?

hrtim里update reset和reset update同时打开不会互相激励吗,另外为什么现在定时器周期值不用-1了

回帖(1)

甘满盛

2025-4-27 17:09:04

关于HRTIM中Update、Reset操作及周期值设置的疑问,以下是分点解答:




一、HRTIM中Update与Reset同时开启的机制




  1. 事件优先级与执行顺序

    HRTIM的Update和Reset事件通常有明确的优先级。在STM32的HRTIM模块中,Reset事件的优先级高于Update。当两者同时触发时,Reset会首先执行,将计数器重置到初始值,随后Update事件再更新周期/占空比等参数,避免了循环激励问题。




  2. 硬件防冲突设计

    HRTIM内部状态机通常设计为单周期处理机制。即使两个事件同时发生,硬件会按优先级顺序处理,不会产生重复触发。例如,Reset立即生效,而Update会在下一个周期生效(取决于配置的“预装载”模式)。




  3. 应用场景建议  



    • 若需同步参数更新与计数器复位(如动态调整频率),可同时启用两者,但需遵循硬件优先级。  

    • 常规情况下,建议通过单一事件(如仅用Update)完成参数更新,避免冗余操作。






二、定时器周期值不再需要减1的原因




  1. 传统定时器的计数逻辑

    在早期定时器(如STM32通用定时器)中,计数器从0累加到ARR值,实际周期为ARR+1个时钟周期。因此用户需设置ARR = 目标周期 - 1(如周期1000时,ARR设为999)。




  2. 现代高分辨率定时器的改进

    HRTIM等高级定时器采用更直观的计数逻辑:  



    • 直接设置ARR为目标周期值,计数器从0递增到ARR后溢出,总周期为ARR+1,但用户只需写入ARR,无需手动减1。  

    • 部分模式(如中心对齐)会自动处理边界值,简化配置。




  3. 硬件兼容性与代码可读性

    新的设计减少用户出错概率,例如STM32CubeMX工具生成的代码直接填入目标周期值,底层驱动自动处理偏移,提升开发效率。






三、总结



  • Update与Reset同时启用:HRTIM通过优先级和硬件状态机避免冲突,但需参考具体手册确认时序。  

  • 周期值无需减1:现代定时器优化了寄存器映射逻辑,使配置更直观,用户只需关注实际周期值。


建议查阅对应芯片的HRTIM章节(如STM32参考手册的HRTIM部分)以验证细节。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分