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.

MSP430G2744: MSP430 gets burned

Part Number: MSP430G2744

Hello Team,

One of my customers got several MSP430G2744 burned (one is even smoked), so evidently too much current flows into MCU.

Attached is a schematics (as customer states, GPIOs are not connected, RT and R3 are not mounted, 32kHz crystall is not mounted), only LED is connected to port1. At default frequency 1MHz it works, but as soon as he modifies it to 10MHz, MCU gets burned.
Here is his code:

********************************************************************

#include "io430.h"

#include "in430.h"

#include "math.h"

 

#define PWM (1<<2)

#define LED1 (1<<7)

 

int main( void )

{

  unsigned short n,n1;

  // Stop watchdog timer to prevent time out reset

  WDTCTL = WDTPW + WDTHOLD;

//Init all pins

  P1DIR = 0;                        // P1 as input

  P2DIR = 0;                        // P2 as input

  P3DIR = 0;                        // P3 as input

  P4DIR = 0;                        // P4 as input

   //main loop

  BCSCTL2 = 0;

  DCOCTL = 0; //DCOx=0, MODx=0

  BCSCTL1 = 0x87; //RSELx = 7

  BCSCTL1 = 0x8D; // RSELx = 13 // intermediate value

  BCSCTL1 = 0x8E; // RSELx = 14 // frequency set to 10MHz

  DCOCTL = (3<<5)+0x10; // DCOx = 3, MODx=16

 

  P1DIR |= LED1;  // LED pin as output             

  P1OUT &= ~LED1; // LED ON              

 

 P2DIR |= PWM;  // pin is not connected             

 P2OUT &= ~PWM; 

 

 //мигаем

  while(1)

  {

       P1OUT |=  LED1; // LED OFF

      for(n=0;n<65000;n++);     //delay

     P1OUT &=  ~LED1; // LED ON

       for(n=0;n<65000;n++);    //delay

  }

  return 0;

}

***************************************************************

Could you please help to understand where ports are misconfigured? Or frequency change is wrong?

Best regards,

Ilya

  • Hello Ilya,

    A few things here. In order for the MSP430 to get potentially burn up like this, electrical over-stress must be introduced. This can be done via excess current draw, to high voltage applied to a pin, or ESD events to the part.

    Some causes for excess current draw of the MCU:

    • Electrical short between pins / power+ground
    • Powering an external chip via MSP430 GPIO ( never do this).
    • Exceeding current limits on a port or pin.
    • Exceeding voltage limits on a pin. Absolute max voltage on a pin defined in datasheet. Usually is equal to VCC + 0.3V.
    • ESD events that cause electrical shorts or breakdown of silicon inside chip. Please see the following application note. ()

    From the look of the schematic, I am worried that either they are powering another chip via GPIO, or if they are applying too much voltage onto a pin as they are dividing down 12V to sample with ADC.

    • Are there any other lines at that voltage that they have not dividing down correctly?
    • Does that 12V line vary significantly to raise the divided voltage to excessive limits?
    • What voltage is MSP_VCC?
    • They have three LEDs on the same port that potentially could be consuming too much current. Do they have current limiting resistors in between the MSP430 and LEDs?

    A few comments on schematic.

    • The MSP430 needs proper decoupling caps on DVCC. We recommend a 0.1uF (on schematic) and a 10uF (not on schematic) caps in parallel positioned as close as possible to the MSP430 on board. With the 10uF cap closer to the MSP430.
    • The Reset line requires a pull-up resistor to VCC and a cap to ground with a max value of 2.2nF. Please use a value of 1nf if using SBW communication to program the part. This setup can be seen in Figure 2-2 of the HW User Guide. ()

  • Hello Ilya,

    Did the above information help your issue?

**Attention** This is a public forum