现在我先用cubeMX配置一下基本的配置

配置调试接口,切换系统定时器为使用FreeRTOS做准备
配置外部时钟
启用FreeRTOS
配置时钟,我的板子是24Mhz,32.768khz

接下来就是着重看下定时器部分:

  • HRTIM1:高分辨率定时器能够生成具有高精度定时的数字信号,例如脉冲宽度调制(PWM)信号或相移脉冲。
  • LPTIM1:低功耗定时器。该定时器具有独立时钟,若由 LSE(低速外部时钟)、LSI(低速内部时钟)或外部时钟驱动,则可在停止模式下运行。它能够将系统从停止模式中唤醒。
  • RTC:实时时钟
  • TIM1,TIM8,TIM20:高级定时器中的每一个都可视为一个在 8 个通道上复用的四相脉冲宽度调制(PWM)定时器。它们具备互补的 PWM 输出,且插入的死区时间可编程。这些定时器也可被当作完整的通用定时器。
  • TIM2,TIM3,TIM4,TIM5,TIM15,TIM16,TIM17:通用定时器。每个通用定时器可用于生成脉冲宽度调制(PWM)输出,或作为简单的时基。
    定时器 TIM2、TIM3、TIM4 和 TIM5是功能完备的通用定时器:
    TIM2 和 TIM5 具备 32 位自动重载递增 / 递减计数器以及 32 位预分频器。
    TIM3 和 TIM4 配备 16 位自动重载递增 / 递减计数器以及 16 位预分频器。
    这些定时器具有 4 个独立通道,可用于输入捕获 / 输出比较、PWM 或单脉冲模式输出。它们能够协同工作,也可通过定时器链接功能与其他通用定时器配合,以实现同步或事件链接。在调试模式下,计数器可以被冻结。所有这些定时器都能独立生成直接内存访问(DMA)请求,并且支持正交编码器。
    定时器 TIM15、TIM16 和 TIM17是具备中等特性的通用定时器:
    它们拥有 16 位自动重载递增计数器和 16 位预分频器。
    TIM15 有 2 个通道和 1 个互补通道。
    TIM16 和 TIM17 各有 1 个通道和 1 个互补通道。
    所有通道均可用于输入捕获 / 输出比较、PWM 或单脉冲模式输出。这些定时器可通过定时器链接功能协同工作,以实现同步或事件链接,并且能够独立生成 DMA 请求。在调试模式下,计数器同样可以被冻结。
  • TIM6,TIM7:基本定时器主要用于生成数模转换器(DAC)触发信号。它们也可用作通用的 16 位时基。

看一下HRTIM的界面

我这里板子只留了TimerC和D的接口其他的脚都用了

最上面的Master Timer就是主定时器,TimerA-F就是主定时器底下的子定时器,下面来一张HRTIM的内部结构图:

主要特性

高分辨率定时单元

  • 高分辨率与补偿机制:具备 184 皮秒的分辨率,可针对电压和温度变化进行补偿,确保在不同环境条件下仍能保持高精度的定时。
  • 全面的参数调节:在所有输出端,可全分辨率调节占空比、频率、相移和脉冲宽度(触发单脉冲模式),满足多样化的控制需求。
  • 丰富的定时单元配置:拥有 6 个 16 位定时单元,每个单元都配备独立计数器和 4 个比较单元,提供强大的定时处理能力。
  • 灵活的输出控制:12 个输出可由任意定时单元控制,每个通道最多有 32 个置位 / 复位源,便于实现复杂的控制逻辑。
  • 模块化架构设计:模块化架构可适用于多个单开关或双开关的独立转换器,也能应对少数大型多开关拓扑结构,具有良好的扩展性和适应性。

多达 10 个外部事件

  • 广泛的应用场景:适用于峰值电流控制、零电压和零电流检测(零电压开关和零电流开关操作)以及计数器复位(可变频率操作)等,能满足多种功率转换控制需求。
  • 多样的事件源:每个外部事件有 4 个源可供选择,包括数字输入、内置比较器输出、模数转换器(ADC)的模拟看门狗以及通用定时器的触发输出,提供丰富的信号接入方式。
  • 可编程特性:具有可编程极性和边沿灵敏度,可根据具体应用灵活调整事件触发条件。
  • 不同的事件处理模式:5 个事件具备快速异步模式,能快速响应紧急情况;另外 5 个事件带有可编程数字滤波器,可有效滤除干扰信号。还支持消隐和窗口模式,用于过滤虚假事件。

与内置模拟外设的直接连接

  • 对 ADC 的触发能力:提供 10 个触发信号至 ADC 转换器,方便对模拟信号进行实时采样和处理。
  • 对 DAC 的触发与补偿:为 DAC 转换器提供 9 个触发信号,其中 6 个具备斜率补偿能力,可优化输出信号的质量。
  • 比较器输出功能:比较器输出具备滤波和消隐特性,能有效去除噪声干扰,提高信号的可靠性。

多功能保护方案

  • 全面的保护类型:适用于过流、短路以及过压 / 欠压保护,保障系统在各种异常情况下的安全运行。
  • 灵活的故障输入配置:6 个故障输入可组合并关联到任意定时单元,可根据不同的应用场景定制保护策略。
  • 丰富的故障源:每个故障通道有 3 个源,包括数字输入、内置比较器输出和外部事件,能够及时准确地检测故障。
  • 可编程保护特性:具备可编程极性、边沿灵敏度和可编程数字滤波器,可根据具体需求调整故障检测条件。
  • 针对谐振转换器的延迟保护:为谐振转换器提供专用的延迟保护,确保在特殊拓扑结构下的系统安全。

多实例同步功能

多个高分辨率定时器(HRTIM)实例可通过外部同步输入 / 输出实现同步,便于构建大规模、复杂的控制系统。

多功能输出级

  • 高精度死区时间插入:可实现低至 735 皮秒的高分辨率死区时间插入,有效避免功率开关管的直通问题。
  • 可编程输出极性:输出极性可编程,可根据实际电路需求进行灵活配置。
  • 斩波模式支持:支持斩波模式,可用于特定的功率控制应用。

轻载运行的突发模式控制器

突发模式控制器可在多个转换器上同步处理轻载运行,提高系统在轻载时的效率。

丰富的中断和 DMA 资源

  • 中断向量:提供 8 个中断向量,每个向量最多有 14 个源,可及时响应各种事件。
  • DMA 请求:提供 7 个 DMA 请求,每个请求最多有 14 个源,且具备用于多寄存器更新的突发模式,提高数据传输效率。

然后再看下子时钟的配置,主要研究的就是这些配置的作用,主时钟应该是用来移相的,目前连子时钟都没折腾明白呢,先暂时不管它。

  • Timer ldx:定时器A-F选择(这个一般不用管,只有一个选择)
  • Basic/Advanced Configuration:HRTIM(高分辨率定时器)的配置可分为基础(Basic)和高级(Advanced)两个层次,具体取决于应用需求。
    基础配置(Basic Configuration):时钟与分辨率设置,通道与波形定义,基本参数配置
    高级配置(Advanced Configuration):外部事件与同步,模数外设集成,故障保护与安全机制,复杂波形生成,系统优化。
  • Prescaler Ratio:预分频比配置选项计算倍频系数得到定时器的频率(一般选最大可以到5.44Ghz)
  • Period:定时器的周期(算完可以直接输数字)
  • Repetition Counter:重复计数器(详见:STM32 定时器中TIM_RepetitionCounter 作用详解-CSDN博客
  • Up Down Mode:中央对齐模式配置
    Timer counter is operating in up - counting mode:定时器计数器工作在向上计数模式
    Timer counter is operating in up - down counting mode:定时器计数器工作在上下计数模式,也称为中央对齐计数模式
  • Mode:定时器运行模式,一般默认就行。图中定时器处于连续(自由运行)模式
  • Interleaved Mode:交错模式使能
  • Start On Sync:同步启动(默认对计时器无作用)
  • Reset On Sync:同步复位(默认对计时器无作用)
  • Dac Synchro:数模转换器(DAC)同步(默认不生成数模转换器(DAC)同步事件。)
  • Preload Enable:预装载使能
  • Update Gating:更新门控
  • Repetition Update:重复更新使能(与Preload Enable结合使用)
  • Burst Mode:突发模式
  • Push Pull:推挽模式使能
  • Number of Faults to enable:待启用的故障数量
  • Fault Lock:故障锁定
  • Dead Time Insertion:死区时间插入
  • Delayed Protection Mode:延迟保护模式
  • Update Trigger Sources Selection : Please enter the number of Triggers to select:更新触发源选择:请输入要选择的触发源数字。
  • Reset Update:复位更新
  • Resynchronized Update:重新同步更新
  • Reset Trigger Sources Selection : Please enter the number of Triggers to select:复位触发源选择:请输入要选择的触发源数字。
  • Interrupt Requests Sources Selection : Please enter the number of Active Interrupt Requests:中断请求源选择
  • Number of Timer C Internal DMA Request Sources - you first have to enable the Timer C DMA Request in the DMA Settings Tab:定时器 C 内部 DMA 请求源的数量 —— 你首先需要启用定时器 C 的 DMA 功能。
  • Compare Unit 1-4:比较单元1-4