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.
Hello,
Today the onboard flash memory of my chip (including protected information memory) was completely and unexpectedly erased during use.
How can I restore the original factory settings that the chip was provided with (for example the values for the memory locations seen on page 14 of http://focus.ti.com/lit/ds/symlink/msp430f249-ep.pdf)?
For information, I my target is an MSP430F249, connected via an MSP-FET430UIF to my Windows PC, running CCSv4.2.3.
Many thanks,
--
Joshua
Ok, thanks for the information however I still need to clarify a few things.
I am aware that I can't just recalibrate the device by pressing some magical "restore factory settings" button. My question rather was twofold, and should have read as follows:
1) Does TI (perhaps the quality department?) store the calibration values for each chip, that I could look up with a part/serial number?
2) If I can obtain the values, either from TI (is their calibration method available for customer use?) or by performing my own crude calibration, how do I actually write to the values to the protected flash (since I never wrote/erased it via my software in the first place, I don't currently have a function to do so)? Is there a way to facilitate this within code composer or do I have to resort to writing my own assembly code as per §7.2.1 SegmentA of http://focus.ti.com/lit/ug/slau144h/slau144h.pdf?
Thanks again,
--
Joshua
So for the benefit of anyone with the same problem, the most useful thread I found was here http://e2e.ti.com/support/microcontrollers/msp43016-bit_ultra-low_power_mcus/f/166/p/18579/71447.aspx#71447, specifically the example code found here http://www.ti.com/lit/zip/slac123, of which msp430x22x4_dco_flashcal.c is the most useful for the present issue.
You'd be surprised how many people think that there is such a button, ot at least an entry in the datasheet with the values. :)Joshua Lawes said:I am aware that I can't just recalibrate the device by pressing some magical "restore factory settings" button.
I try to not trying to interpret what people might mean. At least not anymore. Too often I wrote a lengthy explanation just to get a 'thanks, but I just wanted to know the value to put in that register". Now I usually stick with the WYAIWYA style (What you ask is what you're answered)Joshua Lawes said:My question rather was twofold, and should have read as follows:
However, to answer your more detailed questions as far as I can:
1) I don't know. I soubt it as it is a huge amount of information, and then even more effort to make this information again available for someone who asks. I remember that when we lost the calibration information of several of our PICs, Microchip was unable (or unwilling) to help us out. Also, while newer MSPs have their wafer and position on wafer stored in a TLV structure, I 'm not sure how many of the older chips have a real serial number. (the 1x series did not have any calibration values at all, so there it wouldn't make any difference).
2) I don't know how TI calibrates the devices. However, I doubt it is something like 'program code into the MSP and let it run'. It's not impossible, but sounds too ineffective to belikely. Anything else I can think of wouldn't be something a customer could do on its own.
If you actually could get the data , there wouldn't be a problem putting it into a binary file that just tells the programmer to write these values where they belong - the same way you erased them. Basically a program with the data stored in a variable named 'main' (just to have it referenced, so it gets linked) and a fixed storage location (the desired location for the cal values). Alternatively, you can just put these values in your source code and use them instead of the 'stored' (erased) ones.
Writing your own code would of course be another option, and it would also allow you to runtime-program any other part of the flash too, so it would be a good exercise with a high recycling value. This code does not need to be in assembly language, C works fine too.
After all, you found the recalibrate program in the forum. It should serve most of your needs. Thankls for re-posting the link. Much of the useful forum content goes down the history road and fades away in memory.
**Attention** This is a public forum