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.

[参考译文] MSP430FR5972:FRAM取消问题

Guru**** 2590990 points
Other Parts Discussed in Thread: MSP430FR5972

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/636788/msp430fr5972-fram-cancellation-problem

部件号:MSP430FR5972

大家好  

我在MSP430FR5972中遇到了很大的问题,这些问题是由静电放电引起的,
发生静电放电时,机器主体会受到静电放电
有时,主程序的帧在某个位置发生更改,因此会更改instraction

代码被修改,系统进入块。 在这种情况下,需要使用固件对主板进行重新编程。

这是一个很大的问题。

为了避免这种情况,我尝试通过MPU寄存器保护程序存储器范围  

我只在汇编程序中编程。  

闪存块:

MOV.B #0A5H,MPUCTHIGH  
MOV.W #0400H,MPUSEGB1
MOV.W #0.13万H,MPUSEGB2
MOV.W #0FFFFH,MPUSAM /
BIC W  #(MPUSEGIXE + MPUSEG3WE+MPUSEG2WE+MPUSEG1WE),MPUSAM /
MOV.B #(MPUENA+MPULOCK),MPUCTL0W  
MOV.B #010H,MPUCTHIGH  
JMP $

在此之后,我尝试写入保护扇区,这会导致重置,这可能是可以接受的妥协  

但是,如果应用静电放电,情况 就会更糟。

所以我不知道如何解决这个问题,因为程序内存是不可接受的  

像RAM一样进行了修改,并且程序内存部分不会受到默认保护。  

 您是否有一些解决方案来真正保护程序存储器,使其不会被不必要的更改   

此致  

路易吉  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好Luigi,

    您将无法通过MPU解决此问题,因为与写访问冲突相比,这是FRAM内存损坏。 由于更换的FRAM单元可以通过重新编程来修复,我也相信ECC不会有太大用处。 大多数ESD注意事项均来自系统级别,因此必须予以解决,请参阅以下应用报告: www.ti.com/.../slaa530.pdf

    因此,您的PCB设计可能需要评估。 MSP430将遇到哪种类型的ESD事件? 请注意数据表第5.2 节中的ESD等级,TI不保证在指定范围之外的情况下正常运行。

    此致,
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好Ryan  

    这不是好消息,但我想知道,Fram是否比标准闪存更敏感

    静电放电?  

    因为我知道probelm只在位置存储器(Fram单元)上  

    程序计数器位于 放电发生时的位置
    通常只有一个或两个更改了值的单元格才会取消此位置  

    我将尝试通过固件解决此问题。

    此致  

    路易吉  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Luigi,

    与闪存相比,FRAM对ESD事件的敏感度稍高,但是系统级实施有助于降低ESD对MCU的影响。 为此,我再次强烈建议您查看SLAA530,您不太可能通过代码变通办法解决此问题。 ESD事件对您的VCC导轨有何影响? 设备在此期间是否遇到重置?

    此致,
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好Ryan
    我看不到Vcc轨道上的事件,部件没有损坏
    所有主板上都不会出现信号差或功能差的情况

    我看不到Vcc导轨上发生的特殊事件,部件没有损坏
    所有板上都不会出现信号差或功能差的情况,也不会在密集之后出现
    静电碟,为了模拟这个事件,我使用压电点火。

    在事件期间,有时会重置处理器,但通常会删除一个或多个处理器
    位置存储器。 我认为是事件发生时程序计数器的位置,例如:

    0.5万小时:MOV.w #2,edi
    0.5002万h mov.w #4,edi+1 etcc..
    如果在控制器执行行#0.5万h时发生该事件,则该位置和以下内容被取消或修改为不可定义的值,则我看到不会再修改一个或两个内存单元,通常是2个字

    我将解决此问题:

    我的内存中有空间,因此我将尝试复制其他部分中的固件,并且校验和不匹配
    我将尝试在基本地址上复制并重新加载固件。 我希望这是一个好的解决办法

    此致
    路易吉