TI DSP TMS320F280025 Note7:比较器子系统(CMPSS)

TMS320F280025 比较器子系统(CMPSS)



比较器子系统(CMPSS)由模拟比较器和支持电路组成,这些电路对诸如峰值电流模式控制、开关模式电源、功率因数校正、电压跳闸监视等功率应用程序非常有用。
请参考《C2000实时控制外设参考指南》中相同类型模块的所有设备列表,以确定不同类型之间的差异,以及同一类型中特定设备的差异列表。

介绍

比较器子系统是围绕许多模块构建的。每**个子系统包含两个比较器,两个参考12位dac和两个数字滤波器。**该子系统还包括一个斜坡发电机。**斜坡发电机只能向下倾斜。**比较值在每个模块内用“H”或“L”表示,其中“H”和“L”分别代表高和低。**每个比较器产生一个数字输出,该数字输出指示正输入端的电压是否大于负输入端的电压。**比较器的正输入由外部引脚驱动(参见模拟子系统章节,了解CMPSS可用的多路复用选项)。负输入可以由外部引脚或可编程参考12位DAC驱动。每个比较器输出通过一个可编程的数字滤波器,可以去除虚假的行程信号。如果不需要过滤,也可以使用未过滤的输出。
斜坡发生器电路可选用于控制子系统中高比较器的参考12位DAC值。

特点

每个CMPSS包括:
•两个模拟比较器
•两个可编程参考12位dac
•一个递减斜坡发生器
•两个数字滤波器马克斯过滤同步时钟预分频= 2^10
•能够与EPWMSYNCPER同步子模块
•能够与EPWMBLANK扩展清晰信号
•能够与SYSCLK同步输出
•能够锁存输出
•能够反转输出
•能力选择使用滞后比较器的输入
•选择消极的外部信号或参考DAC
•DAC参考电压可以设置为VDDA或VDAC

框图

CMPSS模块框图如图所示。
**•CTRIPx(x=“H”或“L”)信号连接到ePWM x - bar,用于ePWM跳闸响应。**有关ePWM X-BAR多路复用配置的更多细节,请参阅增强型脉宽调制器(ePWM)。
**•CTRIPxOUTx(x=“H”或“L”)信号连接到输出x - bar,用于外部信令。**有关输出X-BAR多路复用配置的详细信息,请参阅通用输入/输出(GPIO)。
在这里插入图片描述

比较器

**当正输入端电压大于负输入端电压时,比较器产生高数字输出,当正输入端电压小于负输入端电压时,比较器产生低数字输出。**比较器如图

在这里插入图片描述
在这里插入图片描述

参考DAC

每个参考12位DAC都可以配置为驱动参考电压进入相应比较器的负输入。参考12位DAC输出仅在内部,不能从外部观察到。
每个参考12位DAC都有两组DACxVAL寄存器,DACxVALA和DACxVALS。
DACxVALA是一个只读寄存器,主动控制参考12位DAC值。DACxVALS是一个可写的影子寄存器,它可以立即加载到DACxVALA中,也可以与下一个EPWMSYNCPER事件同步。高低参考12位DAC (DACx)可以选择从斜坡生成器而不是寄存器DACxVALS获取寄存器DACxVALA值。
参考12位DAC的工作范围由DACREF和VSSA限定。
参考的12位DAC如图所示。
在这里插入图片描述

参考12位DAC的输出可以计算为:
在这里插入图片描述

•在DACH和DACL都驱动高低比较器的情况下,一个比较器的跳闸会暂时干扰另一个比较器的DAC输出。该干扰的数量和时间长度在设备数据表中分别指定为“CMPSS
DAC输出干扰”和“CMPSS DAC干扰时间”。
用户必须仔细设计系统,以便如果输入信号穿过DACH或DACL并使相关的比较器跳闸,则输入信号在“CMPSS DAC干扰时间”内与另一个比较器跳闸点保持超过“CMPSS DAC输出干扰”的距离。
•DACH设置必须始终高于DACL设置。如果用户不使用DACL,则必须将DACLVALS寄存器设置为0,以避免比较器COMPL跳闸并影响DACH。在这种情况下,DACHVALS设置没有限制。因此,当不使用DACH时,用户必须将DACHVALS寄存器设置为最大值。
•CMPSS实例可以在编程参考DAC值之前启用。

Ramp Generator

Ramp Generator

当选择坡道发生器时,为高参考12位DAC产生一个下降坡道输入。在这种模式下,参考12位DAC使用RAMPSTS倒计时寄存器的最高有效12位作为输入。RAMPSTS倒计时寄存器的低4位有效地充当RAMPDECVALA可配置的下降斜坡速率的预刻度。
通过设置DACSOURCE = 1来启用斜坡生成器。当选择DACSOURCE = 1时,RAMPSTS的值从RAMPMAXREFS加载,并且寄存器保持静态,直到接收到所选的EPWMSYNCPER信号。在接收到选定的EPWMSYNCPER信号后,在随后的每个SYSCLK周期中从RAMPSTS中减去RAMPDECVALA的值。

为了防止在EPWMSYNCPER事件之后开始SYSCLK周期的减法,可以使用RAMPDLYA寄存器作为延迟计数器来阻止RAMPSTS减法。在接收到EPWMSYNCPER事件时,RAMPDLYA的值在每个SYSCLK周期中递减1,直到寄存器达到零。因此,只有当RAMPDLYA为零时,RAMPSTS减法才会开始。

Ramp Generator Behavior

斜坡生成器在DACSOURCE、EPWMSYNCPER和COMPHSTS的每个上升沿上进行状态更改。
在DACSOURCE的上升边缘:RAMPMAXREFA、RAMPDECVALA和RAMPDLYA装载了阴影寄存器。RAMPSTS装载RAMPMAXREFS。
在所选EPWMSYNCPER的上升边缘上:RAMPMAXREFA、RAMPDECVALA和ramplya装载阴影寄存器。RAMPSTS加载RAMPMAXREFS,并在RAMPDLYA计数器达到零时开始递减。
在RAMPLOADSEL = 1的COMPHSTS的上升边缘:RAMPMAXREFA, RAMPDECVALA和ramplya加载阴影寄存器。RAMPSTS装载RAMPMAXREFS并停止递减。
在RAMPLOADSEL = 0的COMPHSTS的上升沿上:RAMPSTS加载RAMPMAXREFA并停止递减。
此外,如果RAMPSTS的值达到零,RAMPSTS寄存器将保持静态为零,直到接收到下一个EPWMSYNCPER。这些状态变化在图中的斜坡生成器框图中进行了说明。

Ramp Generator Behavior at Corner Cases

由于斜坡生成器在EPWMSYNCPER和COMPHSTS的每个上升沿上进行状态更改,因此当这两个事件同时发生或非常接近时,可以在实例上预期以下行为。
案例1:COMPHSTS上升沿在EPWMSYNCPER上升沿之前发生一个或多个周期。
当COMPHSTS上升沿事件发生时,RAMPSTS停止递减。当RAMPDLYA达到0时,EPWMSYNCPER上升沿事件的RAMPSTS开始递减。
案例2:COMPHSTS上升沿与EPWMSYNCPER上升沿同时发生。
当RAMPDLYA达到0时,EPWMSYNCPER上升沿事件优先,RAMPSTS开始递减。COMPHSTS上升沿事件被忽略,不停止RAMPSTS。
案例3:在EPWMSYNCPER上升沿之后,RAMPDLYA达到0之前,compsts上升沿发生一个或多个周期。
当RAMPDLYA达到0时,RAMPSTS不会减少。
案例4:当RAMPDLYA从EPWMSYNCPER上升沿到达0时,COMPHSTS上升沿同时发生。
RAMPSTS不递减。

数字滤波器

数字滤波器工作于从输入端获取的FIFO采样(SAMPWIN)窗口。过滤器输出解析为样本窗口的多数值,其中多数值由阈值(THRESH)值定义。如果不满足多数阈值,则过滤器输出保持不变。
一个预刻度函数(CLKPRESCALE)决定滤波器采样率,其中滤波器FIFO捕获一个采样每一个预刻度系统时钟。FIFO中的旧数据将被丢弃。
请注意,对于SAMPWIN, THRESH和CLKPRESCALE,数字滤波器使用的内部数字在所有情况下都是+ 1。本质上,samples = SAMPWIN + 1, threshold = THRESH + 1, precale = CLKPRESCALE + 1。
数字滤波器的概念模型如图

过滤器实现的等效C代码为:
if (FILTER_OUTPUT == 0) {
if (Num_1s_in_SAMPWIN >= THRESH) {
FILTER_OUTPUT = 1;
}
}
else {
if (Num_0s_in_SAMPWIN >= THRESH) {
FILTER_OUTPUT = 0;
}
}

滤波器初始化顺序

为保证数字滤波器的正常工作,建议按以下顺序进行初始化:

  1. 配置并启用比较器进行操作。
  2. 配置数字滤波器参数操作:
    •设置SAMPWIN采样的数量在FIFO窗口监控。
    •设置THRESH为多数资格所需的阈值。
    •设置CLKPRESCALE为数字滤波器时钟预调值。
  3. 通过设置FILINIT初始化数字FIFO窗口中的样例值。
  4. 如果需要锁存路径,使用COMPSTSCLR清除COMPSTS锁存。
  5. 配置CTRIP和CTRIPOUT信号路径。
  6. 如果需要,可以配置目的模块,例如ePWM、GPIO等,以接受过滤后的信号。

使用CMPSS

LATCHCLR、EPWMSYNCPER和EPWMBLANK信号

LATCHCLR信号在所需延迟后保持数字滤波器、同步块和锁存器输出复位(0)。软件中通过xLATCHCLR (x = H或L)激活LATCHCLR信号,设置xSYNCCLREN (x = H或L)也可以通过EPWMSYNCPER激活LATCHCLR信号。如果需要一个更长的LATCHCLR信号,EPWMBLANK信号可以通过设置BLANKEN来扩展LATCHCLR信号。
EPWMSYNCPER和EPWMBLANK (BLANKWDW)分别来自EPWM的Time-Base子模块和Digital Compare子模块。有关这两种信号如何产生的详细描述,请参阅增强型脉宽调制器(ePWM)一章中各自的子模块部分。
当COMPDACCTL[SWLOADSEL] = 1时,加载DACxVALA的EPWMSYNCPER信号是电平触发加载。如果EPWM的TBCTR和TBPRD都为0,则EPWMSYNCPER保持在高位,并且无论COMPDACCTL[SWLOADSEL]的值如何,都立即从DACxVALS加载DACxVALA。因此,在将COMPDACCTL[SWLOADSEL]设置为1之前,请先配置EPWM。
CMPSS接收到EPWM的同步信号名称由“PWMSYNC”修改为“EPWMSYNCPER”(SYNCPER/PWMSYNCPER/EPWMxSYNCPER),避免与其他EPWM同步信号“EPWMSYNCI”和“EPWMSYNCO”混淆。有关这些信号的描述,请参见增强型脉宽调制器(ePWM)。

同步器,数字滤波器和锁存器延迟

同步块增加延迟1 ~ 2个sysclks。如果绕过数字滤波器(所有滤波器设置为0),数字滤波器将增加2 sysclks的延迟。锁存器增加1 sysclk延迟。

校准CMPSS

CMPSS有两个偏移误差源:比较器偏移误差和压缩器偏移误差。在数据表中,比较器偏移误差称为输入偏移误差,compdac偏移误差称为静态偏移误差。有关数值,请参见设备数据表。
如果比较器的两个输入都是从一个引脚驱动的,则只应用比较器偏移误差。然而,如果比较器的反相输入是由compdac驱动的,那么只有compdac偏移误差适用。这是因为compdac偏移错误包括比较器偏移错误。
由于存在偏移误差,必须对CMPSS进行校准,以确保跳闸达到预期水平。下面的流程概述了如果比较器的反相输入是从compdac驱动的,则如何执行校准。
校准前注意事项:

  1. 在比较器的非反相输入端需要一个静态直流信号。
  2. 校正时可以禁用磁滞,校正完成后可以重新启用磁滞。
  3. 噪声输入可能会使校准变得困难,因此根据非反相输入上的信号噪声程度,使用带有非零滤波器设置的锁存器。
    这种方法向下扫描compdac:
  4. 设置compdac的起始值为max, 0xFFF。
    •可选:与其设置compdac的起始值为最大值,不如设置为Vtarget + Static offset error + Margin。其中Vtarget是非反相输入上的近似直流电压,静态偏移误差是compdac偏移误差规范,余量是某种保护带。这可以导致更快的校准,但只有在Vtarget已知的情况下才有效。或者,如果Vtarget未知,可以使用ADC来转换Vtarget。
  5. compdac值递减1。
  6. 等待compdac解决。
  7. 清晰的门闩。
  8. 等待可能的闩锁设置。
  9. 如果设置了锁存器,则找到了跳闸码。
    •可选:可通过以下方式对行程码进行双重校验:a.将compdac值加1。
    b.清除门闩。
    c.等待可能的闩锁设置。
    d.闩锁可复位。
  10. 如果锁存器未设置,请返回步骤2并重复。
    如果比较器的两个输入都从一个引脚驱动,也可以校准CMPSS。对于这种情况,流量保持不变,但比较器反相引脚上的电压从外部扫过。

启用和禁用CMPSS时钟

如果CMPSS模块的时钟在比较器激活时被禁用,则可以预期以下行为:
•比较器不受影响,并继续从输入电压跳闸。
•如果参考12位DAC驱动比较器的负输入,负输入上的电压保持静态且不受影响,但DACVALA不能再从斜坡发生器或DACVALS更新。
•斜坡发生器,同步块和数字滤波器冻结在当前状态。

使能CMPSS时钟功能,使CMPSS时钟恢复到关闭前的状态。

寄存器

COMPCTL Register (Offset = 0h) [Reset = 0000h]

CMPSS比较器控制寄存器
在这里插入图片描述

在这里插入图片描述

COMPHYSCTL Register (Offset = 1h) [Reset = 0000h]

比较器迟滞控制寄存器
在这里插入图片描述

COMPSTS Register (Offset = 2h) [Reset = 0000h]

CMPSS比较器状态寄存器
在这里插入图片描述

COMPSTSCLR Register (Offset = 3h) [Reset = 0000h]

CMPSS比较器状态清除寄存器
在这里插入图片描述

COMPDACCTL Register (Offset = 4h) [Reset = 0000h]

DAC控制寄存器

在这里插入图片描述

在这里插入图片描述

DACHVALS Register (Offset = 6h) [Reset = 0000h]

CMPSS高DAC值影子寄存器
在这里插入图片描述

DACHVALA Register (Offset = 7h) [Reset = 0000h]

CMPSS高DAC值活动寄存器
在这里插入图片描述

RAMPMAXREFA Register (Offset = 8h) [Reset = 0000h]

CMPSS斜坡最大参考活动寄存器

在这里插入图片描述

RAMPMAXREFS Register (Offset = Ah) [Reset = 0000h]

CMPSS斜坡最大参考阴影寄存器
在这里插入图片描述

RAMPDECVALA Register (Offset = Ch) [Reset = 0000h]

CMPSS斜坡减减值活动寄存器
在这里插入图片描述

RAMPDECVALS Register (Offset = Eh) [Reset = 0000h]

斜坡递减值阴影寄存器
在这里插入图片描述

RAMPSTS Register (Offset = 10h) [Reset = 0000h]

匝道状态寄存器
在这里插入图片描述

DACLVALS Register (Offset = 12h) [Reset = 0000h]

低DAC值影子寄存器
在这里插入图片描述

DACLVALA Register (Offset = 13h) [Reset = 0000h]

CMPSS低DAC值活动寄存器
在这里插入图片描述

RAMPDLYA Register (Offset = 14h) [Reset = 0000h]

CMPSS匝道延迟活动寄存器
在这里插入图片描述

RAMPDLYS Register (Offset = 15h) [Reset = 0000h]

CMPSS斜坡延迟阴影寄存器
在这里插入图片描述

CTRIPLFILCTL Register (Offset = 16h) [Reset = 0000h]

CTRIPL滤波器控制寄存器
在这里插入图片描述

CTRIPLFILCLKCTL Register (Offset = 17h) [Reset = 0000h]

CTRIPL滤波器时钟控制寄存器
在这里插入图片描述

CTRIPHFILCTL Register (Offset = 18h) [Reset = 0000h]

CTRIPH滤波器控制寄存器
在这里插入图片描述

CTRIPHFILCLKCTL Register (Offset = 19h) [Reset = 0000h]

CTRIPH滤波器时钟控制寄存器
在这里插入图片描述

COMPLOCK Register (Offset = 1Ah) [Reset = 0000h]

CMPSS锁寄存器

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值