最近陆续接到客户反馈,说是我们的产品计数功能出故障了,有时候会一直不停的计数。经过排查,故障可以复现,部分还在产线上的产品也有同样的问题。这款最开始使用是MCU是STC8H1K24,没有这个问题。后来24缺货,不得已买了28来用。
STC8H1K28系列共有五个外部中断,其中INT0用作计数检测,开启外部中断功能,INT2和INT3用作一般输入检测,没有开启外部中断功能。
经过实测,在INT2或INT3的外部电平发生变化时,INT0也会被触发,并且这时候去检测INT0的电平也是低电平。
于是开启INT2、INT3的外部中断功能,并添加定时器定时,发现在INT2或INT3触发外部中断功能后的10us内,INT0也将被触发。
因为INT2和INT3的检测功能是检测外部交流信号的,会有周期性的变化,从而导致INT0也会周期性的被触发。
重新设计电路,将需要作输入检测的电路更换到其他IO,原来INT2和INT3相关IO由输入检测改为输出控制,再进行测试,测试通过,INT0没有再被误触发。
不知道各位有没有遇到类似的问题,道理来讲,这完全不应该呀。 |