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.

MSP430F5308A digital IO after reset

Other Parts Discussed in Thread: MSP430F5308, MSP430F5438A

Hi,

System: we are using MSP430F5308.

According to our test after reset the digital IO ports are at '1'.

When compered to TRXEB board (different host in trxeb msp430f5438a) the we made the same test but io after reset are '0'.

What could caused this in our design? the test code was based on "MSP430F530x Demo - Software Toggle P1.0"
We added (Port6 bit 6 is our led.. we added it as well for the test) port2 1+7 when port 7 is for the 'test group'  we can see that P2.7 goes to '0' only after P2.1 goes from '0' to '1' => it was in '1' from start.. 

Does the the TRXEB has pull down? What are we missing? please advice.

#include <msp430.h>

int main(void)
{
  volatile unsigned int i;
  P2DIR |= BIT1|BIT7;
  P2OUT &= ~BIT1;
  P2OUT = BIT1;
  P6DIR |= BIT6;
  P6OUT |= BIT6;
  WDTCTL = WDTPW|WDTHOLD;                   // Stop WDT
  P1DIR |= BIT0;                            // P1.0 set as output

  while(1)                                  // continuous loop
  {
    P1OUT ^= BIT0;                          // XOR P1.0
    for(i=50000;i>0;i--);                   // Delay
  }
}

  • After reset, all digital I/O port pins are inputs without internal pull-up/down. Without external connection, the reading of PxIN may be either high or low depending on leakage or noise pickup. They may even oscillate.

    You could enable the internal pull-up/down resisters PxREN. Whether this pulls the pins up or down is determined by the corresponding bits in PxOUT.

  • There is an erratum (PORT16) that on some MSPs where different sub-family variants have different package sizes and therefore a different number of available ports, the ports that are not available on all variants are driven low during boot code execution, when the previous boot code execution was interrupted by a RESET. If oyu apply a manual (bouncing) reset, this is likely the case.
    For the 54xx family, this applies to P8-P11.

    Note that the ports are not initialized to ‘1’, they are initialized to high-impedance input state (neither 0 nor 1, but floating). However, residual charge on the traces may ‘simulate’ a certain state. And a scope probe may pull the pin low due to input impedance.

  • Thank you both for the replay that cleared the issue :) 

**Attention** This is a public forum