如今的嵌入式应用非常复杂,需要通过单个单片机处理多个功能。这些应用需要增强安全性、支持实时响应的最佳执行时间以及无缝同步各个功能。从具有集成功率因数校正的电机控制到光强度处理,复杂应用需要在各个模块之间轻松切换。处理器驱动的定时和排序解决方案受固有延时的影响,这种延时无法始终准确预测。这种方法还占用了宝贵的 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。

 

照明控制

在光强度控制应用中,使用 OC 的 PWM 发生器可用于控制光的亮度。

 

在此应用中,使用了两个 OC 外设,其占空比由来自两个独立 ADC 通道的输入控制。根据每个 ADC 值,更新占空比。PTG 外设支持更简单的同步 ADC 和 OC 外设的方法。此外,PTG 有助于避免外设死锁,从而提高应用的安全性。

 

为了执行同步,电路首先会监视 ADC 并产生适当的中断以改变 OC 占空比。然后,它会在不干扰 CPU 的情况下改变 ADC 通道,因为 PTG 可以独立完成此操作。作为额外的安全功能,在发生意外故障时,PTG 外设具有专用的看门狗定时器,用于监视和执行必要的纠正措施。

 

该应用的框图如图 2 所示。

 

图 2:使用 PTG 的输出比较占空比控制

 

PTG 外设内的看门狗定时器将防止 PTG 在执行等待硬件触发高电平 - 低电平状态的命令时无限期地等待外部事件的情况。在此应用中,PTG 将等待 ADC 转换完成触发信号。使能后,看门狗定时器会在命令执行开始时开始计数。命令完成执行时将禁止看门狗定时器。如果预期事件在看门狗定时器超时周期到期之前未到达,则 PTG 外设将中止正在进行的失败命令并停止定序器。然后,它会向 CPU 发出看门狗定时器错误中断。

 

这可作为安全功能,用于从 ADC 或 PTG 外设停止工作的情况中恢复。这些外设可以在看门狗定时器错误中断内重新初始化和重启。

 

PTG 通过切换 ADC 通道和监控外设使应用独立于内核,而无需 CPU 外设的干预。这样一来,CPU 便可以用于应用程序中的其他任务。

 

仅 PTG 将负责外设内的所有交互,这有助于降低软件复杂性并保持模块化。PTG 外设的看门狗定时器有助于从任何灾难性故障中恢复,从而提供更可靠的应用。

 

恒定频率波形

PTG 外设可用于产生恒定频率信号,而此信号还可用作时钟源。PTG 触发用作屏蔽输入选择的比较器。PTG 的触发脉冲宽度可以改变,PTG 有自己的定时器。外设触发信号也可用作运算放大器和比较器的屏蔽输入选择,如图 3 所示。

 

图 3:用户可编程的屏蔽功能

 

使用此功能,可以通过比较器外设实现 PTG 输出。比较器配置为:反相输入接地,同相输入连接至内部参考电压。

 

触发脉冲将直接呈现为比较器输出。只要 PTG 连续产生触发信号,比较器就会产生恒定频率波形。波形的脉冲宽度将是 PTG 时钟的一个周期。

 

开关时间可由 PTG 定时器和脉冲宽度位控制。输出脉冲宽度将决定输出波形的关断时间,定时器将决定输出波形的导通时间,即触发比较器外设之间的延时。

 

根据比较器输出极性,开关时间将由定时器或脉冲宽度位控制。输出频率也可以由充当时钟分频器的寄存器控制。

 

通过改变比较器输出极性,可以使用四个比较器外设产生互补波形。可以使用脉冲宽度位修改脉冲宽度,以便降低输出频率。因此,可以使用 PTG 和比较器外设产生恒定波形。

 

在该应用中使用 PTG 的优点之一是输出可以充当恒定时钟源并且完全独立于内核运行。使用更多比较器外设时,可以生成偶互补波形。PTG 还可以在空闲和休眠等节能模式下工作。

 

总结

凭借 Microchip 的 dsPIC33 数字信号控制器中的 PTG 外设,用户能够设计复杂的应用序列,并为时序关键型或功耗关键型应用提供更高的灵活性。PTG 可在几乎没有 CPU 中断的情况下支持各种外设彼此交互,并有助于增强现有外设的功能,从而扩展任何给定外设可以实现的功能。

 

使用 PTG 外设可提供更快的响应速度并减少软件负担。外设还提供内置功能(如专用的看门狗定时器)来提高功能安全性。