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.

F6638 was totally erased, and the "fuse' is blown, anybody know how to recover the fuse?

even the BSL area is all erased, so the BSL is not usable also.

  • How do you know that flash is erased when neither JTAG nor BSL are working? Did you open the case and look at the flash with an electron raster force microscope?

    I guess the facts are that the MSP is not responding to BSL nor JTAG anymore. Why this is, is yet unknown.

    It is rather unlikely that the BSL is erased and the fuse blown. Because a 'blown' fuse is a not erased part of flash. Erasing flash will 'unblow' the fuse.
    Also, erasing the BSL isn't easy. There are several security mechanisms preventing this. So it must be done intentionally (or be deliberately enabling the appropriate option in the flashing program).

    If indeed the fuse is blown and the BSL erased, then all you can do is replacing the part. Dead is dead.

    But there can be other reasons, including a bad soldering, shortcuts caused by flux remains under the chip that has drawn water from ambient. Maybe a broken trace on the PCB, a defect on the power supply and, finally, destruction of vital parts by over-voltage or ESD.

    Anyway, the purpose of the fuse is to prevent access to the device and the (probably valuable) firmware in it, to prevent cloning of the device by someone who didn't put effort in the development. A simple way to restore the fuse would render it useless and make the MSP a device not recommended for commercial design.

  • I've actually encountered something similar. We've moved a project from an F5529 to F6638, changing build targets appropriately, but programming that particular project to the board seems "blow the fuse." Barebones/toy projects don't seem to do it.
  • 'blowing' the JTAG fuse on F5x family devices can't be done by accident. It requires programming the BSL area, which is not touched by normal project setups. It also requires enabling 'BSL write' in the flashing software (an additional protection).
    Simply erasing the BSL area would leave the JTAG enabled.
    Disabling the BSL can be done by accident. And is undone by a main memory mass erase through JTAG.

    So the question is: what uncommon thing does your project do?

    Note that changing the target (as well as updating the compiler) requires an update of the linker script. I'm not familiar enough with IAR or CCS to know the exact IDE behavior. There are different approaches, depending on compiler and version:
    1) the script is copied to the project when the project is generated and never touched again. In case of a target (or compiler version) change, you need to manually do the update.
    2) a target change will update the script (in which case any project-specific changes are gone)
    3) it can be configured whether the defaults script is used or a project-specific one (in which case you need to do a manual update, but only if your project required changes in the script). I remember hearing about this feature in the latest IDE versions.
    The actual method used may depend on the IDE you created the project with, not the IDE you are actually using now. And whether you properly imported the project or just copied and used it.

**Attention** This is a public forum