斜坡模块
对于斜坡模块的典型应用,是 CPM 可以利用此功能产生与输入电压相关的 PWM 信号,例如电源应用上的反馈电压控制 PWM 占空比。

如上图所示,RAMP_Module斜坡模块产生信号RAMP_OUT,控制HDAC的输出电压值,产生一个递减输出的斜坡信号,控制的相关配置寄存器如下描述:
-
斜坡信号通过寄存器RAMP_MAX_REFS、RAMP_DEC_VALS和RAMP_DLYS进行控制;
-
寄存器RAMP_MAX_REFS为控制斜坡信号的起始点,斜坡信号从寄存器RAMP_MAX_REFS所设置的数值开始进行递减,该寄存器采用影子更新的方式,更新的触发信号为同步信号SYNC;
-
寄存器RAMP_DEC_VALS为控制斜坡信号的每次递减的幅度值,该寄存器采用影子更新的方式,更新的触发信号为同步信号SYNC;
-
寄存器RAMP_DLYS用于控制斜坡模块启动的Delay时间长度(单位是SYS_CLK),该寄存器采用影子更新的方式,更新的触发信号为同步信号SYNC;
-
在每次同步信号SYNC的到来,都会进行影子寄存器的更新,也就是采用RAMP_MAX_REFS、RAMP_DEC_VALS和RAMP_DLYS的当前值控制斜坡信号的产生;
-
斜坡信号每次递减的时钟频率为CPM模块的SYS_CLK。
以下为斜坡信号RAMP_OUT的产生的例子:

- 在T0时刻,为同步信号SYNC到来的时刻,触发RAMP_MAX_REFS、RAMP_DEC_VALS和RAMP_DLYS的影子寄存器的更新,并且触发斜坡控制开始启动,由于此次RAMP_DLYS设置为0,所以RAMP_OUT从当前的RAMP_MAX_REFS开始递减;
- 在T1时刻,RAMP_OUT控制HDAC的输出低于CPM_HP的电压值是,CPMH的输出比较信号COH_SYNC_FLT进行翻转,此时会触发斜坡模块停止递减,并且输出恢复至当前的RAMP_MAX_REFS,那么相应的HDAC的输出也便会起始值,所以比较器的输出再次反转;
- 在T2时刻,也是同步信号SYNC到来的时刻,触发新的一轮影子寄存器更新,由于此轮的RAMP_DLYS为非0值,所以在延迟(RAMP_DLYS * TSYS_CLY)的时间后,也就是在T3时刻,斜坡控制才开始启动;
- 在T3~T4时间段,RAMP_OUT没有达到低于CPM_HP的电压水平,还没有发生比较器的反转,此时的斜坡还在持续递减;
- 在T4时刻,同步SYNC信号到来,此时会在更新新的影子寄存器,继续按照之前的描述一样进行工作,在T5时刻比较器发生了反转,触发斜坡信号停止并且恢复至RAMP_MAX_REFS;
- 在T6时刻,由于输入信号CPM_HP发生了跳变,导致比较器的信号反转,但是此时也到来了SYNC信号,这样的情况下,斜坡控制模块不会停止,会继续按照新的一轮寄存器值进行递减计数。
注: 斜坡控制模块进行的递减计数的数据位宽是16-bit,数字处理的最后对计算的结果进行高12-bit的截取,作为RAMP_OUT信号输出给HDAC。