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.
Hi,
My Focus customer has the replicator derived code running on a Tiva TM4C123GH. It is programming a MSP 5526. It works on their other micro (5308) however when they use it on the 5526, they can:
1) successfully take the target under JTAG control by calling GetDevice_430Xv2 [ JTAGfunc430Xv4.c:922]
The call to ReadMemQuick_430Xv2 [:942] is successful and displays the correct device ID for each target ( 0x1381 for the F5308 and 0x5526 for the F5526 )
2) Call EraseFLASH_430Xv2 [ JTAGfunc430Xv2.c:1221 ] with an EraseMode of ERASE_SGMT and an EraseAddr of the start address of the Info D section.
This is successful and is verified by a call to EraseCheck_430Xv2 [ JTAGfunc430Xv2.c:1326 ].
3) call EraseFLASH_430Xv2 [ JTAGfunc430Xv2.c:1221 ] with an EraseMode of ERASE_MAIN and an EraseAddr of the start address of the code section. We have made sure to update the code start address from the 0xC000 that the F5038 uses to the 0x4400 that the F5526 uses for the first segment of main.
This is successful against the F5308 but not the F5526, as shown by a call to EraseCheck_430Xv2 [ JTAGfunc430Xv2.c:1326 ].
Customer writes:
We would also like to dig a bit more into this failure, because we have discovered more details about it. Looking at the return values of intermediate function calls we begin to see our first hints of failure inside the EraseFLASH_430Xv2 call itself. The first thing that we noticed is that, in the failure case, we always exit the do-while loop on line 1239 based upon the timeout. This is true even if we extend the timeout 100-fold to 300,000. The second is that the call to SyncJtag_AssertPor [:885] fails because the return value from IR_Shift is not 0x91, which it should be for this device, instead returning values such as 0x40, or 0x28.
Do you know of any cases where this would be the case? Slau320 seems pretty adamant that IR_Shift should always return the Jtag ID.
I have asked them to make sure they haven't dropped out of JTAG comms by doing a GetDevice after dropping out of ERASE_MAIN. Is there anything fundamentally different about the 5528 vs the 5308 they need to change?
Hi Blake,
Actual, I don't understand your use condiction, could you share more about this?
Use TM4C to download image into F5528? Or others?
Thanks!
Best Regards
Johnson
Hi Johnson,
Yes - the TM4C123 ARM M4F runs a version of the Replicator code to program a MSP430F5526. It is NOT working.
On another board, the TM4C123 ARM M4F programs the MSP430F5308 and it is working.
The Replicator code dies in the EraseFLASH_430Xv2 call.
Thanks!
Blake
Hi Blake,
You use JTAG interface to program MSP430 via TM4C?
Which example code in TM4C you used? If a standard JTAG protocol, you should be able to probram F5308 and F5526, they are keep same design for JTAG.
Thanks!
Best Regards
Johnson
**Attention** This is a public forum