Part Number: TMS320F280039
Other Parts Discussed in Thread: C2000WARE, UNIFLASH
Tool/software:
I have an application where, on startup, I added diagnostics from the C2000 diagnostic library, copied from examples in C2000Ware v.5.04. Code found in the installation directory C:\ti\c2000\C2000Ware_5_04_00_00\libraries\diagnostic\f28003x\examples\test_application\ makes a series of tests, among which there are the PIE RAM and PIE handler tests.
After verifying that all the tests were running, I moved on to my application, which performs some process on data exchanged between two SPI channels and a few I/Os. Then all my work has been on data protocols and processing, as the hardware is functioning properly.
After some weeks of work, one of the boards stopped working on the initial tests. Checking with the debugger (XDS110), I found that it failed the PIE handler test. And it was right: the PIE peripheral was broken and stopped responding to any interrupt. Then I sent the board for an MCU replacement and started working on another board.
The problem started appearing on some other boards, both running code from RAM (loaded with the debugger) and from Flash. The last event happened just this morning: as I loaded with the debugger the same code that was running flawlessly yesterday, it resulted in another permanent PIE handler failure. I can toggle power, run the code from the debugger, but the interrupt peripheral isn't working anymore.
Up to now, I have 3 MCUs replaced (plus the failing 4th part of today). One of them has been replaced twice, although they all are from the same lot - marking F280039SPZ $7 -37CXKCW G4
I'm clueless about what can cause permanent damage, always on the same internal peripheral. The board has many other parts (an additional F280049, a couple of FPGAs, interface logic, etc.), and none of them have ever failed.
What can I do to analyze the issue? Is there any resource that can help me?
[EDIT]
After further testing, I found that the MCUs exhibiting the strange behavior could be reverted to normal operation. However, the process and its meaning are still puzzling me.
The following is the situation and the first solution(?) I exerted:
1. MCU Flash with no OR random testing code run on startup (unfortunately, I had no record about the exact precedent condition)
2. MCU RAM then loaded, using debugger, with diagnostic tests (application A), with either of the two results:
2.a. PIE handler test succeeds (for hours/days/weeks)
2.b. PIE handler test fails: any action on supply (on/off/on cycling) or repetition of the debugging actions yields the same results
I then did the following:
- Loading/Run of Flash with test_application mentioned before OR the Flash version of my diagnostic application A above
- MCU RAM then loaded, using debugger, with diagnostic tests (application A): PIE handler test succeeds
- The board, after the actions above, works flawlessly
What's the meaning of it? I have no idea.