16.4 HRTIM项目:高精度PWM波

# 16.4 HRTIM项目:高精度PWM波

本实验通过STM32F334的高精度定时器(HRTIM)生成100kHz/50%占空比的PWM波,对比STM32F103通用定时器的性能差异,验证HRTIM的超高分辨率特性。


# 16.4.1 STM32CubeMX配置

# 1. 工程基础配置

  • 芯片型号:STM32F334C8T6
  • 工程名称16 HRTIM
  • 调试接口:SWD
  • 主频设置
    • HCLK(系统主频):72MHz
    • HRTIM时钟:144MHz(提高分辨率)
设置时钟频率

# 2. HRTIM配置

  1. 启用HRTIM1
    • 导航至Timers → 双击HRTIM1 → 启用定时器A(TA1)。
  2. 时基参数
    • 预分频系数(Prescaler Ratio):32
    • 周期寄存器(Period):46080 → 输出频率100kHz
  3. 比较寄存器
    • CMP1xR值:23040 → 占空比50%
  4. 输出级配置
    • 极性:高电平有效
    • 置位源:CMP1事件
    • 复位源:计数器翻转事件
启用高精度定时器
配置定时器参数

# 16.4.2 HRTIM项目软件设计

# 1. 启动HRTIM输出

main.c中添加以下代码,启动PWM输出:

/* USER CODE BEGIN 2 */
HAL_HRTIM_WaveformOutputStart(&hhrtim1, HRTIM_OUTPUT_TA1);
HAL_HRTIM_WaveformCountStart(&hhrtim1, HRTIM_TIMERID_TIMER_A);
/* USER CODE END 2 */
1
2
3
4

# 2. 动态调整占空比

通过修改比较寄存器值验证分辨率:

while(1) {
  hhrtim1.Instance->sTimerxRegs[0].CMP1xR = 23040; // 占空比50%
  hhrtim1.Instance->sTimerxRegs[0].CMP1xR = 23041; // 最小步长+1
}
1
2
3
4

# 16.4.3 HRTIM项目下载验证

# 1. 静态精度测试

  • STM32F103

    • 频率误差:-0.14%(99.86kHz)
    • 占空比误差:-0.08%(49.92%)
      F103输出波形
  • STM32F334

    • 频率精确:100.0kHz
    • 占空比精确:50.00%
      F334输出波形

# 2. 动态分辨率测试

  • STM32F103

    • 最小分辨率:2.2ns(示波器残影)
      F103最小分辨率
  • STM32F334

    • 最小分辨率:217ps(理论值)
    • 实测残影:约200ps
      F334最小分辨率

# 关键结论

  • HRTIM优势
    • 分辨率达皮秒级(217ps),比通用定时器提升10倍。
    • 适用于数字电源、电机控制等高精度场景。
  • 实验验证:通过动态调整占空比,示波器残影直观反映时间分辨率差异。

说明

  • 预分频系数32与周期值46080的关系:

  • 比较寄存器步长1对应时间(实际分辨率为217ps,HRTIM特性):