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.

MSP430F2274: It sometimes hangs up after power on

Part Number: MSP430F2274

Hi,

I use the glass break detector sample code, but I notice sometimes it hangs up after power up.

I pull the RESET pin to low and high to force the MCU reset, and then it will work fine.

Try to re-power up sometimes work fine, but sometimes not.

I saw the Errata sheet, I think it maybe a BCL12 or BCL13 caused, but I have no idea to solve it.

I use the slac599 sample code(Robust_GBD).

Thanks.

  • My first guess is (slow) power ramping. As a simple diagnostic, insert something like this as the second line (after the watchdog setting) of main() 

    > __delay_cycles(1000000UL);  // pause ~1 second for power ramp-up

  • Thanks for your reply.

    Before adding the delay, I notice the MCU hangs up after setting up BSCCTL1 and DCOCTL to 12MHz when power up from my power supply.

    As your suggestion, I add the delay on the second line ( after the watchdog setting) of main()  and it seems work fine.

    As BCL13 is DCO power up halt, and its workaround is Apply a Vcc power on ramp >= 10V/second under all power-on/power cycle scenarios.

    About  BCL13, I thought that was only solved by hardware, but why could solve this issue by adding the delay before setting the BSCCTL1 and DCOCTL? Because the BCL13 could be also solved by waiting for power rises to 3V before setting up BSCCTL1 and DCOCTL, right?

  • You don't need to look as far as the Errata to see the (probable) reason . Looking at Data Sheet (SLAS504G) Fig 1: The CPU will start up at about 1.8V. If you set the CPU (DCO) to 12MHz before the power ramps up to 2.7V, you're operating out of spec (too fast for operating voltage). TI doesn't say what happens in that case but observed behavior is that program execution malfunctions in a variety of ways.

    A full second is a long time, thus the term "diagnostic". You can probably get away with quite a bit less:

    1) Watch the power ramp-up on a scope and choose a suitable time and/or

    2) Beef up the power supply to get a faster ramp and/or

    3) Serially step the delay down until you see the failure, then step it up a bit ("padding") and/or

    4) Do some other initialization-code things, then come back and speed up the DCO when you're ready to go "live".

    The ADC provides Vcc/2 on channel 11 [Ref data sheet p. 51] which could be useful. I haven't tried using that for this case (I went with (2) instead).

  • Thanks for your elaboration, I got it. I just notice the Errata reason, but I miss the datasheet information about DCO operating voltage.

    I watch the power ramp-up on scope and choose a suitable time, and it works fine currently. Thank you very much.

**Attention** This is a public forum