使用定时器和计数器创建高效的基于MCU的设计

      定时器和计数器可能是MCU设计中最普遍的外设。几乎任何应用程序都可以使用定时器或计数器来提高性能、降低功耗,或者通过使用简单的计时器或计数器中断替换重复或循环的CPU操作来简化设计。不过,您可能还没有使用一些较新的计时器/计数器单元,而现在的一些高级功能更能改进您的设计。本文将快速回顾一些新的计时器/计数器功能,您可以使用这些示例来改进您的设计,这些示例来自流行的MCU系列,特别强调自主操作和电机控制的特性。


  定时器和计数器模式:从简单到高级

  定时器和计数器以一些非常简单的操作模式开始,以取代常见的程序循环来计算外部事件、定时内部和外部操作以及收集关于关键MCU操作的各种统计数据。一些最常见的计数模式给出的格言maxq612单片机的特点和一些例子在下面的图1所示。在图表的底部表显示定时器B三共同自治的运作模式,这maxq612定时器/计数器模块:自动装弹,捕捉,和PP /倒计数。右上角的图形显示了自动重新加载模式的框图。定时器B的时钟输入可以来自一个时钟分频器,可以用八种不同的设置,将系统时钟,或从外部引脚。一个控制点,TRB,启用或禁用定时器B操作。定时器值登记(TVB)计数时,时钟和它达到存储在定时器B重新登记时的价值(TBR)和中断产生,TVB将重置为零。这提供了一种简单的方法来创建延迟,而不用占用宝贵的CPU周期来创建延迟。一个外部引脚也可用于将无线随意重置为零,如果期望的输入在期望的时间内不出现,则此模式有助于创建超时。

  最大maxq612单片机的图像(点击尺寸)


  图1:马克西姆maxq612单片机实例计数器/定时器模式。

  图1右上角的方框图演示了捕获模式的操作。在这种模式下,时钟分频器和启用/禁用功能相同的自动重载模式。TBV登记统计与重置为零当它溢出并生成一个可选的中断。在外部引脚的TBB的下降沿,在TBV登记的值加载到捕获登记,TBR和中断,exfb,可以生成。此模式可用于计算外部信号的上升沿之间的时钟数,以确定信号频率或信号延迟。这样定时器就可以让CPU不做循环密集的计数操作,这样就可以更有效地完成它真正需要的任务。

  其他几种常见的定时器/计数器的操作是由maxq612如上/下自动重载的支持,在外部引脚控制的反方向。这种模式有助于解码各种脉宽调制信号,如机电传感器中使用的脉冲调制信号。一个时钟输出模式可以使用系统时钟,创建一个简单的输出时钟的分频器,和定时器B最后终端计数、脉冲宽度调制(PWM)输出模式可产生边缘对齐PWM信号共同使用的应用,如电机控制。


  电机控制的pwm计数器/定时器功能

  一些最先进的定时器/计数器功能用于PWM控制电机的应用。这些计数器尽可能实现与电机相关的PWM功能,使用专用硬件来释放处理器以执行更高级的功能。一个电机控制PWM计数器/定时器的基本操作是常见的大多数厂家的实现和那些在NXP LPC 17xx PWM定时器发现之间,这是三相交流和直流电机控制应用进行了优化,提供了一个很好的例子。如图2所示,电机控制PWM块的功能可能会相当复杂,直到你意识到基本的PWM定时器通道有三个拷贝;一个在左边,一个在中间,一个在右边。有三个通道,可以使用一个定时器/计数器来控制三相电机,使之非常有效地实现。每个通道控制一对输出,反过来,它们可以控制芯片以外的东西,就像电动机中的一组线圈一样。每个通道包括一个定时器/计数器(TC)寄存器,由处理器时钟(定时器模式)或输入引脚(计数器模式)递增。

  NXP LPC 17xx PWM定时器/计数器的形象


  图2:NXP LPC 17xx PWM定时器/计数器。

  每个通道都有一个与TC值相比较的限制寄存器,当匹配发生时,TC以两种方式之一“重置”。在边缘对齐模式下,TC被重置为0,而在中心模式下,匹配将TC转换到每个处理器时钟或输入引脚转换的递减值,直到达到0,此时它又开始计数。

  每个通道还包括一个匹配寄存器,该寄存器具有小于寄存器的较小值。在边对齐模式下,每当TC匹配匹配或限制寄存器时,通道的输出都被切换,而在中心对齐模式中,只有当匹配寄存器匹配时才进行切换。因此,极限寄存器控制输出周期,而匹配寄存器控制每个周期输出在每个状态中的多少。在寄存器中有一个小的值最小化纹波,如果输出被集成到一个电压,并允许电机控制PWM定时器控制高速运行的设备。

  所有这些通道硬件元件一起工作来控制两个输出A和B,它可以驱动一对晶体管来切换两个电源轨道之间的控制点。大多数情况下,两个输出具有相反的极性,但可以启用死区时间特性(以每通道为基础)来延迟两个信号从被动状态到主动状态的转换,从而使晶体管不同时进行。每个输出对的状态可以被认为是高、低、浮动或上、下、中和。每个通道的映射从主动和被动到高和低是可编程的,每个都可以执行边缘对齐和中心对准脉冲宽度调制。图3显示了两个输出配置示例。左边的是中心对齐,没有任何死区时间。右边的一个有死区时间(dt)插入,以确保两个输出在同一时间不活跃。

  NXP LPC17XX电机控制PWM定时器/计数器的形象


  图3:NXP LPC17XX电机控制PWM定时器/计数器示例的输出配置。

  电机控制PWM定时器还包括几个中断源,以便于通知处理器需要更高级别的电机控制功能。这些中断被组织在一个通道基础上,当TC匹配极限寄存器时,当通道捕获捕获寄存器的值或终止输入激活时,TC可以指示何时匹配匹配寄存器。LPC17xx也有几个支持的外设,简化高级控制功能包括一个正交编码器接口,额外的PWM模块,中断,定时器,看门狗定时器。这种广泛的专门的计时功能表明了时序函数对基于MCU的设计有多么重要。


  其他专门的计时功能

  很多现代的单片机的定时和计数功能越来越专业化,作为厂商目标的具体应用领域。作为一个例子,飞思卡尔Kinetis K10家族(如mk10dn512zvlq10)有多种定时和计数型外围设备的特定功能。这些设备包括:用于控制ADC和DAC的行动自由的处理器管理这些低层次的过程,一个可编程的延迟块;灵活的定时模块提供定时、多通道的计数,输入捕获和输出比较照明和电动机的电源管理和控制的支持;一个定时器周期中断,可以自主管理外部中断和DMA传输;一个非常低功耗定时器,可以操作,即使是在最低功耗状态单片机提供一个简单的周期性的“唤醒”事件;和一个实时时钟保持准确的时间,甚至可以用电池当单片机是完全断电,使其系统运行方便的来源寿命数据。

  K10家族还提供了专门的时钟和时序,是专门与一个特定的块,其他时间资源不被消耗的功能。例如,载波调制发射模块,用于创建用于各种信号的编码方案,如在红外通信协议,有自己专用的定时和计数功能,就像一个脉冲宽度调制脉冲宽度计数器,管理与频移键控编码方案相关的改变。这一趋势将专门的定时和计数功能预计将继续作为MCU应用市场变得更具体。


  开发套件加速上市时间

  MCUs变得更加具体应用,制造商创造更多的面向应用的开发工具和参考设计。电机控制的应用程序也许是一个应用程序特定的试剂盒最常见的例子。举个例子,瑞萨科技提供了一个完整的电机控制开发套件,如图4所示的ymcrprx62t,其中甚至包括例电机。该套件的所有软件和实例设计,你需要评估的瑞萨rx62t单片机多电机控制设计。PC举办示范图形用户界面显示电机的转速,电压,电流,同时允许用户调整参数和算法直接查看各种结果有助于在一个特定的设计优化结果调整电机运行。许多其他的生产商也有电机控制评估套件的一些特征类似于瑞萨rx62t。寻找盒最匹配你的目标应用和开发环境,利用“工作生产大量束”来帮助你加快你的下一个电机控制设计。

  对于家庭rx62t单片机瑞萨电机控制开发套件的图像


  图4:瑞萨电机控制rx62t系列单片机的开发工具包。


  总结

  定时器和计数器是一个单片机最熟悉的外设,但使用它们在最大程度上能够让你节省电能,提高性能并简化你的设计。本文探讨了一些新的和先进的功能,使我们能够以罕见的方式把这些共同的要素优势。

猜你喜欢

转载自blog.csdn.net/aabcd987/article/details/79937328