1.PWM输出
1.1概述
基本特性:脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。
广泛应用于电机控制、灯光的亮度调节、功率控制等领域。(脉宽调制的实质是修改高电平的持续时间)
关键参数
(1)周期(Period):一个完整PWM波形所持续的时间
(2)占空比(Duty):高电平持续时间(Ton)与周期时间(Period)的比值
1.2 PWM信号的电压调节原理
原理:电压调节的原理不同占空比的PWM信号等效于不同的平均电压
平均电压 =峰值 x占空比
示例(峰值为 3.3V 时):
50% 占空比→平均电压 1.65V;
20% 占空比→平均电压 0.66V;
80% 占空比→平均电压 2.64V。
1.3功能单元作用
(1)输入捕获单元:用于捕获外部触发信号,捕获方式为上升沿/下降沿/双边沿捕获。发生捕获事件时,将此刻计数器的值锁存到捕获/比较寄存器中,供用户读取,同时可以产生捕获中断。
(2)捕获/比较寄存器:TIMx_CCR寄存器在输入捕获模式下用于存放发生捕获事件时的当前计数值;在输出比较模式下用于存放预设的比较值。该寄存器具备预装载功能。
(3)输出比较单元:用于信号输出。定时器通过将预设的比较值与计数器的值做匹配比较,以实现各类输出,如PWM输出、单脉冲输出等。预设的比较值存放在捕获/比较寄存器中。
1.4 PWM输出的工作原理
核心寄存器:
自动重载寄存器(ARR):控制 PWM 信号周期。
捕获 / 比较寄存器(CCR):控制 PWM 信号占空比。
计数器寄存器(CNT):实时计数值,用于与 CCR 比较。
Eg:假设预分频时钟CK PSC为100MHz,产生周期为1ms,占空比为47.5%的PWM信号
由于psc为100MHz,要变成周期为1ms,首先将PSC设置为99,ARR设置为999
接下来占空比为47.5%,按照占空比公式以及设定的ARR值得到CRR的值为475.
1.5 多通道输出
同一定时器的多个通道共享 ARR,因此可输出周期相同、占空比不同的 PWM 信号。例如:通道 1 周期 1ms、占空比 47.5%(高电平 475us);通道 2 周期 1ms、占空比 70%(高电平 700us)
1.6 PWM功能的数据类型
(1)输出比较单元初始化类型
(2)输出比较模式OCMode的取值范围:
匹配的含义TIM_CNT(当前计数值)等于TIMX_CCR(捕获/比较值)
(3)有效电平极性OCPolarity的取值范围
(4)快速输出使能OCFastMode的取值范围(可以加快触发输入事件对通道输出的影响,默认配置为不使能)
1.7 PWM功能的接口函数
(1)定时器PWM输出启动函数:HAL_TIM _PWM_ Start
(2)定时器比较/捕获寄存器设置函数:HAL _TIM _SET_ COMPARE
2.定时器输入捕获功能
2.1用途与原理
用途:用于测量信号的参数,比如周期和频率。
工作原理:在输入捕获模式下,当捕获单元捕捉到外部信号的有效边沿(上升沿/下降沿/双边沿)时,将计数器的当前值锁存到捕获/比较寄存器TIMX_CCR供用户读取。(由于输入捕获与PWM输出都是TIMX_CCR寄存器,所以两个功能二选一)
2.2捕获过程
捕获过程示意图
假设上升沿捕获,递增计数模式.第一次捕获在中断回调函数中保存Tb时刻的捕获值;第二次捕获在中断回调函数中保存Td时刻的捕获值;将两次捕获值相减,再乘以计数时间可计算出信号周期。
计算方法:
(1)一切正常
(2)当待测信号不大于定时器的一个完整计数周期(从0到ARR)时
假设两次连续的捕获值分别为CCRx1和CCRx2,则捕获差值可以按照如下方法计算:
注:如果待测信号大于定时器的一个完整计数周期,注意:则需要结合定时器的更新中断次数来计算捕获差值
2.3 输入捕获功能的数据类型
(1)输入捕获单元初始化类型
(2)捕获边沿 ICPolarity的取值范围
(3)捕获通道 ICSelection的取值范围
(4)预分频系数 ICPrescaler的取值范围
2.4 输入捕获功能的接口函数
(1)输入捕获启动函数:HAL_TIM_IC_ Start_IT
(2)输入捕获停止函数:HAL_TIM_IC_ Stop_IT
(3)输入捕获中断回调函数HAL _TIM_IC _CaptureCalback
(4)捕获值读取函数:HAL_TIM_ ReadCapturedValue
(5)捕获边沿设置函数: HAL _TIM_ SET _CAPTUREPOLARITY
3.总结
主要围绕 PWM 输出和定时器输入捕获功能展开。PWM 输出部分,介绍了其作为模拟信号数字编码方法的特性,核心参数为周期和占空比,通过平均电压 = 峰值 × 占空比 实现电压调节,涉及输入捕获单元、捕获 / 比较寄存器等功能单元,核心寄存器 ARR、CCR 分别控制周期和占空比,还包括多通道输出特性、相关数据类型及接口函数。定时器输入捕获功能用于测量信号周期和频率,通过捕获外部信号边沿锁存计数器值计算参数,介绍了捕获过程、数据类型及接口函数,两者共用部分寄存器,功能二选一。