I designed a product using MSP430F5438. It is powered by battery and the PCB & battery are molded by epoxy for waterproof. So the power is NEVER turned off.
In some case the board reset itself using WDT and in other case reset occurred from voltage drop of battery. In my board, reset itself is not a serious problem if it works normally after reset.
My company has manufactured the product more than 20-thousand from 3 years ago. Unfortunately some of my product died in recent days. They died and don’t works.
We tested the product prior to delivery in regular manner and it works normally several months in customer’s site. Then they suddenly died. I collected and checked them. Their status is;
- VCC pins are high
- RST/NMI pin is high
- but XIN and XOUT are LOW(no bias) - my board use external oscillator
- Cannot find any abnormal status from other pins.
When I reset them (assert low shortly at RST/NMI pin or turn off->on power), they work normally. – in this case XIN and XOUT has bias and external oscillator runs again.
It is very hard to make the same fault status. I tried but failed.
I am not sure but I think this problem came from reset because XIN and XOUT are LOW. In my board, these pins must have DC bias right after reset. My firmware is started as follows;
WDTCTL = WDTPW | WDTHOLD;
UCSCTL3 |= SELREF_2;
P7SEL |= 0x03;
UCSCTL6 &= ~(XT1OFF
UCSCTL6 |= XCAP_3;
UCSCTL4 &= 0xF8FF;
UCSCTL4 |= SELA_0;
__bis_SR_register(SCG0);
UCSCTL0 = 0x0000;
UCSCTL1 = DCORSEL_6;
UCSCTL2 = FLLD_1 + 249;
__bic_SR_register(SCG0);
__delay_cycles(250000);
Please help me. Thank you.