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.

[参考译文] MSP430F67791A:断电时,数据存储在内部闪存中

Guru**** 2512485 points
Other Parts Discussed in Thread: MSP430F67791A

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1065958/msp430f67791a-data-store-in-internal-flash-when-power-is-cut-off

部件号:MSP430F67791A
“线程: 测试”中讨论的其它部件
  • 大家好,在我们的应用程序中,当我们在 PMM 块中启用 SVM 和 SVS 时,MCU 会卡在打开电源关闭触发器上,您是否会共享工作示例代码供我们参考。

    我们参考用户手册中的“PMM 模块”一章。

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

    您好,

     此设备和其他设备的所有可用代码示例均可在 MSP430Ware 中找到。 目前没有特定于此零件的 PMM 模块的示例,但它在许多其他代码示例中被触及/使用。  

    您能否提供更多有关您正在尝试做什么的详细信息? 您的注册设置是什么?  您尝试适应什么情况?

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

    您好,

    我们正在根据以下内容使用 init:  

    /////INIT/////////////////////////
    
    void InitSNMIVector(void)
    {
    // Open PMM registers for write access
    PMMCTL0_H = 0xA5;
    // SVS and SVM high side Reset Release Voltage Level 3
    SVSMHCTL |= SVMHE | (SVSMHRRL_3) | (SVSHRVL_3) |SVSHE | SVSHFP;
    //enable SVM high side interrupt
    PMMRIE = SVMHIE;
    // Lock PMM registers for write access
    PMMCTL0_H = 0x00;
    }
    
    /////////////ISR/////////////////
    
    /*#pragma vector=SYSNMI_VECTOR
    __interrupt void sysNmiISR(void)
    {
    if(PMMIFG & SVMHIFG) //SVM high side interrupt flag
    {
    edata = &para.mode;
    Flash_Write(INFO_SEGD,edata,sizeof(para));
    //clear interrupt flag
    PMMIFG &= ~SVMHIFG;
    }
    }

      我的 MCU 仍在接通和关闭电源。 此设置的参考来源为:  MSP430Ware 。 如果我漏了一些东西,请纠正我的错误。

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

    您好,

    在论坛上发布代码时,请使用代码插入选项,</>,以便正确格式化代码。 我已经编辑过您的帖子以反映此更改。

    您尝试设置哪些电压级别来发出断电警告?  

    发生这种情况时,您在 DVCC 上的电压曲线图是什么?

    您看到 问题的电压级别是多少?

    此外,从提供的代码片段中,您的 ISR 似乎已被注释掉。  

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

    void InitSNMIVector(void)
    {
    // Open PMM registers for write access
    PMMCTL0_H = 0xA5;
    // SVS and SVM high side Reset Release Voltage Level 3
    SVSMHCTL |= SVMHE | (SVSMHRRL_3) | (SVSHRVL_3) |SVSHE | SVSHFP;
    //enable SVM high side interrupt
    PMMRIE = SVMHIE;
    // Lock PMM registers for write access
    PMMCTL0_H = 0x00;
    }
    
    /////////////ISR/////////////////
    
    #pragma vector=SYSNMI_VECTOR
    __interrupt void sysNmiISR(void)
    {
    if(PMMIFG & SVMHIFG) //SVM high side interrupt flag
    {
    edata = &para.mode;
    Flash_Write(INFO_SEGD,edata,sizeof(para));
    //clear interrupt flag
    PMMIFG &= ~SVMHIFG;
    }
    }

    ISR 中的第一条评论 只是针对测试因这种情况而卡住的程序,但我们发现了由于这种情况而卡住的问题。

    代码监视器内部的高侧表示 DVCC (SVSh 和 SVMh)。

    在 MSP430F67791A 内部,SVSMHRRL 始终大于或等于 SVSHRVL。

    此处 SVSHMRRL_3平均电压级别3,平均电压2.4V 当电压低于此电压时,它会产生中断。

    因此,当断电时,实时数据有时不会存储在闪存中,但代码卡滞问题仍然存在。

    因此,我的问题是注册设置是否正常。

    请重新填充此图像。 在此处,根据此图像设置 PMMCORE 设置时,设备不会唤醒。 但当我没有触摸 PMMCORE 设置时,问题仍然存在

    我附上了一张图片,请参考这张图片。

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

    您好,

    您只能通过代码示例中提供的功能或通过 DriverLib 调整核心电压。 这些提供的功能考虑了有关更改核心电压级别的正确步骤和几项勘误表。 如果您还没有这样做,请这样做。

    可以在核心电压变化之外对 PMM 进行其他调整,这与您要做的事情是一致的。 您需要查看您的 DVCC 电压及其下降斜率,以确定在断电并希望在闪存中保存信息的情况下,您的衰减速度有多快。 保存到闪存需要一段时间,因此您需要增加衰减和/或将 SVS 监视器电压设置为足够高,以便为自己留出足够的时间来保存信息。

    如果您在 VCORE 级别3下工作,则最小工作电压为2.4V。 如果您低于此值,则表明您的操作超出规格,因此需要关闭或调整 VCORE 级别+频率。 如果您将显示器设置为2.4V 电平,那么您将不会有任何超出规格操作的问题,因此无法保存信息。 例如,如果您的额定系统为3.3V DVCC,我会将您的显示器级别设置为~3.02V 或~2.70V,这样您就会收到足够的警告,可以执行您需要执行的操作。 当然,准确的设置取决于您的系统以及在断电时关闭操作所需的时间。 您可能还需要考虑 DVCC 线路的行为,以确保达到您设定的电平,这表明您的断电情况。  

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

    您好,  

    根据您的说明,内部闪存中的数据存储成功,但问题仍然存在。在快速通电/断电时,设备卡住。 我会给你发送一个视频。

    代码 SVM 电压电平的内部是~3.02电压 PMMCORE 电压是最高电平平均电压电平3,1.80电压。 根据该手册,我们的系统频率为1e2e.ti.com/.../Untitled.mp46.777MHz。 所以最后一个问题是相同的。 我无法得到准确的解决方案。

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

    索拉巴,

    我仍然不知道您目前给出的描述以及您提供的视频有什么问题。 我在这里假设 MSP430正在控制 LCD,我每次都看到 LCD 出现。 如果您有一个在电源断电时执行的闪存例程,我不建议您快速打开/关闭电源。 这可能会导致潜在的闪存损坏,因为随着快速充电/放电与稳定状态的对比,您的电压线路的衰减量会发生变化,然后再放电。 同样,VCC 线路的范围图将帮助您从电压角度了解当前情况。

    如果您的目标是在电源不稳定的情况下使您的系统更加稳定,那么我建议您使用 AUX 模块以及辅助甚至第三电源。  这些盖板可以像超级护盖一样简单,在电源不稳定的情况下保持电压表。 以下资源 中有几个不同 AUX 模块配置的示例,您可能感兴趣:https://www.ti.com/tool/TIDM-AUX-MODULE 

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

    您好,

      我们将 MCU 用于某些特定产品,如能量计,APFC。 对于此应用,主输入线路可能会根据电网快速打开和关闭。 在同一情况下,我们需要在接通电网(通电)时使仪表处于稳定状态。 参考我们尝试过的示例代码。 当交流电源(用于 MCU - DVCC 电源输入/输出)快速切断和关闭(例如计数10次)时,MCU 被卡在随机位置。 请求您运行相同的安装程序并生成 scenario.e2e.ti.com/.../6747.Test.zip

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

    索拉巴,

    由于频率与电压与 VCORE 级别冲突,您很可能在快速通电/断电的情况下未达到正确复位所需的下限电压和/或操作模块超出规格。 因此,在执行测试时,务必要在范围内查看 DVCC 的实际电压水平。

    如果在您的场景中没有适当的注意来确保 DVCC 在设备上的稳定性,您将会遇到意外的行为。 为了使您的设计更加坚固并考虑到这种情况,您的膝关节点使用 AUX 模块和备用电源。 有关更多详细信息,请参阅以上参考。  

    如果您已经在使用 AUX 模块,您如何利用 AUX 模块以及您的备用电源是什么?