比较器子系统是围绕许多模块构建的。每个子系统包含两个比较器,两个参考12位dac,两个数字滤波器和一个斜坡发生器。比较器在每个模块内用“H”或“L”表示,其中“H”和“L”分别表示高和低。每个比较器产生一个数字输出,表示正输入的电压是否大于负输入的电压。比较器的正输入由外部引脚驱动。
负输入可以由外部引脚或可编程参考12位DAC驱动。每个比较器输出通过一个可编程的数字滤波器,可以去除假跳闸信号。如果不需要过滤,也可以使用未过滤的输出。斜坡发生器电路可选用于控制子系统中高比较器的参考12位DAC值。
每个CMPSS的包括:
•两个模拟比较器
•两个可编程的参考12位dac
•一台斜坡发生器
•两个数字滤波器
•能够与EPWMSYNCPER同步子模块
•能够同步输出与syscclk
•闩锁输出能力
•能够反转输出
•选择使用输入迟滞
•选择比较器的负输入由外部信号或参考DAC驱动
•选择VDDA或VDAC作为DAC参考电压
内部框图如下:
比较器在正输入电压大于负输入电压时产生高数字输出,在正输入电压小于负输入电压时产生低数字输出。
比较器如下图:
每个Reference DAC可以配置为驱动一个参考电压到其各自比较器的负输入。
每个Reference DAC都有两组DACxVAL寄存器DACxVALA和DACxVALS。DACxVALA是一个只读寄存器,主动控制12位DAC的参考值。DACxVALS是一个可写的影子寄存器,它可以立即加载到DACxVALA中,或者与下一个EPWMSYNCPER事件同步。High Reference DAC (DACH)可以选择从斜坡发生器而不是DACHVALS获取其DACHVALA值。Reference DAC的工作范围受DACREF和VSSA的限制。高压基准默认为VDDA,也可以配置为VDAC。
Reference DAC如下图所示:
当选择DACH时,斜坡发生器产生一个下降斜坡输入。在这种模式下,Reference DAC使用RAMPSTS倒数寄存器的最高12位作为输入。RAMPSTS倒数寄存器的低4位有效地充当下降斜坡率的预标度,可与RAMPDECVALA配置。
通过设置DACSOURCE = 1来启用斜坡生成器。在设置DACSOURCE = 1时,RAMPSTS的值将从RAMPMAXREFS加载,并且寄存器保持静态,直到接收到所选的EPWMSYNCPER信号。在接收到选定的EPWMSYNCPER信号后,在每个后续的syscclk周期上从RAMPSTS中减去RAMPDECVALA的值。为了防止减法在EPWMSYNCPER事件之后开始syscclk周期
作为延迟计数器的RAMPDLYA寄存器可用于阻止RAMPSTS减法。在接收到EPWMSYNCPER事件时,RAMPDLYA的值每减少一个syscclk循环直到寄存器归零。RAMPSTS减法只会在RAMPDLYA是零。
斜坡发生器在DACSOURCE、EPWMSYNCPER和COMPHSTS的每个上升沿上进行状态变化。在DACSOURCE的上升边缘,RAMPMAXREFA, RAMPDECVALA和RAMPDLYA加载他们的影子寄存器。RAMPSTS通过RAMPMAXREFS加载。在选定的EPWMSYNCPER的上升边缘,RAMPMAXREFA, RAMPDECVALA和RAMPDLYA加载其阴影寄存器。RAMPSTS使用RAMPMAXREFS加载,并在RAMPDLYA计数器达到0时开始递减。在RAMPLOADSEL = 1的COMPHSTS的上升边缘,RAMPMAXREFA, RAMPDECVALA和RAMPDLYA加载它们的阴影寄存器。RAMPSTS使用RAMPMAXREFS加载,并停止递减。在RAMPLOADSEL = 0的COMPHSTS上升边缘,RAMPSTS加载RAMPMAXREFA并停止减量。
此外,如果RAMPSTS的值达到零,则RAMPSTS寄存器将保持静态的零值,直到接收到下一个EPWMSYNCPER。
寄存器状态变化如下图所示:
由于斜坡生成器在EPWMSYNCPER和COMPHSTS的每个上升边缘上都进行状态更改,因此当这两个事件同时发生或非常接近时,可以预期以下行为。
案例1:COMPHSTS上升边发生在EPWMSYNCPER上升边之前的一个或多个周期。RAMPSTS在COMPHSTS上升边缘事件时停止衰减。当RAMPDLYA达到0时,RAMPSTS在EPWMSYNCPER上升沿事件上开始衰减。
案例2:COMPHSTS上升边与EPWMSYNCPER上升边同时发生。COMPHSTS上升沿事件优先,RAMPSTS停止递减。当RAMPDLYA达到0时,EPWMSYNCPER上升边缘事件被忽略并且不开始减少RAMPSTS。
案例3:COMPHSTS上升沿发生在EPWMSYNCPER上升沿之后,RAMPDLYA达到0之前的一个或多个周期。当RAMPDLYA达到0时,RAMPSTS不会减少。
案例4:当RAMPDLYA从EPWMSYNCPER上升边达到0时,COMPHSTS上升边同时出现。RAMPSTS不会减少。
如下图:
数字滤波器工作在输入的FIFO采样(SAMPWIN)窗口上。过滤器输出解析为示例窗口的多数值,其中多数值由阈值(THRESH)定义。如果大多数阈值不满足,则过滤器输出保持不变。为了正确操作,THRESH的值必须大于SAMPWIN / 2,且小于或等于SAMPWIN。预标度函数(CLKPRESCALE)决定滤波器采样率,滤波器FIFO在每个预标度系统时钟捕获一个样本。来自FIFO的旧数据被丢弃。
注意,对于SAMPWIN、THRESH和CLKPRESCALE,数字滤波器使用的内部数字在所有情况下都是+1。
本质上,samples = SAMPWIN + 1, threshold = THRESH + 1, precale = CLKPRESCALE + 1。
数字滤波器概念模型如下图:
为保证数字滤波器的正常工作,建议初始化顺序如下:
1. 配置并启用比较器进行操作
2. 配置数字滤波器参数进行操作
•在FIFO窗口设置SAMPWIN为要监控的样本数量
•设置多数票资格所需的门槛THRESH
•设置CLKPRESCALE为数字滤波器时钟预缩放值
3.通过设置FILINIT在数字FIFO窗口中初始化示例值
3. 如果需要锁存路径,则通过COMPSTSCLR清除COMPSTS锁存
4. 配置CTRIP和CTRIPOUT信号路径
5. 如果需要,可以配置ePWM和GPIO模块接受过滤后的信号
LATCHCLR信号保持锁存器输出在复位(0)。它在软件中使用xLATCHCLR(x=“H”或“L”)激活。当设置xSYNCCLREN(x=“H”或“L”)时,EPWMSYNCPER也可以激活它。EPWMSYNCPER来自EPWM的Time-Base子模块。有关该信号如何产生的详细描述,请参阅EPWM的Time-Base子模块章节。
当COMPDACCTL [SWLOADSEL] = 1是一级触发加载时,加载DACxVALA的EPWMSYNCPER信号。如果EPWM的TBCTR和TBPRD都为0,EPWMSYNCPER将保持在高水平,而DACxVALA将立即从DACxVALS加载,而不管COMPDACCTL [SWLOADSEL]的值是多少。因此,建议在将COMPDACCTL [SWLOADSEL]设置为1之前,先配置EPWM。
同步块增加1-2 syclks的延迟。如果数字滤波器被绕过(所有滤波器设置为0),数字滤波器将增加2 syclks的延迟。闩锁增加1 syclk延迟。
CMPSS有两个偏移误差源:比较器偏移误差和compdac偏移误差。在数据手册中,比较器偏移量错误称为Input reference offset error, compdac偏移量错误称为Static offset error。有关它们的值,请参阅设备特定数据手册。
如果比较器的两个输入都由一个引脚驱动,则只有比较器偏移量误差适用。但是,如果比较器的反向输入是由compdac驱动的,那么只有compdac的偏移误差适用。这是因为compdac偏移误差包括比较器偏移误差。
由于偏移误差,建议对CMPSS进行校准,以确保起下钻发生在预期水平。下面的流程概述了如果比较器的反向输入从compdac驱动,如何进行校准。
在校准之前配置:
1. 比较器的非反相输入端需要一个静态直流信号。
2. 校准时应禁用迟滞。校准完成后可以重新启用。
3.噪声输入会使校准变得困难,因此建议使用非零滤波器的锁存器,设置取决于非反相输入信号的噪声大小。
这种方法向下扫描compdac:
1. 将开始的compdac值设置为max, 0xFFF。
•可选:与其将compdac的初始值设置为max,不如将其设置为Vtarget +静态偏移误差+ Margin。其中Vtarget为非反相输入上的近似直流电压,Static offset error为compdac offset error specification, Margin为一定量的保护带。这可以导致更快的校准,但只有在已知Vtarget的情况下才会起作用。另外,如果Vtarget是未知的,ADC可以用来转换它。
2. 将compdac值减去1。
3.等待compdac的解决。
4. 清晰的门闩。
5. 等待可能的闩锁设置。
6. 如果设置了锁存器,则发现跳闸代码退出。
•可选:可通过以下方式重复检查行程码:
I、compdac值增加1。
Ⅱ、清晰的门闩。
Ⅲ、等待可能的闩锁设置。
Ⅳ、闩锁应不设置。
7. 若未设置锁扣,请返回步骤2重复操作。
如果比较器的两个输入都由一个引脚驱动,也可以校准CMPSS。在这种情况下,流量保持不变,但比较器反向引脚上的电压被扫向外部。
如果CMPSS模块的时钟在比较器激活时被禁用,则可以预期以下行为:
比较器不受影响,并将继续从其输入电压跳闸。
•如果参考12位DAC驱动比较器的负输入,负输入上的电压保持不变且不受影响,但DACVALA将不再从斜坡发生器或DACVALS更新。
•斜坡发生器,同步块和数字滤波器冻结在他们的当前状态。
使能时钟使时钟恢复到关闭时钟前的状态
请参阅设备特定数据手册。