This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好,比较器没有复位成功的具体表现是什么,方便描述下吗?这个问题出现的概率是多大?
受到的是什么干扰?
另外图片好像上传失败了,如果重要的话麻烦请重新上传一下:
正常比较器时 是输出方波的,如果比较器 输出不变化1s 后看门狗复位。 示波器看到看门狗一直在复位。 这手动将复位脚 对地短接一下,复位ok ,比较器正常工作。 干扰源是 有另外一块线路板打开电机造成的。 概率不大 ,有时候几十次来一次,有时候几百次来一次。 这次用430的方案惨了 ,都快交货了 发现这个问题。 能不能 把我的问题 发到 英文网站 问一下? 很急!!!。 第一次遇到看门狗不能全复位的情况。
看门狗引起的复位是PUC,不是POR,而比较器的寄存器只会在POR时reset。[Ref F2 User Guide (SLAU144J) Table 21-1]
您可以尝试检查比较器初始化以查看它是否依赖于寄存器的复位值。(通常建议使用“=”而不是“|=”来设置它们。)
我在定时器中断中 打开 比较器
TA1CCTL0 &= ~CCIE ;
if( ch == 0 )
{
EnableRxB;
CACTL2 = P2CA4 + P2CA0 + P2CA3 + P2CA1 + CAF; //P1.2P1.5
}
else
{
EnableRxA;
CACTL2 = P2CA4 + P2CA3 + P2CA1 + CAF;
}
CACTL1 = CAON ;
EnableCap;
定时器中断 有波形发出。 比较器设置是正确的。 应该是比较器死了
您是在Timer的ISR中配置的比较器。
我们的工程师在errata TAB22中发现了一个已知的问题:Timer的寄存器在Watchdog Timer PUC之后被意外修改。
如果Timer没有正常工作,可能会导致比较器不能正常工作。
看门狗复位后 定时器会初始化。430抗干扰非常弱, 定时器受到干扰会死机。我在定时器中喂狗才使 看门狗复位。 我现在初始化时 先关闭比较器 再打开比较器(相当于给比较器断了一次电),测试了几千次没有遇到死机。 我特地用stm32f030 和g2313 都不开狗的 情况下 同时开机干扰,g2313死了 030 正常。