数字输出控制

上图以高位比较器的输出为例,后续会进行四级的逻辑操作,依次是:
-
比较器输出,此时的信号为异步信号COH_ASYNC,该通路可以支持输出反相功能;
-
输出同步,采用SYS_CLK对比较器的输出信号进行同步,得到同步信号COH_SYNC;
-
输出滤波,采用数字滤波器,对上级信号进行数字滤波,得到信号COH_SYNC_FLT;
-
输出锁存,采用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管脚输出片外