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: Issue when reading memory of the MSP430F2274

Part Number: MSP430F2274

Hi,

We are using a MSP430F2274 in our products. We already used around 20 of them without any issue.

We programmed a new one with the same software. Sometimes (1/15 startups) we have the following issue: the CPU must fills a software buffer with data from the flash (addresses 0x9D28). This data is supposed to be 0x4F, but the software buffer is filled with 0XB0. When we put a breakpoint on the assembly instruction that reads the data from the memory, we are not able to reproduce the issue.

Do you have any idea what could be the problem or how to find it ?

Thanks

  • Hi Johannes,

    Can you provide the following:

    1. Could you provide a reduced code set that reproduces the issue so I can test this on my setup?
    2. Is the buffer in flash or RAM?
    3. Have you verified that the data in flash that you are copying is correct?
    4. Does the issue occur more frequently with the debugger attached or detached?
    5. Are you meeting the system frequency requirements as specific in "Figure 1. Operating Area" of the datasheet?

    Best regards,

    Caleb Overbay

  • Hi Caleb,

    Thanks for your answer.
    1) It will be hard for me to give you a reduced code set that reproduces the issue. I tried to slightly modified the code and was not able to reproduce the problem after. As our code relies on external component, I think it will be hard to generate one that you can use and that reproduces the issue. Furthermore, we have about 20 prototypes with MSP430F2274 running the same software, and we only observed the issue with one of them.
    2) The software buffer is in RAM, but is filled with a value from Flash.
    3) We have checked and the data in Flash are correct.
    4) The issue happens more frequently with the debugger detached (attached: 1/15, detached: 1/2).
    5) The system frequency is set to 16MHz and the MSP is powered with 3.3V, so we meet the requirements of the figure1 of the datasheet.

    The system works on battery but we also reproduced the issue with a power supply.

    Regards
  • Hi Johannes,

    That's very peculiar. I'll need to brainstorm with some team members then I'll get back to you soon. Keep me updated if you make any progress.

    Best regards,
    Caleb Overbay
  • Hi Johannes,

    Can you monitor VCC at startup to see the ramp from 0 to 3.3V? There's a possibility this ramp could take too long and you are switching to 16MHz before the VCC reaches the appropriate voltage.

    Also what memory location is the buffer stored at in RAM?

    Best regards,
    Caleb Overbay
  • Hi Caleb,

    we monitored the VCC at startup and we observed that the signal ramps up to 3.3V in less than 300 us. The signal is clean and stable.
    We added a delay in our code before setting the clock to 16MHz but we still reproduced the issue.

    The buffer is stored in RAM from address 0x2A0 to address 0x2BF (it does not happen always on the same byte).

    Regards,
  • Hi caleb,


    A question about the debugger: sometimes, when I set a conditionnal breakpoint, it results in the MSP not behaving correctly.

    For example, I tried to put a conditionnal breakpoint on the assembly code, when we read the flash memory. The condition was that we read the value 0xB0. When I launched the system, it did not break, but it resulted in the MSP sending incoherent data over the UART (the data read in the flash are then sent though the uart).

    Do you have any idea what could explain this behavior ?


    Regards,

  • Johannes Hennecke said:
    CPU must fills a software buffer with data from the flash (addresses 0x9D28). This data is supposed to be 0x4F, but the software buffer is filled with 0XB0.

    BTW, (0x4F) = not (0XB0), so maybe sometime byte is inverted somewhere.

  • Yes, we noticed that too but we do not get where the byte could be inverted.

    Furthermore (but I did not write it), it does not happen always with byte 0x4F becoming 0xB0 (this is what happens most of the times).
    Sometimes in becomes 0x20, or 0x40... And it does not always happen on byte 0x4F neither.
  • Hi Johannes,

    I apologize for the delayed response, I was out of office last week.

    I'd like to take a closer look at your code and the debugger behavior you've described. Can you send me a private message containing your CCS project so I can review your code and settings?


    Best regards,
    Caleb Overbay

  • Hi Johannes,

    Are you still experiencing this issue? If you solved the problem, could you share your answer on the forum for others to reference if they experience something similar?

    Best regards,
    Caleb Overbay
  • Hi Caleb,

    We did not manage to fix the issue. As we only reproduced the issue with that one chip, we decided to change it.

  • Hi Johannes,

    It's unfortunate we weren't able to get to the bottom of this. Either way it looks like you're back on track. If you're interested in investigating this further I'm always here to help.

    I'll be closing this thread, but if you have any further questions, feel free to reply to this comment and it will re-open the discussion.

    Best regards,
    Caleb Overbay

**Attention** This is a public forum