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.

MSP-FET430UIF writes in RAM while MSP-EXP430FR5739 does not.

Other Parts Discussed in Thread: MSP430FR5738, MSP430FR5739, MSP-EXP430FR5739

Hi TI Team,

I experienced a strange behavior in debugging MSP430FR5739 and MSP430FR5738 using my MSP-FET430UIF in Spy-Bi-Wire mode. When I download a program code after each debugger step the RAM area from 0x1C00 to 0x1C76 is overwritten. Using the debugger from MSP-EXP430FR5739 then this does not happen. I does also not happen if I load the program once and reload the debugger in mode “load symbols only”.

I checked MPU and DMA settings but these are okay.

When I fill memory area 0x1c00 up to 0x1c80 say 0xff then this is shown in Memory Browser. It is still there if I do a refresh. However after one step (F5) the RAM area from 0x1C00 to 0x1C76 is overwritten. Only 0x1C78 to  0x1c80 shows 0xff.

The overwritten content look like program code, but is not found in my program. It looks like:

C084    42C5    530F    5728    D263    80F5    0BF4    C70A    7766    4562    A973    5350    37C6    B322    FD7E    BE15
3060    D223    8307    BE1F    8800    56E1    F7A8    0157    D4AE    313C    61AE    D7FA    3659    1A4C    5C4B    1227
E48D    2D7F    208D    4E2C    143D    2486    46C6    4BA8    2231    8CB6    743C    26A6    C48E    3AB2    7945    01E7
CE80    831C    40E8    C56F    2FE0    0822    C2AE    8D94    9230    E466    0012    BF0C

 Again this does not happen on MSP430FR5738 or using MSP-FET430UIF in “load symbols only” mode.

My CCS has  Version: 5.4.0.00091. My MSP-FET430UIF has V1.4a SN 3016623108JR.

Is there any known workaround beside skip RAM 0x1C00 to 0x1C76?

Regards

Guenther

  • To write to flash, the FET has to upload a block of data into ram and then run a small program that copies it to flash.
    On the devices with FRam instead of FLash, the FET can directly write to FRam word by word. So no buffering necessary and the data goes directly to its destination.

    BTW: after power-on, ram content is undefined anyway, and uploading a new firmware is considered the same situation. So why do you care?

  • Hi Jens-Michael,

    Yes, I would not care if it happens once. But it happens on EVERY debugger stop. The content of my variables are destroyed on EVERY breakpoint. The content is destroyed on EVERY "step into (F5)" or "step over (6)". It is not funny.

    The only workaround I found is changing the lnk_msp430fr5738.cmd file and let the RAM start at 0x1C80. It's a waste of 128 bytes RAM but I can go on with my development.

    Guenther

  • Guenther Klenner said:
    Yes, I would not care if it happens once. But it happens on EVERY debugger stop. The content of my variables are destroyed on EVERY breakpoint. The content is destroyed on EVERY "step into (F5)" or "step over (6)". It is not funny.

    There is a bug in the MSP430.dll for the MSP-FET430UIF which corrupts the target memory, by writing "stale data". See CCS5.3 Acting strange for the details.
    Guenther Klenner said:
    The only workaround I found is changing the lnk_msp430fr5738.cmd file and let the RAM start at 0x1C80. It's a waste of 128 bytes RAM but I can go on with my development.
    I haven't seen a CCS update for this yet, but if you are using Windows  Download DLL Developers Package v3.3.1.3 Released 06/28/2013 contains a MSP430.dll v3.3.13 which fixes the problem.

    [You will need to replace the MSP430.dll in ccsv5\ccs_base\DebugServer\drivers and CCS will prompt you to update the MSP-FET430UIF firmware]

  • Hi Chester,

    There seems something is wrong. I changed to V3.3.1.3 and got:

    I switched back and got now:

    What shal I do?

    Regards

    Guenther

  • Guenther Klenner said:
    What shal I do?

    I haven't seen these errors myself, which I think are a sign of a USB communication error. There was another thread MSP-FET 430UIF Could not set device Vcc about how someone got rid of the "Could not set device VCC" error.

    Is the MSP-FET430UIF still showing up under "Ports (COM & LPT)" in the Windows control panel?

  • Hi Chester,

    Yes, it is still shown:

    Just by the way, the board is powered by it's own. Vcc should not be set by FET430UIF.

    I checked wireing. It is okay.

    Regards

    Guenther

  • Guenther Klenner said:
    Just by the way, the board is powered by it's own. Vcc should not be set by FET430UIF.

    Looking at the source code, the first thing the MSP430.dll does after establishing the USB connection is to try and set output voltage from the MSP-FET430UIF, but only when the requested target voltage is non-zero. Since your board is powered by it's own, if you set the CCS Project Properties -> Debug -> MSP430 Properties -> Target Voltage (mV) to zero it might change the behavior.

  • Hi Chester,

    I guess something else is wrong. I get the Vcc error message on 3300 mV as well as 0 mV.

    I used my colleagues FET430UIF and this works as mine before the update try. It also shows the RAM overwrite fault.

    I tried to reflash my FET430UIF with MSP430Flasher but got an error message:

    I'm hesitate to switch to MSP430.DLL V3.3.1.3 and destroy my colleagues FET430UIF. So I currently tested all with MSP430.DLL V3.3.0.6.

    Is there a way to get my FET430UIF working even with the known bug?

    Regards

    Guenther

  • Guenther Klenner said:
    Is there a way to get my FET430UIF working even with the known bug?

    I didn't find a work-around without changing the MSP430.dll. In the CCS5.3 Acting strange thread a did attach a MSP430.dll built from the v3.3.0.6 source code, and with my fix for the RAM overwrite fault. If you used with your colleagues MSP-FET430UIF it wouldn't require a firmware update (since it only changes the code which runs on the PC). However, I can't guarantee it won't destroy the MSP-FET430UIF since I don't understand why switching to v3.3.1.3 caused an error.

    Also, which Windows version are you running?

    All my testing has been on Windows XP SP3. (in case the Windows version makes a difference to the errors)

  • Hi Chester,

    I'm using Win 7, 32 bit. Do you know how to reflash a FET430UIF?

    Regards

    Guenther

  • Guenther Klenner said:
    Do you know how to reflash a FET430UIF?

    I think there is a header inside the MSP-FET430UIF which allows the MSP430 firmware to be programmed from another FET, but can't find any instructions at the moment.

    Another possibility, with the broken FET can you successfully run the CCS "MSP-FET430UIF v3 to v2 Downgrade" utility? If so, running MSP430Flasher should prompt you to upgrade the firmware to get the FET working with CCS 5.4 again.

  • Hi Chester,

    It worked. Here my report and question:

    Using "ccsv5\ccs_base\DebugServer\drivers\V32V2.bat" I could downgrade to V2:

       Initialize: done
       MSP430_FET_GetFwVersion()
       Firmware Version: 30300006
    Status: Starting firmware update with 'Uifv3Downgrader.txt'!

    ...


     Status: MSP-FET430 firmware (HAL) download was successfully

     Status: MSP-FET430UIF v3 to v2 downgrade completed successfully


      Press any key to close this application.

    Starting CCS 5.4 and press debug. I was prompted for an update again as you said:

    and it is back to start. I can use it like at the beginning. Also the RAM overwrite is there.

    Now the good question:

    • Shall I try to load MSP430.dll V3.3.1.3 again?
    • Shall I do it by changing the file MSP430.dll in driver folder or by forcing FW update with MSP430Flasher or both?

    Regards

    Guenther

    PS: Thank you for your help recovering my FET430UIF!

  • Guenther Klenner said:
    Now the good question:
    • Shall I try to load MSP430.dll V3.3.1.3 again?
    • Shall I do it by changing the file MSP430.dll in driver folder or by forcing FW update with MSP430Flasher or both?

    To be honest, I don't know if the failure after attempting to upgrade to v3.3.1.3 was a once off "glitch", or due to a bug. Others have reported the "Could not set device VCC" and "Interface communication error" errors so a bug is possible.

    Since you a using a MSP430FR5738 one other way to try and avoid the RAM overwrite bug is to use the MSP430.dll in 1121.FR_RAM_corruption_fix.zip. This is built from the v3.2.5.4 source but with my fix for the RAM overwrite bug (v3.2.5.4 was the last published source code prior to v3.3.1.3). As it is built from v3.2.5.4 you will be prompted to update the MSP-430FETUIF on first use. I would do the update by changing the MSP430.dll in the CCS driver folder, since as far as I can tell CCS and MSP430Flasher both just call MSP430_FET_FwUpdate in the MSP430.dll to perform the update.

**Attention** This is a public forum