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.

[参考译文] MSP430F5259:唤醒lpm4

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/657127/msp430f5259-waking-up-lpm4

部件号:MSP430F5259

我的lpm 4.5 代码:

.

 PMMCTL0_H = PMMPW_H;               //打开要写入的PMM寄存器
 PMMCTL0_L &=~(SVSHE);             //禁用高侧SVS
 PMMCTL0_L |= PMMREGOFF;            //并设置PMMREGOFF
 PMMCTL0_H = 0;                     //锁定PMM寄存器

__bis_sr_register (LPM4_bits | GIE);

端口ISR代码:

#pragma vector=Port1_vector
__interrupt void Port_1_ISR(void)

   _BIC_SR_REGISTER_ON_EXIT (LPM4_Bits);                
                                               
   P1IFG &=~(SATAIR_1 | SATAIR_2 | SATAIR_3 | SATAIR_4 | SATAIR_5);  
}

 LPM4命令对该MCU是否有效? 因为它不会唤醒和执行下面行中的代码...

IF (SYSRSTIV == SYSRSTIV_LPM5WU)
 {

}

当我写LPM3的代码时,微控制器被唤醒,没有问题。

谢谢...

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

    您好,

    为MSP430F5259发布了一个很好的示例代码,说明如何设置端口中断以从LPM4唤醒MCU。 该示例称为“msp430f525x_p1_02.c”,可以在TI资源管理器( http://dev.ti.com/tirex/#/?link=Software%2FMSP430Ware%2FDevices%2FMSP430F5XX_6XX%2FMSP430F5259 % 2FPeripheral%20Examples%2FRegister%20Level )中找到。

    这应该为您提供了一个编写代码的起点,以便使用端口中断从LPM4正确唤醒。

    此致,

    Matt Calvo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Matthew,您好!
    我认为您没有阅读消息意图。
    我在您关于4.5 的“好”示例中没有找到任何代码。
    MCU不能从此线路唤醒。
    IF (SYSRSTIV == SYSRSTIV_LPM5WU)


    }
    如果LPM3或LPM4的代码相同,则不会出现问题。
    我认为4.5 的记录有缺陷或不完整。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是否与此相关?
    来自勘误表:
    PORT19端口模块
    进入LPMx.5时可能会错过功能端口中断
    说明如果端口中断发生在设备条目的较小计时窗口(~1MCLK周期)内
    在3.5 L仍 或4.5 中,中断可能丢失。 因此,此中断不会
    从LPMx.5触发唤醒。
    解决方法无
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    从职位名称和文本中提出的问题来看,我认为您是在询问如何实施LPM4。

    现在我知道您在使用4.5 时遇到了问题,有几个参考资料可以帮助您至少了解4.5 过程中发生的情况以及为什么在调试过程中出现问题。 设备 《用户指南》的1.4 2节 详细介绍了如何进入和退出4.5 的相关信息,并给出了该过程中的一些一般准则和提示。 另一个要了解4.5  的资源是“调试MSP430 LLevi”应用报告,它探讨了在尝试调试器件是否正确进入和退出4.5 时如何处理器件完全关闭。

    如果您使用端口中断触发从4.5 唤醒,那么我看不到PORT19勘误表对您有何影响,因为用户按按钮或切换引脚的速度超过1 MCLK周期的几率极小或无。

    此致,

    Matt Calvo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当您进入4.5 时,必须使用以下代码:
    UCSCTL6 |= XT1OFF | XT2OFF;

    有以下几行

    PMMCTL0_H = PMMPW_H; //打开用于写入的PMM寄存器
    SVSMHCTL &=~(SVMHE+SVSHE); //禁用高端SVS
    SVSMLCTL &=~(SVMLE+SVSLE); //禁用低侧SVS
    PMMCTL0_L |= PMMREGOFF; //并设置PMMREGOFF
    PMMCTL0_H = 0; //锁定PMM寄存器
    __bis_sr_register (LPM4_bits | GIE);

    和退出后

    IF (SYSRSTIV == SYSRSTIV_LPM5WU)

    //端口设置后必须使用以下行...

    PMMCTL0_H = PMMPW_H; //打开PMM
    PM5CTL0 &=~LOCKIO; //清除LOCKBAK并启用端口
    PMMCTL0_H = 0x00; //关闭PMM// Hepsi CIKIS oldu。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    IF (SYSRSTIV == SYSRSTIV_LPM5WU)

    //设置端口后,必须使用以下行...

    PMMCTL0_H = PMMPW_H;//打开PMM
    PM5CTL0 &=~LOCKIO;//清除LOCKBAK并启用端口
    PMMCTL0_H = 0x00;//关闭PMM