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.

MSP430F5515 won't cold boot, but runs with MSP-FET?

Guru 15580 points
Other Parts Discussed in Thread: MSP430F5515, MSP-FET, MSP430WARE

My MSP430F5515 loads and runs when connected to the MSP-FET, but won't run from a cold start with the FET disconnected. When I try to debug where the CPU is executing by attaching the FET after the cold boot, the PC is sometimes at 0x4800 (location of _c_int00_noexit), and other times stopped at main().

What would cause the CPU to not execute beyond the first instruction in flash, if this is indeed what is happening? Or, what would cause the program not to execute on a cold boot?

FYI, I am in the process of trying to  upgrade my driverlib to V1.60 and USB API to V4.0 if that makes any difference.

  • Hi Mike,

    Does this happen with all code or only particular code? If you just load a blinking LED program for example, does it work fine?

    Is this on a TI target board, or on a custom board? If it's a custom board, I'd say you may want to double-check hardware connections - it might be something like the RST line not having a pullup on it, and so the part doesn't run reliably without the FET tool holding the RST line high. It could also be some board power issue where the FET tool is giving it some extra juice, so its working.

    Regards,

    Katie

  • Katie,

    Katie Pier said:
    Does this happen with all code or only particular code?

    It started happening recently to previously working code that I have modified to work with the newer versions of drivelib and USB API. The unmodified code still works fine.

    Katie Pier said:
    If you just load a blinking LED program for example, does it work fine?

    Yes.

    Katie Pier said:
    Is this on a TI target board, or on a custom board?

    Custom board that has been working for over a year.

    Katie Pier said:
    If it's a custom board, I'd say you may want to double-check hardware connections - it might be something like the RST line not having a pullup on it,

    RST has 47K to VUSB.

    Any other ideas?

  • Hi Mike,

    Thanks for the additional information - it really helps narrow this down. So it sounds like it is actually either a purely softare-related issue, or an interaction between new software with the existing hardware.

    You said you are migrating to the new USB stack v4.0 or higher. Have you seen in the release notes, the migration steps required when moving to this version? You can find the release notes in yourMSP430ware v1.60 install at C:\ti\msp430\MSP43ware_1_60_02_09\usblib430\MSP430_USB_Software\Documentation\Release_notes_4_00_02.html. Or you can get to the release notes from within CCS at View > TI Resource Explorer under MSP430ware > Libraries > USB Developers Package > Release Notes.

    In the release notes see the section labeled "Upgrading from MSP430 USV Developer's Package 3.20". Because this was a major version change, there are some extra steps needed for updating your project. I've seen this cause people problems before: http://e2e.ti.com/support/microcontrollers/msp430/f/166/p/298784/1130542.aspx#1130542

    Regards,

    Katie

    EDIT: fixed link

  • Katie,

    Katie Pier said:
    Have you seen in the release notes, the migration steps required when moving to this version?

    Yes. I followed these instructions carefully during my upgrade process.

    At this point, as I posted in another thread (http://e2e.ti.com/support/microcontrollers/msp430/f/166/t/324815.aspx ), it seems impossible to track down the problem since I can't really see where the program is or isn't running when I connect to the target. This makes the debugging very difficult.

  • Does your board have reset or power-on problem? To try this out you shall test multiple power-on cycles and multiple reset cycles - using (temporary) reset button circuit. What about reset capacitor on RST pin? You just mention 47k pullup

  • Hi Mike,

    That would definitely be frustrating. I replied in the other thread about how I was able to successfully connect to a running target (I tested on an F5529). I'm hoping this might help provide you a clue to what's going on if we can get that debug functionality working for you.

    Regards,

    Katie

  • There appears to be a RST and/or VUSB problem. I can see a dip in the RST voltage from 3.6v (VUSB) down to under 2v happening every 63ms. This is obviously the cause of the boot/startup problem. Now I have to figure out why the VUSB is not holding steady.

    llmars,

    What about reset capacitor on RST pin?

    .47uF

     

  • Well folks. This appears to come full circle back to my unanswered post (http://e2e.ti.com/support/microcontrollers/msp430/f/166/t/324470.aspx ).

    When upgrading to the new USB API I generated a new set of USB descriptors with the new descriptor tool. In the new descriptor.h file there is a definition for turning on the 3.3v LDO.

    #define USB_USE_INTERNAL_3V3LDO TRUE

    If I manually set this to false, the VUSB glitch goes away and the program loads and runs successfully. However, by doing this my USB hardware does not get powered, and therefore does not work (self-powered, not bus powered)..

    This appears to be an old problem. What is the fix?

  • OK. Here's the answer. 

    http://e2e.ti.com/support/microcontrollers/msp430/f/166/p/161023/1130752.aspx#1130752

    Comment out the line that disables the 3.3v VBUS LDO.

    The post above was never responded to and apparently still causes lots of headaches.

  • Hi Mike,

    Thank you so much for reporting the issue and sharing your findings. I'm sorry that it has cost you so much time and frustration. The team that maintains the USB stack has been notified and they are working to correct this in the next version of the stack to handle this differently depending on how you are powering your device.

    Regards,

    Katie

**Attention** This is a public forum