Edit online

数字输出控制

3 Mar 2025
Read time: 1 minute(s)

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

数字输出控制逻辑流程



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

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

  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;
    }
}
1. 滤波器参数说明

参数名称

描述

FILTER_OUTPUT

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

Num_1s_in_SAMPWIN

采样窗口中值为 1 的数量

Num_0s_in_SAMPWIN

采样窗口中值为 0 的数量

THRESH

翻转输出的阈值

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