MSP430g2001: SpyByWire disconnected and RESET# not active at power up

Part Number: MSP430g2001

I have a custom board and have successfully written and single stepped a program - all seems well (though a very tight fit in available flash).   When I disconnect the spybywire interface, the board does not run the firmware applicaton.

Setup:   Power supply is 24v into a 3.3v linear regulator, peak current is 7mA and the MSP sleeps beautifully.   Regulator has a 10uF cap on the output.

I've got a 47K pullup with a 2.2nF cap to ground.    Voltmeter on the reset line shows full discharge with power off for a few seconds, then power applied, the RST line goes to about 1.86v with no TI FET emulator connected.   Is there something I'm missing in the firmware? - Perhaps a register setting that gets twiddled from using spybywire that makes this pin not a RST pin?  

A bare board 'ohms out' and does not show any shorts on the reset line.   

The 47k resistor ohms out to 47k, what's odd is the 2.2nF cap 'ohms out' to 48K.   When the cap is removed from the board, same 48k between ground and the reset line.   These measurements all with the MSP FET disconnected and on components that are assembled (by machine) on the pcb.

Three different boards all measure the same, one of them has never had a TI MSP FET attached or code downloaded.

Here's my startup code in case there is something funny with my setup - I'm using the watchdog for a 32msec time count.

/*** Watchdog timer and clock Set-Up ***/
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
DCOCTL = 0;              // Select lowest DCOx and MODx
BCSCTL1 = CALBC1_1MHZ;   // Set range
DCOCTL = CALDCO_1MHZ;    // Set DCO step + modulation
P1DIR &= ~BIT0; // Motion Sensor input is P1.0
P1OUT |= BIT0;
P1REN |= BIT0;
P1IES |= BIT0;
P1IFG &= ~BIT0;
P1IE |= BIT0;
/*** GPIO Set-Up ***/
    P1DIR |= BIT2; // P1.2 set as PWM output (LED Light)
    P1SEL |= BIT2; // P1.2 selected Timer0_A Out1 output
    P2SEL &= ~(BIT6 + BIT7); // switch off the special function XIN so it can be GPIO
P2DIR |= BIT6; // Board LED is P1.6
P2OUT &= ~BIT6; // LED off
/*** Timer0_A Set-Up ***/
    TA0CCR0 |= 1000; // PWM period
    TA0CCR1 |= 1; // TA0CCR1 PWM duty cycle  was 1, 25 is 25usec, 125 is 125 usec
    TA0CCTL1 |= OUTMOD_7; // TA0CCR1 output mode = reset/set
    TA0CTL |= TASSEL_2 + MC_1; // SMCLK, Up Mode (Counts to TA0CCR0)
    /* Set watchdog timer interval to 32ms, internal timer */
    /* enable interrupts for the watchdog timer */
    IE1 |= WDTIE;

Any ideas?

Displaying image.png

Displaying image.png

  • There is nothing out of the ordinary with the firmware included that could affect the RST line, the issue has to lie somewhere with the hardware. RST should be pulled up to Vcc and the MCU is drawing more current during active mode than is expected. It appears that there is an unwanted pull-down resistance to GND on the RST line operating as a voltage divider. When the MSP-FET is connected do you have JTAG pin 2 (VCC_TOOL) or pin 4 (VCC_TARGET) connected? Please re-check your hardare connections and make sure that they closely follow the MSP-TS430PW14 EVM. The image you attempted to provide did not attach correctly, board schematics and layout images would also be helpful if you continue to have issues.


  • In reply to Ryan Brown1:

    I've built my own spybywire adapter. for this application, I'm not supplying 3.3v to the target via the emulator (so I'm using pin 4 of JTAG connected to target 3.3v). I have used the same spybywire adapter on a MSP430g2233 based board and it has no problems with reset.

    The application is a high volume (>100K) smart lighting design and reliability is a big requirement - I was hoping to find an issue with my hardware design, but I've not found the root cause yet. I am touching the dreaded watch dog timer register which has implications on the role of the RST/NMI pin and I was concerned that somehow a via a bug I've activated an on chip pull down. I wish the e2e site could host the images I've included - I'm not seeing an 'attach file' option to provide the schematic / pcb layout excerpts. This evening I will be attempting to lift the RST pin and if that proves difficult, my plan is to remove components off the board one at a time while measuring resistance from RST to ground.
  • In reply to Pentleman:

    I'm using the TSSOP14 package and the markings are:
    06K G4

    The silicon errata mentions nothing on the RESET line and I've checked the pcb - there is not a shorted connection. Can you check to see if there is an errata on the problem? I've ohm'd to each pin on the processor from reset and there is >2M on each (I was thinking maybe a GPIO with pull down was shorted somehow. This is the same on 3 boards.
  • In reply to Pentleman:

    Here's some more information:

    1) lift the MSP430 Reset (RST) line from PCB pad. Ohm the lifted RST line to ground and it is > 1M ohm.

    2) with the lifted RST line, power up the board. The 47k and 2.2nF pull high to 3.3v

    3) remove and replace 47k and 2.2nF parts just to make sure they are the correct values. Found an error on my part - measuring the resistance across the 47k is about 47k, measuring the resistance across the 2.2nF is higher at ~49k. Measuring from 3.3v to ground is about 2.5K. Measuring across the 2.2nF with the 47k out of circuit is open (as you'd expect with lifted pin and no pullup). Looks like my measurement was definitely affected by the 'on the board' components.

    4) with 47k and 2.2nF in place, re-attached the RST pin from the MSP. Ohm shows 49K to ground and 47k to 3.3v (same as before). Turn on the power supply and measure the voltage at the RST line - same 1.85v and the board does not run code.
  • In reply to Pentleman:

    Found it!   This was an error on the schematic and in the layout.    I've got the 47k/2.2nF circuit connected incorrectly to TCK rather than RST.    The signals are correctly routed to the spybywire so that explains why things work with the emulator.