微控制器PWM外设及其目标负载的同步与防止相位延迟方案

2020-08-06来源: elecfans关键字:微控制器  PWM外设  目标负载  同步  相位延迟
大多数微控制器至少有一个脉冲宽度调制 (PWM) 外设,以方波形式生成多个波形。这些 PWM 输出可用于驱动同步负载,例如机械系统中的步进电机和电源转换器的功率MOSFET。对于这些负载,要使目标负载正常工作,PWM 波形必须精确同步,这一点非常重要。

 
如果 PWM 外设未经过仔细编程,它可能偶尔会在波形之间产生相位延迟,从而导致在波形边沿未正确对齐时失去同步。这些相位延迟将会降低负载的驱动效率,从而浪费功率并可能产生过多的热量。对于常见的 PWM 外设,可以启用或禁用某个 PWM,但同时会导致其他 PWM 输出发生相位延迟。
 
这对于小规格电池供电型物联网 (IoT) 应用而言尤其是个问题。在此类应用中,单个具有 16 或 32 路输出的 PWM 外设被用于控制多个外部负载。这类物联网应用中的相位延迟可能浪费电池电量。而且,由于未检测到相位延迟,物联网端点的网络诊断可能会遗漏这些延迟。
 
本文将讨论微控制器 PWM 外设的一些应用,以及在这类应用中,哪些情况下使 PWM 波形保持同步非常重要。然后介绍 Maxim Integrated 的一款微控制器,其中具有一个专为防止这类应用中丢失波形同步的脉冲串外设,最后讨论如何配置此外设以确保目标负载得到高效的驱动。
 
微控制器 PWM 外设及其目标负载
 
大多数通用微控制器至少有一个 PWM 外设,用于生成规则的重复方波。PWM 驱动可用于许多负载——从简单负载到更复杂的机械驱动系统。
 
发光二极管 (LED) 是可通过 PWM 信号高效驱动的简单负载示例之一,尤其是在需要对彩色 LED 进行调光的应用中。与通过改变正向直流电流来为 LED 调光相比,PWM 调光可以更精确地保持光线质量,而不会明显改变颜色。一个 PWM 外设可以轻松驱动一个或多个 LED。如果将这些 LED 用作操作员的视觉指示灯,则两个或多个 LED 之间的相位差不太明显。但如果将这些 LED 用于更复杂的应用,例如多个 LED 以光调制的形式将数据传输到受光器,则 LED 同步可能是非常重要的设计考虑因素。
 
微控制器 PWM 的另一种简单负载是通过电机驱动器 IC 驱动的直流电机。尽管通过改变直流电机两端的电压可以轻松改变直流电机的速度,但 PWM 控制可以更精确地控制电机旋转。如果将速度传感器用于闭环控制系统,则可以更精确地保持电机速度。如果使用两个或更多个直流电机并且它们必须一起运行,则可能有必要对 PWM 波形进行同步,以便在电机之间保持精确的速度控制。
 
驱动双极步进电机
 
当驱动双极步进电机时,设计情况变得更加复杂。双极步进电机由两个可逆的电流绕组驱动(图 1)。每个绕组需要两个 PWM,因此需要四个 PWM。
 
图 1:双极步进电机由两个电流绕组(表示为红色和绿色线圈)驱动旋转,这两个绕组可承载每个方向上的电流。通过控制绕组中电流的相位和持续时间,可以轻松控制电机的速度和位置。(图片来源:Digi-Key)
 
如图 1 所示,红色和绿色线圈表示的两个电流绕组必须按正确的顺序驱动,才能使电机正常工作。在每个波形变化时,图 2 所示的序列驱动双极步进电机一整步。
 
图 2:双极步进电机上的两个线圈必须根据上图进行分别驱动,才能使电机在每次波形变化时运动一整步。首先在一个方向上驱动每个线圈中的电流;接下来线圈空闲;然后以相反方向驱动电流。(图片来源:Digi-Key)
 
电机的每一步都从每个波形转换开始。如图 2 所示,绕组两端的电压极性以及因此流过每个绕组的电流,在每一步都会发生变化。任何 PWM 信号中的相位延迟都可能导致电机打滑,从而造成扭矩损失,尤其在低速运转时。
 
当微控制器具有仅使用四个输出的 PWM 外设时,可以轻松控制步进电机,只需适度留意维持同步。但如果使用同一 PWM 外设来控制多个负载,则情况会变得更加复杂。例如,一个 16 输出 PWM 可能将四个 PWM 输出分配给步进电机,而将其他 PWM 输出分配给其他负载,例如直流电机或 LED。使用适当的寄存器配置 PWM 输出的频率和占空比后,将在每个 PWM 的启用/禁用寄存器中设置一个位。在 Arm  微控制器中,固件可通过使用位绑定来设置相应的位。但是,位绑定会对目标寄存器执行读取/修改/写入 (RMW) 操作。如果有其他 PWM 输出编程为在 RMW 操作期间开始或结束,则可能导致无法预测的结果,在某些情况下,甚至可能按与固件控制相反的方式启用或禁用 PWM。
 
Maxim Integrated 利用以 120 兆赫兹 (MHz) 频率运行的 MAX32650  Arm Cortex-M4F 微控制器解决了这一问题。它具有广泛的外设,包括三个标准 SPI 接口、一个四通道 SPI、三个 UART、两个 I2C 端口、一个带物理层 (PHY) 的 USB 2.0 高速接口、六个 32 位定时器,以及一个 AES-256 加密单元(图 3)。
 
图 3:Maxim Integrated 的 MAX32650 基于 120 MHz Arm Cortex-M4F,具有面向高性能物联网边缘计算应用的全系列外设和存储器选项。(图片来源:Maxim Integrated)
 
MAX32650 具有 3 MB 的闪存和 1 MB 的 SRAM,面向需要边缘计算的复杂物联网 (IoT) 端点。MAX32650 还具有一个 16 输出脉冲串外设,可以生成复杂的 PWM 信号。它可以生成具有可配置频率和 50% 占空比的方波,以及基于长度可达 32 位的可编程位模式的脉冲串。
 
防止相位延迟
 
脉冲串发生器可以使用 32 位 PTG_ENABLE 寄存器单独启用或禁用 16 个 PWM 输出中的任何一个。向任意位位置写入 1 将启用该脉冲串,使其按配置运行。写入 0 将停止脉冲串时钟和逻辑,将输出冻结在当前逻辑状态。该寄存器与大多数微控制器中的启用/禁用寄存器具有相同的 RMW 限制,因此不建议使用位绑定。
 
为了保持波形之间的相位同步,MAX32650 的脉冲串外设支持一种独特的功能,当使用 32 位寄存器 PTG_SAFE_EN 时称为“安全启用”,而当使用 32 位寄存器 PTG_SAFE_DIS 时则称为“安全禁用”。其中每个寄存器的高 16 位均未使用,建议这些未使用的位置始终写入零。
 
为了安全地启用任何输出,固件会将 1 写入 PTG_SAFE_EN 中的相应位位置。这还会立即设置这些输出在 PTG_ENABLE 中的位位置,从而启动 PWM 输出。向 PTG_SAFE_EN 中的任何位位置写入 0 对任何脉冲串输出都没有影响。
 
为了安全地禁用任何输出,固件会将 1 写入 PTG_SAFE_DIS 中的相应位位置。这还会立即清除这些输出在 PTG_ENABLE 中的位位置,从而停止 PWM 输出。向 PTG_SAFE_DIS 中的任何位位置写入 0 对任何脉冲串输出都没有影响。
 
写入这些寄存器不会执行 RMW。安全启用/禁用功能允许立即启动或停止一个或多个脉冲串,同时保证任何其他脉冲串都不会受到影响。PTG_SAFE_EN 和 PTG_SAFE_DIS 寄存器不支持位绑定。
 
再次参考图 1 中的双极步进电机,脉冲串输出 0 和 1 可用于 A 和 B 对应的绿色电流绕组,脉冲串输出 2 和 3 则可以用于 C 和 D 对应的红色电流绕组。由于图 2 中的波形包含死点,因此适合使用脉冲串功能来编程一种模式,并能配置为在没有固件干预的情况下重复任意次数。
 
设置后,可通过将 0000000Fh 写入 PTG_SAFE_EN 来启动电机。这会同时启动脉冲串输出 0 到 3,在不影响任何其他正在运行的脉冲串输出的情况下启动电机。通过将 0000000Fh 写入 PTG_SAFE_DIS,可停止电机。这两项操作都不会影响任何其他正在运行的脉冲串。
 
如果需要启用或禁用其他 12 个脉冲串输出中的任意一个,也可以使用这两个寄存器安全地控制它们。只要不将 1 写入这些寄存器的低四位位置,步进电机的操作就不会受到影响。这与使用具有 RMW 的标准启用寄存器完全不同,使用 RMW 时,输出可能会卡顿,从而引起相移,这可能对扭矩产生不利影响。安全启用/禁用功能类似于一种原子操作,因此可确保步进电机高效运行,不会浪费功率,并始终保持最大扭矩。
 
微控制器输出引脚没有足够的能力驱动步进电机,因此需要电机驱动器或 H 桥。AllegroMicroSystems  的 A3909GLYTR-T  是双 H 桥驱动器,可驱动需要 4 至 18 伏电压以及每个电流绕组高达 1 安培 (A) 电流的电机(图 4)。
 
图 4:Allegro MicroSystems 的 A3909 是双 H 桥驱动器,可为步进电机线圈提供高达 1 A 的拉出和灌入电流。(图片来源:Allegro MicroSystems)
 
A3909 具有热关断保护、过流保护和短路保护功能。每个输入 (INx) 驱动相应的输出 (OUTx)。MAX32650 PWM 可以将脉冲串输出 0 和 1 连接到输入 IN1 和 IN2(绿色),以通过 OUT1 和 OUT2 驱动绿色线圈,以及将脉冲串输出 2 和 3 连接到 IN3 和 IN4(红色),以通过 OUT3 和 OUT4 驱动红色线圈。这使 A3909 能够直接驱动步进电机。
 
A3909 还支持有用的高阻抗功能。如果 H 桥的两个输入均为逻辑 0 的时间超过一毫秒 (ms),则两个输出都将置于高阻抗状态。这适用于允许电机惯性滑行的情况,或任何要求输出为高阻抗的步进电机步阶。再次参考图 2,任何处于空闲状态的波形部分都将因置于高阻抗状态而获益。这可防止电流线圈在电机由另一个电流线圈步进时干扰电机的运行,因此会提高效率。
 
如果所有四个输入(两对)均保持低电平的时间超过 1 ms,那么很显然,两个输出对都将进入如上所述的高阻抗状态。规格书中称此为休眠模式,因为同时还有一些内部电路也会处于低功耗状态。
 
总结
 
常见的微控制器外设往往包括用于驱动外部负载(例如电机和功率 MOSFET)的 PWM 功能。但由于某些情况下在 PWM 启用寄存器上执行位操作可能会导致不可预测的结果,因此微控制器供应商正在使用新的 PWM 外设来解决此问题,这些外设提供的功能可以安全地启用和禁用单个 PWM 输出,而不会干扰其他 PWM 输出,从而防止偶尔出现相位延迟和失去同步。

关键字:微控制器  PWM外设  目标负载  同步  相位延迟 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/qrs/ic505519.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:维信诺:占据先发优势,引领OLED产业快速发展
下一篇:使用PWM技术构建高性能流量变送器

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

基于AtmelAVR Flash微控制器的基本原理及在汽车中的应用研究
很耗费内存,并要求规定校准顺序。  – 速度推导计算:很有意义的一种技术,因为它对内存要求较少,但需要更多的计算,具有两种方法的优点。  在AVR上的实现  前几段详细描述的算法已经实现,并在一块AVR ATmega88 开发板上进行了测试。图2 描述的是用以实现算法的硬件。它采用了一块标准的ATmega88 以及模拟链来测量电机电流。硬件带有两个霍尔效应传感器。马达的方向是通过一个两极延迟来控制的,并通过一个场效应管来激活马达的开关。  系统内编程Flash  系统内编程允许任何位于端系统内的AVR 微控制器进行编程和再编程。通过一个简单的三线SPI 接口,系统内编程器与AVR 微控制器进行串行通讯,从而重编程芯片上的所有非易失性内存
发表于 2020-09-15
基于AtmelAVR Flash<font color='red'>微控制器</font>的基本原理及在汽车中的应用研究
NXP:微控制器在边缘人工智能中扮演着越来越重要的角色
就在几年前,人们还认为机器学习(ML)甚至深度学习(DL)只能在高端硬件上执行,在边缘侧需要通过网关、边缘服务器或数据中心执行训练和推理,这在当时是一个主流观念,因为在云和边缘之间研究如何分配计算资源还处于早期阶段。但由于工业界和学术界的深入研究和开发努力,这种情况已经发生了巨大的变化。如今,最新的微控制器(其中一些带有嵌入式ML加速器)可以将ML带到边缘设备中,性能也很强大,已经可以达到数TOPS了。这些设备不仅可以执行ML,而且还可以以低成本、低功耗、仅在绝对必要时才连接到云端的特性。简言之,集成了ML加速器的微控制器代表了下一步,将计算应用到麦克风、摄像头和监控环境条件的传感器上,这些传感器产生的数据将在模块中就实现数据处理
发表于 2020-09-15
NXP:<font color='red'>微控制器</font>在边缘人工智能中扮演着越来越重要的角色
基于MSP430微控制器的电容触摸实现方案和LED PWM驱动
本应用文档介绍了使用MSP430微控制器实现电容触摸转轮和多路独立LED的PWM软件驱动技术。方案通过4路I/O 端口实现电容触摸转轮控制,I/O端口配合三极管驱动LED,实现LED呼吸、轨迹灯等效果。本方案为需要电容触摸转轮控制和LED跟踪显示等绚丽灯效的产品提供了有效的低成本方案。简介电容触摸技术作为一种实用、时尚的人机交互方式,已经被广泛的应用到各种电子产品,小到电灯开关,大到平板电脑、触摸桌等。随之而来的是考验产品设计者如何发挥智慧,在把产品用户界面设计得方便简洁的同时,又能呈现产品绚丽的外观,从而带来良好的用户体验。LED显示由于界面友好,可以实时反映触摸的位置信息,在电容触摸产品设计中得到广泛应用。本设计正是利用了大量
发表于 2020-09-15
基于MSP430<font color='red'>微控制器</font>的电容触摸实现方案和LED PWM驱动
如何利用微控制器设计技术大限度提高热敏电阻精度
效、更准确的方法是使用硅基热敏电阻,它是一种正温度系数(PTC)器件。并且PTC不是电阻器件,而是电流模式器件;在电流模式下工作的硅提供基于温度的线性输出电压。 无论您使用NTC还是PTC,您的设计都需要一个ADC和一个MCU来测量热敏电阻的电压输出。本文的重点是将硅基热敏电阻与MCU结合使用带来的许多优势。我们将探讨NTC和PTC热敏电阻的优缺点。 选择微控制器 MCU选型具有诸多选择,但很可能在选择温度传感器时这个组件已经被确定。你可以关注温度传感的ADC外设的具体情况。    选择ADC ADC有很多不同的类型。最受欢迎的两种为逐次逼近寄存器(SAR
发表于 2020-09-14
如何利用<font color='red'>微控制器</font>设计技术大限度提高热敏电阻精度
如何仅用6个芯片组装一台计算机?
要的是,这个计算机只需要 6 块芯片,其中包括一个 ATMEGA1284P 的 CPU,一个 USB 接口芯片,以及 4 个简单的集成电路。可以看到,你可以在上面完成一些基本操作。这个计算机还可以显示彩色图像。  那么,怎样用这些简单的硬件组装一台计算机呢? Amethyst :六个芯片打造家用计算机据作者介绍,Amethyst 是一种复古风格的家用九三级,围绕 ATmega1284 微控制器打造。它能够合成 NTSC 视频输出,有着高色彩和高分辨率模式、单声道音频输出和一个完整的机械键盘。  该计算机使用 Forth 编程语言,有图像和声音指令、调试器和屏幕编辑功能。它采用
发表于 2020-09-11
如何仅用6个芯片组装一台计算机?
基于ARM的LPC1768微控制器启动过程
基本概念(CMSIS): Cortex Micro-controller Software Interface Standard,微控制器软件接口标准。2. CMSIS标准的文件结构:a) core_cm.c (stdint.h)b) system_.c (core_cm, system_)c) startup_.s其中core_cm.c以及core_cm中为内核设访问层,其中定义了定义了内核中得外设几丁质以及一些内核的访问及控制函数。startup_.s文件是系统的启动文件,其包括堆和栈的初始化配置、中断向量表的配置以及将程序引导到main()函数等功能。system_和system_.c文件则是由ARM公司提供模版,各芯片制造
发表于 2020-09-10
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved