微控制器中的脉宽调制 (PWM) 定时器

出处:维库电子市场网 发布于:2023-11-09 15:20:09

  本文是微控制器定时器系列文章的第二篇。篇文章介绍了大多数类型定时器的主要特性并涵盖了周期性定时器。
  本文介绍了一种更复杂的定时器,称为PWM 或脉宽调制定时器。如果您不熟悉微控制器定时器的一般操作,我建议您先阅读篇文章。
  PWM 定时器通常用于运动控制和 LED 调光。此处包含这些应用程序的示例。
  脉宽调制占空比
  占空比是数字信号相对于信号周期处于“活动”状态的时间量。占空比通常以百分比形式给出。
  例如,高电平时间和低电平时间相等的完美方波的占空比为 50%。这是一张以一般方式显示占空比的图表。

  占空比概念的表示

  图 1. 占空比概念的表示
  占空比微控制器定时器计算
  根据上面的例子,我们如何计算占空比呢?
  如果高电平有效,则占空比为
  (宽度 ÷ 周期) 100 = (3 ÷ 10) 100 = 30%
  如果我们将信号定义为低电平有效,则占空比为 70%。
  PWM 定时器概述
  这是典型 PWM 信号的时序图。

  PWM 时序图示例

  图 2.  PWM 时序图示例
  计数器从 0 向上计数到模数寄存器中的“溢出”值。当达到模数时,计数器在下一个时钟变为 0。这里的模数值为 9,计数器的状态数为 9+1 或 10。只要定时器启用,计数就会简单地重复。计数器的输出进入“宽度”逻辑,当计数器溢出时将输出设置为高电平,并在计数器与宽度寄存器匹配时将输出设置为低电平。
  通过更改宽度寄存器中的值,可以“即时”更改输出脉冲的宽度。此操作用虚线表示。
  如下图所示,周期和脉冲宽度通过将适当的值加载到寄存器中来设置。对于上面的时序图,周期寄存器将包含值 9,宽度寄存器将包含值 2。
  这是典型 PWM 定时器的框图。

  PWM 定时器框图

  图 3.  PWM 定时器框图
  时钟由预分频器分频并应用于周期计数器。周期计数器的持续时间由模数或周期寄存器设置。周期计数器的输出进入脉冲宽度逻辑的多个“通道”。由于每个通道都有单独的宽度寄存器,因此每个通道的脉冲宽度都是独立控制的。
  请注意,所有通道的周期相同,因为它们共享相同的周期计数器,但脉冲宽度不同。
  脉宽调制电机控制
  PWM 定时器的一个重要用途是电机控制。下图显示了一种典型设置,其中 PWM 信号发送至控制电机的电机控制器。(如果您想了解 PWM 的实际应用,请查看 AAC 的C-BISCUIT 机器人,它使用脉冲宽度调制来控制电机速度。)

  PWM 设置的简化框图

  图 4. PWM 设置的简化框图
  下面的时序图显示了使用 PWM 信号控制扭矩方向和大小的示例。
  该时序称为“50% PWM”,这意味着 50% 占空比不产生扭矩,大于或小于 50% 的占空比控制两个方向的扭矩量。

  由 PWM 信号控制两个扭矩函数的示例

  图 5. 一个示例,其中两个扭矩函数由 PWM 信号控制
  情况 3 占空比为 50%,电机不转动。情况 2 是占空比大于 50%,电机顺时针移动,扭矩与占空比大于 50% 的量成比例。情况 1 是占空比小于 50%,电机逆时针移动,扭矩与占空比小于 50% 的量成正比。
  伺服电机 PWM 示例
  另一个例子是伺服电机,它根据脉冲的宽度改变轴的角度。例如,1.5 毫秒的脉冲将轴设置为 0°。将脉冲宽度从 1.5 毫秒更改为 1 毫秒,则从 0° 旋转至 -90°;将脉冲宽度从 1.5 毫秒更改为 2 毫秒,则从 0° 旋转至 +90°。
  我目前正在使用“连续旋转伺服电机”。电机在 PWM 信号的控制下连续向任一方向旋转。方向和速度随脉冲宽度变化,如下图所示。

  由 PWM 信号控制改变电机旋转的速度和方向

  图 6. 由 PWM 信号控制的电机旋转速度和方向的变化
  周期为 20 毫秒,高电平有效脉冲控制方向和速度。当脉冲宽度为1.5毫秒时,电机不转动。宽度大于 1.5 毫秒会增加逆时针方向的速度,宽度小于 1.5 毫秒会使电机沿顺时针方向旋转。
  使用 PWM 定时器控制 LED 强度
  使用 PWM 定时器占空比的另一个例子是控制 LED 的强度。这是基本原理图:

  由 PWM 定时器控制的 LED 的基本原理图

  图 7. 由 PWM 定时器控制的 LED 的基本原理图

  当定时器输出为低电平时 LED 亮起,当输出为高电平时 LED 熄灭。定时器产生快速变化的输出,以足够快的速度打开和关闭 LED,以便眼睛平均“打开”时间并感知强度变化,而不会闪烁。

  图 8.  “较亮”、“较暗”和“中等”LED 的三种 PWM 控制 LED
  该图显示了三种情况。“较亮”的情况在大部分时间段内处于低电平,并且 LED 看起来比“较暗”的情况更亮,后者在较短的时间内处于低电平。
  伺服电机的时序设置
  使用 PWM 定时器复杂的部分是设置定时参数以满足外部设备的要求。我认为 PWM 定时器是一种数模转换器 (DAC)。(实际上, 在低通滤波器的帮助下,PWM 可以用作 DAC 。)电压输出 DAC 接收数字值并将其转换为模拟输出电压。当数字值改变一个计数时,模拟输出发生的变化。
  对于 PWM 定时器,输出脉冲的宽度就像模拟值。当宽度寄存器中的值改变一个计数时,宽度发生变化。输出中可能的变化称为输出分辨率。
  对于 PWM 定时器,输出分辨率或输出脉冲的周期或宽度的可能变化是进入周期计数器的时钟的一个周期。
  例如,如果进入周期计数器的时钟周期为10微秒(频率为100kHz),则输出周期和脉冲宽度的定时分辨率为10微秒。
  在本节中,我确定控制上述“连续旋转伺服电机”的时序参数。回顾一下上面图 6 中的时序图以供参考。
  以下是确定时序所需的 PWM 定时器的信息。
  时钟频率:24 MHz
  预分频器选项:除以 1、2、4、8、16、32、64 或 128
  周期计数器和宽度寄存器:16 位宽或 65,536 个计数
  以下是对伺服电机的要求。
  PWM周期:20毫秒
  电机停止时的 PWM 脉冲宽度:1.5 毫秒。
  CCW 速度的 PWM 脉冲宽度:2.0 毫秒
  速度 CW 的 PWM 脉冲宽度:1.0 毫秒
  选择预分频器值
  设置的部分是选择预分频器的分频值。
  如果该值太小(快时钟),则使用 16 位计数器的 PWM 周期太短。如果该值较大(时钟较慢),则时序分辨率较差且控制较粗。一个好的起点是确定周期计数器f PC的可能频率,以给出 20 毫秒的输出周期。如果输入频率很高,我们将不得不使用较大的计数模数来获得所需的周期。让我们尝试使用 60,000 的模数并确定周期计数器输入频率。
  f PC = (0.02 / 60,000) -1 = 3,000,000 赫兹 = 3 兆赫
  输入预分频器的时钟为 24 MHz。因此,预分频器分频值 P 为
  P = (24MHz / 3MHz) = 8
  完美的!对于 20 毫秒的 PWM 周期,我可以使用除以 8 的预分频器设置和 60,000 的周期计数器模数。现在我们知道输出脉冲的定时分辨率。定时分辨率是 3 MHz 时钟的周期或 0.333 微秒。
  模数 60,000 是一个幸运的猜测,它与预分频器设置之一非常匹配。确定设置通常需要在计数器模数和预分频器设置之间进行一些“来回”,以接近理想周期。通常,外设不需要的周期,并且时间上有余地。
  选择脉冲宽度寄存器的值
  让我们继续选择脉冲宽度寄存器 W 的值。脉冲宽度t W由下式给出
  tW = W ? 0.333x10 -6
  W = t W / 0.333x10 -6
  下表列出了指定电机设置的 W 值。
  电机设定脉冲宽度(以秒为单位)瓦
  已停止0.0015
  4,500
  顺时针速度0.00206,000
  逆时针速度0.00103,000
  宽度寄存器中的值在 3,000 到 6,000 之间变化,以实现对电机的完全控制。,从写入寄存器的周期和宽度值中减去一个计数,以调整额外的“0”计数。
  以下是所有计时器值:
  时钟频率:24 MHz
  预分频器:除以 8
  周期计数器模数:59,999
  电机停止脉冲宽度寄存器:4,499
  速度 CW 的脉冲宽度寄存器:5,999
  CCW 速度脉冲宽度寄存器:2,999
  在实际应用中,伺服电机通常不是很,需要通过调整这些值来进行校准。上面的值给出了一个“名义上”的起点。此外,通常不需要减去一个计数,因为校准已考虑到这一调整。
  考虑控制分辨率
  还有一件事需要考虑:控制分辨率是否足够精细?
  任一方向从停止到全速的计数均为 1,500。因此,控制分辨率为1500分之一,即小于0.1%。对于低端伺服电机来说,这是非常高分辨率的,但其他类型的电机可能需要高分辨率。
  请注意上面的步如何寻找的预分频器。进入周期计数器的频率越高,分辨率越高。
  另一种看待这个问题的方法是在周期计数器中使用更多的计数来提供更高的分辨率。
  中断
  有时,PWM 输出和软件之间的严格控制非常重要。同步两者的有效方法是使用中断(有关中断的更多信息,请参阅本系列的篇文章)。
  当周期计数器溢出以及宽度逻辑发现匹配(输出脉冲结束)时,PWM 定时器通常可以选择生成中断请求。如果有多个通道,中断服务例程通常会读取定时器中的寄存器以找出哪个通道请求中断。

关键词:定时器

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

广告
上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!