Edit online

数字输出控制

上图以高位比较器的输出为例,后续会进行四级的逻辑操作,依次是:

  1. 比较器输出,此时的信号为异步信号COH_ASYNC,该通路可以支持输出反相功能;

  2. 输出同步,采用SYS_CLK对比较器的输出信号进行同步,得到同步信号COH_SYNC;

  3. 输出滤波,采用数字滤波器,对上级信号进行数字滤波,得到信号COH_SYNC_FLT;

  4. 输出锁存,采用SR锁存器,锁存输出结果后与COH_ASYNC进行OR逻辑,得到信号COH_LT。

上述的信号,作为信号源,通过寄存器的选择可以使能作为COH_PWM、COH_GPIO或COH_IRQ输出。

数字输出的控制,低位比较器与高位比较器进行相同的处理。

数字滤波器

数字滤波器实现的方式,等效如下的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;
    }
}

比较器输出选择

高低位比较器的输出均可以选择作为:

  • PWM的保护信号(COH_PWM、COL_PWM、COHL_PWM),触发PWM进入故障保护状态

  • IRQ信号(COH_IRQ、COL_IRQ),触发进入中断函数

  • GPIO信号(COH_GPIO、COL_GPIO、COHL_GPIO),将比较的输出信号通过GPIO管脚输出片外