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.

CCS/MSP430G2553: Working MSP430g2553 Hang

Part Number: MSP430G2553


Tool/software: Code Composer Studio

I am using msp430g2553 controller, some time my working device stop sending uart data,  even not revived extern interrupt but after one power cycle it's start working!!  

if anybody have face similar problem , please help me out.

  • Are you using a LaunchPad, EVM, or custom board? What FET tool is being used and what device are you communicating with? What is your system frequency/baud rate and what code examples did you source from? Have you used the CCS debugger or oscilloscope/logic analyzer images to further investigate your issue?

    Regards,
    Ryan
  • Thanks Ryan,

    msp430g2553 is communicating with soc(TI DM814X) uart ,  using  16MHz freq. & 115200 baud rate, in my stress testing some time i seen when i given extern interrupt on interrupt pin.

    my msp hang(its very rare). but it's happen.

    Code::

    #pragma vector=PORT2_VECTOR
    __interrupt void Port_2(void)
    {
        if (P2IFG & BIT5)
        {
            P2IFG &= ~BIT5;                         // P2.5 IFG cleared
            P2IE &= ~BIT5;                         // P2.5 interrupt disabled
        }
    }

    TA1CCTL0 = CCIE;                                   // enable timer isr to handle this events
    TA1CCR0  = TIMER1_DURATION_10m;
     TA1CTL   = TASSEL_2 + ID_3 + MC_1 + TACLR;

    }

    // in my timer1 isr


    #pragma vector=TIMER1_A0_VECTOR
    __interrupt void Timer_A1 (void)
    {

    if (P2IES & BIT5)
    {
                    if (!(PORT5 & BIT5))
                    {
                   
                        P2IES ^= (BIT5) ;                        // Now we need to change the IES bit to detect opposite event.
                        P2IE |= BIT5;                         // P2.5 interrupt enabled
                    }
                    else
                        P2IE |= BIT5;                         // P2.5 interrupt enabled
                }
                // If 0 i.e. Low -> High was detected
                else if (!(P2IES & BIT5))
                {
                    if (IGNDET_PORT & IGNDET_PIN)
                    {
                        P2IES ^= (BIT5) ;                        // Now we need to change the IES bit to detect opposite event.
                        P2IE |= BIT5;                         // P2.5 interrupt enabled
                     }
                    else
                        P2IE |= BIT5;                         // P2.5 interrupt enabled
                }
            TA1CCTL0 &= ~CCIE;                                   // interrupt disabled
            TA1CTL =   TASSEL_2 + ID_3+ MC_0 + TACLR;           // SMCLK, up-mode, clear TAR

    }

  • Where exactly does the code get stuck or hang? You have not shared any USCI/UART code, the issue could possibly be due to a priority conflict between the timer and USCI ISRs. Are you entering any LPMs during operation? More debugging efforts are still required.

    Regards,
    Ryan

**Attention** This is a public forum