APP下载

基于STM32定时器的PWM实验教学

2019-11-16田德永

电子技术与软件工程 2019年20期
关键词:低电平嵌入式计数

文/田德永

嵌入式课程是高职院校物联网、电子、通信等专业一门重要课程。STM32是高职院校中嵌入式课程中常采用的开发实验芯片。在STM32教学中,STM32的定时器和PWM的实验是很重要而又比较难于理解的知识点。STM32定时器功能丰富,但配置复杂,只有通过对实验深入分析,才能帮助初学的高职院校学生更加易于理解和掌握STM32定时器产生PWM功能。

1 STM32定时器认知教学

STM32定时器比较复杂,涉及到的配置很多,许多知识点学生难于掌握。对于高职院校学生,理解主要原理,掌握基本配置即可,面面俱到学生反而难于把握。

学生需要理解定时器是如何产生定时的。开始接触定时器的高职院校学生,对定时的理解只是停留在宏观层面上,他们可能知道秒表定时,闹钟定时等,而对电子元件的定时器定时功能,是比较模糊的。实际上,定时器本质上是计数器,通过对脉冲的计数,达到定时的功能,因为脉冲包含了时间信息。如图1,假设一个脉冲是周期是1ms,那么如果计数了5次,那么就可以得到5ms的时间,即如果设置计数5次,就相当可以定时5ms。因此,只要知道计数次数及所计脉冲的频率或周期,就可以换算出定时时间。

STM32定时器资源比较丰富,有通用定时器、高级定时器、基本定时器等。尽管STM32定时器比较复杂,但只要抓住定时器计数次数,以及计数的脉冲周期或频率这两条线索,就容易理解STM32定时器的定时原理。STM32可以选择内部系统时钟信号(CK_INT)进行分频后再进行脉冲计数,即通过设置分频系数TIMx_PSC进行分频。定时器时钟频率用CK_CNT表示,则他们关系为:

若设定时器定时时间周期为T_t s,定时器的计数次数为T_count,则与分频系数之间的关系可得:

由此可知,STM32定时器的定时周期由三个因素决定:系统时钟信号周期、定时器分频系数的值和定时器初始值即计数值。

2 STM32定时器输出的PWM

PWM输出的是高低电平的开关量。很多的控制技术,就是采用PWM控制。PWM(Pulse Width Modulating)称为脉冲宽度调制。是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,简而言之,就是对脉冲的宽度进行控制。学生要理解PWM的占空比概念。占空比就是一个PWM周期内,高电平时长占周期的百分比。对脉宽控制,也就是对占空比的控制。学生也要知道PWM在STM32中是如何产生的。STM32产生的PWM是通过定时器产生,通过捕获/比较输出通道输出。一般定时器有四个捕获/比较输出通道,因此,除了要对定时器进行配置外,还要配置通道,配置输出的GPIO口。STM32有高级定时器和通用定时器进行产生PWM。输出的占空比可由ST公司固件库函数提供进行设置。

TIM_SetCompare3(TIM_TypeDef* TIMx,u16 Compare3)是ST公司的提供的固件函数之一,它的功能是设置 TIMx 捕获比较寄存器值。定时器TIMx通过通道3与compare3值比较输出PWM。定时器产生的PWM输出如图2所示,因此,控制compare3参数值就可控制脉冲宽度,控制占空比。学生需充分理解参数字的含义。定时器计数值N决定了PWM输出周期,compare3决定了PWM的占空比。

图1:定时器原理示意图

图2:定时器输出PWM原理示意图

图3:模拟电路控制LED灯实验电路

图4:PWM输出控制LED实验电路原理图

3 PWM实验设计

为了更好地让学生理解PWM原理及其控制效果,设计PWM控制LED发光现象实验,使用外围硬件电路比较少,易于实现。可以使用LED亮度控制及呼吸灯实验项目,主要是让学生能理解PWM的作用。

3.1 模拟电路控制LED灯亮度效果

为了和PWM控制LED灯效果作比较,搭建如图3的模拟电路。电源两端直接用滑动变阻器Rp串接LED灯,当调节滑动变阻器Rp时,随着流过LED电流变化会明显的变亮或变暗,这在很多模拟电路中调节常用的方式。很明显,这是模拟电路控制的方式。

3.2 用STM32定时器PWM控制LED灯亮度实验设计

我们把图3电路换成图4电路,LED灯不变。前面说过,PWM输出是周期性的高低电平开关量,对于这点,学生是易于理解的。

在配置定时器时,我们可以先让让其频率足够小,周期足够大,占空比为50%,当接上LED灯时,会发现,灯在不停的闪烁,这验证了PWM是开关量,输出是高低电平开关量。

当设置定时器周期足够小时,占空比不变,会发现LED亮度达到最亮时的一半不再闪烁的现象,和图3的电路效果一样。这是因为人的眼睛对图像(光线)的视觉暂留的特点,也称为人眼的余辉效应,才有如此效果。要让学生明白的是,图3是模拟电路控制,而图4是PWM是数字控制,对比可见,PWM能控制模拟电路,达到一样效果。

在定时器输出PWM频率不变情况下,让程序更改PWM占空比,即修改比较输出函数TIM_SetCompare3第二个参数,用示波器观察,会发现波形高电平在周期内不断扩展和收缩,反应到LED灯上可得到呼吸灯的效果。这正反应数字信号便于控制,很好的把数字信号控制转换为模拟控制信号的PWM例子。

4 结束语

PWM输出从处理器到被控制装置信号都是数字形式,是实现D/A转换和精确脉冲序列输出的有效手段,PWM在各个控制领域都得到广泛应用。在采用STM32芯片的嵌入式课程中,在进行定时器PWM教学时,要逐步引导学生领会PWM产生的原理和控制作用。可以采用多个实验项目对比,帮助学生对PWM开关量控制模拟系统而不需数模转换的理解,提高高职院校学生嵌入式技术开发和应用能力。

猜你喜欢

低电平嵌入式计数
古人计数
铁道车辆高/低电平信号智能发生器设计
递归计数的六种方式
古代的计数方法
2017款凯迪拉克2.8L/3.0L/3.2L/3.6L车型低电平参考电压总线电路图
搭建基于Qt的嵌入式开发平台
这样“计数”不恼人
嵌入式软PLC在电镀生产流程控制系统中的应用
15-MeV电子直线加速器的低电平系统
Altera加入嵌入式视觉联盟