Edit online

功能描述

Edit online

CPM 内置比较器



1. CPM 内置比较器结构
所示,CPM 内置两路比较器:
1. 高位比较器与低位比较器特性对比

比较器

正端电压输入

负端电压输入

备注

高位比较器 (COMPH)

外部输入信号 CPM_HP

可选择外部输入信号 CPM_HNHDAC 的信号。HDAC 的输出信号可以通过软件配置寄存器控制,或由内置的斜波功能模块控制。

当比较器的正端输入电压大于负端输入电压时,比较器输出高电平,否则输出低电平。

低位比较器 (COMPL)

外部输入信号 CPM_LP

可选择外部输入信号 CPM_LNLDAC 的信号。LDAC 的输出信号只能通过软件配置寄存器控制。

Edit online

DAC 更新模式

高位和低位的比较器各自对配备了一个内置的 12-bit DAC,分别称为 HDAC 和 LDAC。HDAC 与 LDAC 规格基本相同。

以 HDAC 为例,通过配置输出寄存器 DACH_VALS,HDAC 会输出相应的电压 HDAC_OUT。输出电压的计算公式为:HDAC_OUT = VCC33_IO ×(DACH_VALS ÷ 4096),其中 VCC33_IO 是 IO 输入电压。

  • HDAC 的输出电压的更新,支持两种模式:寄存器更新和斜坡模块控制更新,如所示。在寄存器更新模式中,可以通过时钟信号 SYS_CLK 或同步信号 SYNC 触发读取影子寄存器更新。斜坡模块的更新方式可参考



    2. HDAC 结构框图
  • LDAC 的输出电压更新仅支持寄存器更新模式,不支持斜坡模块更新,寄存器的更新模式与 HDAC 的一致。



    3. LDAC 结构框图
Edit online

斜坡模块配置

斜坡模块 (RAMP_Module) 用于生成递减的斜坡信号 RAMP_OUT,控制 HDAC 的输出电压。CPM 可以利用此功能生成与输入电压相关的 PWM 信号。例如,在电源应用中,它可以用来控制反馈电压的 PWM 占空比。



4. HDAC 斜坡模块

所示,斜坡模块可以通过以下寄存器配置并结合 SYNC 信号触发,生成精确控制的递减斜坡信号 RAMP_OUT。

2. 斜坡模块配置寄存器描述

寄存器名称

功能描述

更新方式

更新触发信号

备注

RAMP_MAX_REFS

设置斜坡信号的起始点。斜坡信号从该寄存器设置的数值开始递减。

影子更新

SYNC

无单位,具体数值由应用决定

RAMP_DEC_VALS

设置斜坡信号每次递减的幅度值。

影子更新

SYNC

无单位,具体数值由应用决定

RAMP_DLYS

设置斜坡模块启动的延迟时间。

影子更新

SYNC

延迟时间为 SYS_CLK 周期数

注:
  • SYS_CLK:斜坡信号每次递减的时钟频率,由 CPM 模块提供,单位 Hz。
  • 影子更新:表示寄存器的更新不会立即生效,而是在同步信号 SYNC 到来时,影子寄存器中的值才会被应用到实际寄存器中。
  • SYNC:同步信号,用于触发影子寄存器的更新。每次 SYNC 到来时,影子寄存器会更新,使用当前的 RAMP_MAX_REFS、RAMP_DEC_VALS 和 RAMP_DLYS 值来控制斜坡信号的生成。

斜坡信号 RAMP_OUT 典型工作时序

以下是斜坡信号 RAMP_OUT 的典型工作时序示例:



时间点

事件描述

T0

SYNC 信号到来,触发 RAMP_MAX_REFS、RAMP_DEC_VALS 和 RAMP_DLYS 影子寄存器更新,斜坡模块启动 (RAMP_DLYS = 0)。

由于 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_CLK

) 。

T3

斜坡模块启动,RAMP_OUT 开始递减。

在 T3 ~ T4 时间段,RAMP_OUT 尚未低于 CPM_HP 的电压水平,比较器未发生反转,斜坡信号仍在持续递减。

T4

SYNC 信号到来,影子寄存器更新,斜坡模块继续递减。

T5

比较器信号翻转,斜坡模块停止并恢复到 RAMP_MAX_REFS 起始值。

T6

输入信号 CPM_HP 跳变,导致比较器信号反转。SYNC 信号同时到来,斜坡模块继续按照新一轮寄存器值递减。

注: 斜坡控制模块的递减计数数据位宽为 16 位。数字处理时,最终会截取高 12 位作为 RAMP_OUT 信号输出给 HDAC。
Edit online

数字输出控制

CPM 模块的数字输出控制逻辑用于处理比较器输出信号,经过多级逻辑操作后,生成可用于 PWM 保护中断触发GPIO 输出的信号。高位比较器和低位比较器的处理逻辑相同。

数字输出控制逻辑流程



5. 数字输出控制逻辑流程

以高位比较器的输出为例,数字输出控制逻辑分为四级操作,依次如下:

  1. 输出异步,此时的信号为异步信号 COH_ASYNC,该通路可以支持输出反相功能。
  2. 输出同步,采用 SYS_CLK 对比较器的输出信号进行同步,得到同步信号 COH_SYNC。
  3. 输出滤波,采用数字滤波器,对上级信号进行数字滤波,得到信号 COH_SYNC_FLT。
  4. 输出锁存,采用 SR 锁存器,锁存输出结果后与 COH_ASYNC 进行 OR 逻辑,得到信号 COH_LT。

数字滤波器

数字滤波器通过采样窗口内的数据判断是否翻转输出信号,等效如下的 C 代码实现:

//当输出为 0 时,检查采样窗口中 1 的数量

if (FILTER_OUTPUT == 0) {

  //当采样窗口里数据为 1 的数量大于阈值,则输出信号翻转

  if (Num_1s_in_SAMPWIN >= THRESH) {

        FILTER_OUTPUT = 1;
  }
}

//当输出为 1 时,检查采样窗口中 0 的数量

else {

    //当采样窗口里数据为 0 的数量大于阈值,则输出信号翻转

    if (Num_0s_in_SAMPWIN >= THRESH) {

        FILTER_OUTPUT = 0;
    }
}
3. 滤波器参数说明

参数名称

描述

FILTER_OUTPUT

滤波器的当前输出状态 (0 或 1)

Num_1s_in_SAMPWIN

采样窗口中值为 1 的数量

Num_0s_in_SAMPWIN

采样窗口中值为 0 的数量

THRESH

翻转输出的阈值

例如:采样窗口中 1 或 0 的数量超过该值时翻转输出

Edit online

中断信号

通过寄存器 COH_IRQ_EN/ COL_IRQ_EN 使能,可选择比较器的输出信号 COH_IRQ、COL_IRQ 触发 CPM 中断的产生。

通过配置寄存器的模式位,可以选择具体的触发模式:

  • 电平模式:支持高/ 低电平触发中断

    当比较器输出信号保持高电平或低电平时,将持续触发中断。

  • 边沿模式:支持上升沿/ 下降沿/ 双沿触发中断

    在信号由低到高或由高到低的瞬间触发一次中断。