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.

MSP430G2402: Strange problem with RESET vector location in memory

Part Number: MSP430G2402

Goodmorning TI Community,

Today I write to You because of a strange problem with some elecrtonic board on which there is the MPS430G2402 processor.

After some work cycles the processor stops working well and gets lost.

The origin of this particular behaviour is that unexpectedly the location of the RESET vector reprograms itself with an undefined address

so that the processor doesn't know anymore where is the start point of the program.

The firmware (written in assembly) has been tried and tested for many years and every machine works very well with it.

This is the first time that something like this happens and I don't know why.

Which are the possible reasons?

I also have another doubt/question: the flash of MSP430 micro-processor is protected by accidental writing, isn't it?

So, how is it possible that the reset vector's original address gets lost and auto re-programmed with an undefined value?

You need to know that in this application I only access to the Info Memory, which contains the A to D segments, and I don't write on the Flash Memory.

I hope someone could help me to resolve this strange problem.

Thank you for the attention.

Kind Regards,

Luigi Quaglia.

  • Hi Luigi,

    Is the RESET vector the only location that gets overwritten and how are you observing it? What changes were made to the assembly code or setup that caused this to happen and on how many devices can you replicate the issue? You should not be able to overwrite flash contents unless the LOCK bit is reset inside FCTL3 (set by default).

    Regards,
    Ryan
  • Hi Ryan,

    yes, to answer to your first question the RESET vector is the only one whose locatiom has been overwritten.

    I use the "debug without downloading" tool available in the IAR development environment and I notice this problem.

    As I said in the previous post, the firmware has been tried and tested for many years and, as it always works perfectly, I haven't made any changes to it.

    At the moment the issue occurs in 7 devices (on 50 total), the first I programmed.

    I think it is very strange that the processor of these devices has worked well until now and suddenly it stops, even though most of the machines has worked for some months only!

    Is it possible that a voltage spike, both in programming or work period, caused the overwrite of the RESET vector only?

    The firmware on the processor was debugged without any external power supply during the first programming period, using only the MSP FET emunlation Tool.

    Could it be the cause of this "latching" phenomenon? 

    Thank you for your answer.

    Regards,

    Luigi

  • Hi Luigi,

    Do you have reason to suspect a voltage spike in your system? Has the board design changed any recently? Proper FRAM operation cannot be guaranteed if the device operates outside of its specifications. I will refer this issue to the Quality Team to see if they have experienced any similar situations in the past.

    Regards,
    Ryan
  • Luigi,
    can you please answer following questions:

    1. At which frequency and voltage you're running the part?
    2. You mentioned you access only info memory but do you have somewhere in you code FLASH read or write functions? Do you access the flash content anwhere?
    3. You stated 7 out of 50 shows this right?
    a. Does the show always the same change?
    b. Is the RST vector located at 0xFFFE the only address which changes?
    c. What is the change logical 1 to 0 or the other way around or both?

    Did you already reviewed the following Apps Note:
    www.ti.com/.../slaa729a.pdf
  • Good morning Ryan,

    thank you very much again for your answer.

    The power supply is very well filtered so I don't think the machine has experienced any voltage spike during the working period.

    The devices has MSP430G2402 processor on board and anything, also in the design of the circuit, has been changed.

    I only have the doubt that programming the device without external power supply but only with the emulator voltage can enable this strange latching process of the RESET vector address.

    Let's see what the Quality Team have to say about this situation!

    Regards,

    Luigi 

  • Hi Walther!
    thank you for your answer and your questions about the problem.
    1. The frequency is set at the maximum possible internal oscillator value: 16 Mhz, while the voltage is 3,3 V.
    2. I have a function in the code that reads and writes the info memory. Exept of this the FLASH memory is only read in some particular location in the code.
    3. Yes, only 7 devices on 50 shows this issue and, yes again, it is always the same: the RESET vector isn't located to its specific address.
    One important thing to highlight is that the processor has worked well for some months, then suddenly happens this strange fact.
    Thank you also for the link to the App Note.. I'll read it!
    Kind Regards,


    Luigi

  • Hi Luigi,

    thanks for answering the questions. You operate the device at 3.3V at 16 MHz right. This means you operate on the border of the specification as you can see below.

    On the top you also use flash programming which is causing high peak currents. Therefore I really have to ask:

    Are you sure that you will not violate the 3.3V spec with 16 MHz during whole operation (means temperature, all kind of code execution).
    Normally LDO does not react very quick on short spikes which might cause problems.

    So can you reproduce the behavior? If yes please increase DVCC or reduce frequency to see if it disappears.

  • Goodmorning Walther!
    I'm pretty sure that during the programming period I never violate the specifications of 3.3 V~16Mhz, infact the voltage value never goes over 3,25V.
    Because of my previous experience, I think this type of processor is particularly sensitive to voltage spikes but this is also the first time that some devices show this strange behaviour.
    Unfortunately I'm not able to reproduce the random conditions that create the problem...
    Kind Regards,
    Luigi
  • Hi Luigi,

    I'm not concerned about the programming period only but more about the operation of you application in general.
    What do you mean with voltage never goes over 3.25V?
    Does it mean it always operates at 3.25V and lower voltages or does it mean it never goes below 3.25V.

    By the way I would not call it sensitive but for sure you have to ensure to operate it within specificaiton.

    Best regards,
    Dietmar
  • Hi Dietmar!
    Thank you for your reply.
    The machines which have on their board this processor works always at about 3.25 V and the voltage is very constant.
    This problem is a strange particular case, I think; infact my company has produced a lot of machines using MSP430 processor with the same specification (16MHz for the frequency and 3.25-3.3V for the power supply) and no one showed this issue in over 15 years of work.
    I really don't understand where the problem would be...
    My best regards,
    Luigi Quaglia
  • Hi Luigi,

    I understand your concerns but again if you operate at 3.25V at 16 MHz you will violate the specification also keeping in mind the DCO drift over temperatuer.
    But to better understand what's going wrong:

    Are there any signficant differences to the applications your company produced before?

    Do peform DCO frequency switching in your application? If yes are all the existing ERRATAs considered?

    Best regards,
    Dietmar

**Attention** This is a public forum