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.

Differences between BOR, POR and PUC on MSP430F5522

Other Parts Discussed in Thread: MSP430F5522

Could someone tell me the differences between a BOR, POR and PUC on MSP430F5522? 

I see what can cause the different types; but would user code be run differently depending on which type occurs?

  • Hi,

    this is taken from the 5xx Family User's Guide document:

    In my opinion the most important thing is when BOR occured the following things (such as the boot code execution) will happen:

  • Thanks for the reply. 

    I've looked at these areas in the manual.  Perhaps I'm staring right at the information and it's just not jumping out at me.

    Does a POR or PUC cause the system to begin code execution at the top of the user's main module?

  • Brent,

    Brent Huebert said:

    Does a POR or PUC cause the system to begin code execution at the top of the user's main module?

    yes, as far as i understand, POR and PUC will not cause the boot code to run (so BSL can't be invoked), so basically CPU will jump to the reset vector address at 0xFFFE.

    Maybe one thing which is interesting to your question, since the BOR, POR, and PUC are basically different level of reset, this can cause also the register value to change. When reading the a register description such as this:

    you shall take care of the init value:

  • Please note that Boot Code is not BSL.

    Boot Code is probably always ROM-based (my conjectural), and its address seldom shows up in the DataSheet or User Guide. Exactly what it does is also somewhat mysterious. It probably examines certain FLASH memory and decides things like if JTAG fuse is blown or not, BSL exists or not, etc. But anyway, it is executed right after BOR.

    The Boot Code of RF57xx chips seem to have a DEAD BEEF Portal. But I have no idea how to use it.

  • Note that:

    (1) Beside PUC, POR, and BOR, there is another level of reset -- namely Brownout. See the last few lines of what Ihend posted above.

    (2) Do not confuse Boot Code with BSL. They are not the same thing.

  • old_cow_yellow said:
    Beside PUC, POR, and BOR, there is another level of reset -- namely Brownout.

    Not really. Brownout is not a global reset state but rather the condition each component comes up with when power is applied and VCC begins to rise, or VCC has dropped below the point the component was able to keep its current state (which can be far below the BOR trigger level for some parts of the circuitry). Some registers (e.g. ADC12MEMx) are never touched by any initialization. They may keep their value even across BOR, but of course have a random value right after a power-loss.

    old_cow_yellow said:
    Do not confuse Boot Code with BSL. They are not the same thing.

    Indeed. Boot code is what happens on your PC before you see anything on the monitor. BSL is what happens if you press F8 at the right time.

**Attention** This is a public forum