Tool/software: Code Composer Studio
Hello all,
this time i got another tricky question for all of you, wheather one has expirienced this behaviour before :)
We do have a board with a MSP430F2617 and some FRAM attached to it via I2C and a lot other stuff going on, but now after some time in field the following corruption of FRAM ( remember this one is external not internal to the MSP430) did happen.
Some address, always the same, did get overwritten and at first look we did not know why this was happening.
After some investigation now, we found out that indeed the MSP430 is executing an I2C FRAM write command, which was completly unreachable in the
while(1) loop.
So we probed the I2C pins and the Vcc of the MSP430, and around 2 V Vcc ( after shutdown the 3V3 took about 20 ms to drop down to 0 V ) the MSP43ß I2C line is executing a write to exactly the Adress that
gets corrupted in field.
So here is the question to the experts: Have you ever expirienced behaviour like this?
What could be triggering this execution of some rather random code snippet, maybe the program counter is set to a certain value when some brown out happenes?
Note that as a workaround, for example setting the voltage supervisor in hardware to around 2,5V will help, also altering the written code in the while(1) loop, by for example adding another if(flag== blablba){
will also help to get around this problem.
But all those things treat the symptoms and not the root cause i fear, so I would rather prefer some explenation of that phenomenon.
And what does the MSP430 do when reaching the voltage supervisor level, does it halt internally? or shut down? or simply only set a flag, but executes the following codes anyway?
Thanks a lot for reading.