如今的嵌入式应用非常复杂,需要通过单个单片机处理多个功能。这些应用需要增强安全性、支持实时响应的最佳执行时间以及无缝同步各个功能。从具有集成功率因数校正的电机控制到光强度处理,复杂应用需要在各个模块之间轻松切换。处理器驱动的定时和排序解决方案受固有延时的影响,这种延时无法始终准确预测。这种方法还占用了宝贵的CPU带宽,导致其功能未得到充分利用,而通过卸载这些功能可优化应用程序性能。Microchip的16位dsPIC33数字信号控制器(DSC)中的外设触发信号发生器(PTG)是独立于内核的外设(CIP),可以协调复杂应用中功能的精确定时和排序,同时减轻CPU的负担。我们详细介绍了几个示例,以展示PTG如何帮助简化时序关键应用(例如,采用功率因数校正的电机控制、光强度控制或生成还可用作独立于内核的时钟源的恒定频率信号)的外设排序。由于PTG与内核无关,因此可以在CPU休眠时完成此项工作以实现节能或专注于其他关键任务。
顾名思义,PTG是一个用户可编程序列发生器,可生成具有复杂输入信号序列的触发信号,以协调其他片上外设的操作。使用PTG的应用会通过其他外设(例如模数转换器(ADC)、输出比较(OC)、脉宽调制器(PWM)、定时器和中断控制器)共同执行此操作,以实现复杂的触发和响应序列。PTG不仅降低了应用程序对内核的依赖性,还能单独处理模块交互,从而有助于降低软件复杂性及保持模块化。
PTG外设支持向PTG队列寄存器传送8位命令(称为step命令)。每个8位step命令由一个4位命令代码和一个4位选项字段组成。这些命令定义了一系列事件,用于输出触发信号到外设。step命令还可用于生成对内核的中断请求。
功率因数和电机控制
在集成功率因数校正(PFC)和电机控制应用中,单个DSC使用磁场定向控制(FOC)方案以及PFC转换器控制永磁同步电机。该应用需要三个PWM通道来控制电机功能,另外还需要一个PWM来控制PFC操作。输出比较(OC)外设可用于增加应用可用的PWM通道数量,甚至会超出器件上可用的高速PWM通道数量。
可同时使用PWM外设与OC外设来产生电机控制和PFC操作所需的信号。但是,在PFC等应用中,执行时序非常重要,因此必须在最佳执行时间内完成各种任务。其中包括同步电机控制和PFC PWM、触发ADC进行转换以及切换用于电机控制的ADC通道和PFC反馈信号。
使用PTG外设可以有效地实现这些要求,PTG外设可以同步高速PWM和OC外设,并通过监视高速PWM外设边沿来产生ADC外设触发信号。它还可监视“ADC转换完成”中断并产生适当的中断,执行FOC和数字PFC控制代码。它减少了CPU干预,使外设处理独立于内核进行。这可降低应用的总体功耗,同时释放CPU以执行更多关键功能。选择电机控制和PFC PWM的开关频率时应确保其为整数倍。
dsPIC® DSC中的ADC能够进行四通道同步采样。FOC和PFC算法都有自己的模拟通道需要同时采样,因为这些信号的相位关系是实现有效控制的关键。
选择电机控制和PFC的反馈信号时应确保可通过改变ADC通道选择对电机控制和PFC信号进行采样。在基于PWM边沿触发ADC之前,可将电机控制和PFC信号连接到采样保持(S&H)电路。通道应配置为:在四通道采样和转换序列结束时,可从FOC或PFC各自对应的ADC缓冲寄存器中获得其转换结果。
在设置通道选择位以将PFC反馈信号连接到ADC的采样保持电路后,对于每个PFC PWM周期,都必须生成触发信号。同样,对于每个电机控制PWM周期,必须在设置通道选择位以将电机控制反馈信号连接到ADC的S&H电路之后生成ADC触发信号。因此,将PTG外设配置为通过监视电机控制和PFC PWM脉冲的边沿来生成ADC触发信号。此外,还会生成两个PTG中断来执行FOC和PFC的代码,如图1所示。
图1:使用PTG中断执行代码
如本例所示,PTG通过有效地对ADC和PWM的使用进行排序来简化实现,从而在一个dsPIC33器件中实现电机控制和PFC。
照明控制