TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430FR5969 量产死机问题,望大神指教。谢谢!急急急!

现象:设备自运行一段时间出现死机,目前200台中出现6台,死机后不会被狗咬重启(狗失效),外部无源晶振停振(示波器抓不到波形),只有通过拔插电池或者拉低rest脚才能重启,重启后又正常,在放置一段时间才会出现。

功能:设备启了2个定时器,TA3周期处理主业务,TA2定时触发ADC采集数据。TA3识别采集值,判断被采设备状态,如果异常mcu会从LPM3唤醒进入AM状态,上送数据到汇集,然后在切回LPM3;其中ADC由定时器触发,采用内部基准(初始化时候设置REFON=0),ADC采集完成触发中断,中断搬移数据到数据池。

配置:

定时器:

TA2CTL = 0;
TA2CTL |= TASSEL__ACLK 
|MC__UP
|TACLR;
TA2CCTL0 = 0;
TA2CCTL1 = 0;
TA2CCTL0 &= ~(CCIE|CCIFG);
TA2CCTL1 &= ~(CCIE|CCIFG);
TA2R = 0; 
TA2CCR0 = 0; 
TA2CCR1 = 0;
TA2CCTL1 |= OUTMOD_7;
TA2EX0 = 0;

TA3CTL = 0;
TA3CTL |= TASSEL__ACLK 
|MC__UP 
|TACLR; 

TA3CCTL0 = 0;
TA3CCTL0 &= ~(CCIE|CCIFG);
TA3R = 0; 
TA3CCR0 = 0; 
TA3EX0 = 0;

初始化完成后配置TA2CCR0,TA2CCR1(TA2CCR0>TA2CCR1); TA3CCR0, 及TA3中断使能。

ADC:

REFCTL0 |= REFVSEL_3; REFCTL0 &= ~REFON;

ADC12CTL1 |= ADC12SHP 
|ADC12CONSEQ_1 
|ADC12SHS_5 
|ADC12SSEL_0; 

ADC12CTL2 |= ADC12RES_2;
ADC12CTL3 |= ADC12CSTARTADD_5 | ADC12TCMAP | ADC12BATMAP;

ADC12MCTL5 |= ADC12VRSEL_1 | ADC12INCH_2 ; 
ADC12MCTL6 |= ADC12VRSEL_1 | ADC12INCH_3 | ADC12EOS; 
ADC12MCTL7 |= ADC12VRSEL_1 | ADC12INCH_6; 
ADC12MCTL8 |= ADC12VRSEL_1 | ADC12INCH_30; 

ADC12IER0 = ADC12IE6;

ADC12CTL0 |= ADC12ON 
| ADC12MSC
| ADC12ENC
| ADC12SHT1_7;

时钟配置:

PJSEL0 |= PJ_LFXIN + PJ_LFXOUT;
FRCTL0 = FRCTLPW | NWAITS_1;
PM5CTL0 &= ~LOCKLPM5; 
CSCTL0_H = CSKEY >> 8;
CSCTL1 = DCOFSEL_4 + DCORSEL;
CSCTL2 = SELA__LFXTCLK |SELM__DCOCLK;

CSCTL3 = DIVA__1 
|DIVS__16 
|DIVM__1;

CSCTL4 &= ~(LFXTOFF);
do {
CSCTL5 &= ~(LFXTOFFG|HFXTOFFG);
SFRIFG1 &= ~OFIFG; } while (SFRIFG1&OFIFG); 

SFRIE1 |= (OFIE | VMAIE);

CSCTL0_H = 0;

目前怀疑踩到MSP430FR5969Erratasheet.pdf 中PMM24和PMM31

Device may enter lockup state during wake-up from LPM3 and LPM4
Device may enter lockup state during transition from AM to LPM2/3/4
    The device might enter lockup state if the MODOSC is requested (e.g. triggered by
    ADC) or removed (e.g. end of ADC conversion) during a power mode transition from AM
    to LPM2/3/4 (e.g. during ISR exits or Status Register modifications).


麻烦各位大神帮忙看下,谢谢!!

灰小子:

这种情况也不能排除跑飞的。

可以先按照MSP430FR5969Erratasheet中的解决方法试一下

Susan Yang:

晶振停振是不是有可能是ESD的问题?

另外建议您先用LPM2或者LPM1试试还是否会出现这样的情况

ming li7:

回复 Susan Yang:

hi, Susan Yang

    1、先前有做过3轮的4级防护测试,未发现问题。

    2、LPM2模式测试暂时未出现问题。

   3、调试版本引出MCLK、SMCLK、ACLK,发现出问题时候这几个输出脚都采不到频率。

    麻烦帮忙看看会是什么问题导致这种现象(本地先前有尝试,越界、溢出、空访问、除0、擦除代码区访问都未出现类似问题)。

    谢谢!!

 

ming li7:

回复 灰小子:

嗯嗯,已经在尝试挂机测试,暂未出现问题,谢谢!!

灰小子:

回复 ming li7:

3、调试版本引出MCLK、SMCLK、ACLK,发现出问题时候这几个输出脚都采不到频率。
这个是死机的时候采集不到,还是正常运行的时候采集不到?
死机的时候是msp430停止运行了,所以采集不到。
如果是正常运行的时候采集不到,要么是配置有问题,要么是msp430相关io坏了

ming li7:

回复 灰小子:

hi, 灰小子,正常时候能采集到,异常时候才采不到。

tingmeng yan:

回复 ming li7:

问题原因找到了吗?我现在也遇到你说的问题了,但是有时候能恢复,现场客户反馈有四台异常,10多天后客户寄回公司,返回后检查有只2台出现了异常。对异常的进行检测,现象如下:供电正常,晶振两个管脚电平都为0,感觉程序完全不运行,第二天设备恢复正常运行。

ming li7:

回复 ming li7:

PMM31本身不会影响晶振,但是MCU进入hang-up状态,WatchDog此时还在工作,会产生PUC,清除晶振和GPIO相关寄存器,但PUC不能恢复hang-up状态。—>可以参考下@tingmeng yan

tingmeng yan:

回复 ming li7:

那如何解决的?用外置看门狗?

赞(0)
未经允许不得转载:TI中文支持网 » MSP430FR5969 量产死机问题,望大神指教。谢谢!急急急!
分享到: 更多 (0)