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.

[参考译文] MSP430FR2355:LMP4.5退出问题

Guru**** 2549960 points
Other Parts Discussed in Thread: MSP430FR2355

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/748591/msp430fr2355-lmp4-5-exit-issue

器件型号:MSP430FR2355

您好!

我尝试生成 LMP4.5退出、但器件从未在 PCB 上检测到中断。

我让 MCU 进入深度睡眠模式(LMP4.5)、一旦按下引脚2.4上的开关以退出该模式。

我的代码如下:

int main ()
{
WDTCTL = WDTPW + WDTHOLD;//停止看门狗计时器

P1DIR = 0xFF;P2DIR = 0xFF;P3DIR = 0xFF;P4DIR = 0xFF;P5DIR = 0xFF; P6DIR = 0xFF;
P1REN = 0xFF;P2REN = 0xFF;P3REN = 0xFF;P4REN = 0xFF; P5REN = 0xFF;P6REN = 0xFF;
P1OUT = 0x00;P2OUT = 0x00;P3OUT = 0x00; P4OUT = 0x00;P5OUT = 0x00;P6OUT = 0x00;

//禁用 GPIO 上电默认高阻抗模式
//激活先前配置的端口设置
PM5CTL0 &=~LOCKLPM5;

//配置16MHz XTAL
//根据器件数据表的要求配置一个 FRAM 等待状态以实现 MCLK
//在8MHz 之前的操作配置时钟系统。
FRCTL0 = FRCTLPW | NWAITS_1;

CSCTL6 |= XTS + XT1HFFREQ_2; //选择 XT1 HF 模式
//为晶振@16MHz CSCTL4 =
SELMS_XT1CLK | SELA_REFOCLK 设置适当的高频率; //设置 MCLK = XT1CLK = 4MHz
// XT1CLK = MCLK 和 SMCLK 源

P2SEL1 |= BIT6 | BIT7; // P2.6~P2.7:晶体引脚
执行
{
CSCTL7 &=~(XT1OFFG | DCOFFG); //清除 XT1和 DCO 故障标志
SFRIFG1 &=~OFIFG;
}while (SFRIFG1和 OFIFG); //测试振荡器故障标志
CSCTL5 |= DIVM_0 | DIVS_1; // MCLK = XT1CLK = 16MHz、
// SMCLK = MCLK/2 = 8MHz



//确定我们是从 LPMx.5还是常规复位中退出。
IF (SYSRSTIV = SYSRSTIV_LPM5WU) // MSP430刚刚从 LPMx.5中唤醒
{
//不执行任何操作,让 FW 运行

} 其他
{

//器件从冷启动加电。
//它配置器件并将器件置于 LPM4.5中

P2DIR &=~(BIT4); //将 P2.4配置为输入方向引脚
P2OUT &=~(BIT4); //将 P2.4配置为下拉
P2REN |= BIT4; // P2.4上拉寄存器使能
P2IES &=~(BIT4); // P2.4低边沿/高边沿
P2IFG = 0; //清除所有 P2中断标志
P2IE |= BIT4; // P2.4中断被启用

//显式清除 RTC 控制寄存器以禁用它
//以防之前启用 RTC
disable_rtc();



PMMCTL0_H = PMMPW_H; //打开 PMM 寄存器进行写入
PMMCTL0_L |= PMMREGOFF; //并设置 PMMREGOFF
PMMCTL0_H = 0; //锁定 PMM 寄存器


//输入 LPM4请注意,此操作不会返回。 LPM4.5
//将通过复位事件退出,从而重新启动
代码的//。
_bis_SR_register (LPM4_bits | GIE);
}

//主程序
while (1)
{

}


上述内容进入 LMP4.5、在调试和在 RESET 引脚上应用复位时、它会检测但不检测引脚2.4中断。 我出了什么问题?

谢谢、

Vlad

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

    LPM4.5现在不支持调试模式。 因此、当它从 LPM4.5弱时、您不能在中断断点停止它。

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

    我没有在调试模式下进行此操作我对电路板进行编程、删除编程器并监控 LMP 上的电流、由于电流始终保持在几百 uA、因此软件永远不会启动。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好、Vlad

    与官方代码示例相比、我在这里发现了一些要点
    输出侧晶体的频率是多少? 不像代码示例 msp430fr235x_CS_03.c 那样配置 CSCTL1。 您不能进行修整、但必须配置 DCORSEL 来选择 DCO 操作的频率
    2.函数 disable_rtc()中的内容;

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

    外部晶振为16MHz。 在这种情况下、我不想使用 DCO、因为它应该从外部时钟运行。

    disable_rtc ()函数清除 RTC 计数寄存器、禁用中断并使用 RTCCTL = 0禁用 RTC;
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好、Vlad

    您能否执行不在 LPM4.5之间的测试、使用有源模式并输出 SMCLK、以查看您的晶体是否首先工作?
    顺便说一下、两个晶振引脚上的外部电容器是什么?

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

    晶体工作-我已经使用晶体完成了所有应用。 在正常运行时、我可以看到 MCLK 和 SMCLK 处于正确的频率。 最后需要退出 LMP4.5。

    我有1.2pF 的分流器连接到 GND、而在 parralel 中有~2.2pF 的分流器、可将时钟调谐到高精度。

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

    你(们)好、Vlad

    请注意、在数据表中、"HFXT 必须在进入 LPM3、LPM4或 LPMx.5模式之前被禁用。" 因此、您可以尝试 通过清除  CSCTL6寄存器中的 XTS 位来禁用 HFXT。

    此致

    Gary

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这也不起作用。 仍然无法从 LMP4.5恢复
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好、Vlad

    您能否尝试 LPM3.5和 LPM4来查看它是否可以正常工作? 我将从我的站点设置硬件。 您可以上传最新的测试代码给我吗?

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

    你(们)好、Vlad

     两个晶振引脚上的电容器似乎太小。 我们可以看到 MSP430FR2355的数据表中说"这些值由晶体制造商指定。 支持的建议值为14pF、16pF 和18pF。 最大分流电容为7pF。" 第30页。 您能确认晶体制造商指定的值吗?  

    此致

    Gary

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    晶体不是问题。 我正在使用内部 DCO 和 REFO 配置器件、但它仍然不会唤醒并在 strage 状态下挂起(功耗不足、无法进入睡眠模式、功耗不足、无法运行)。 不管怎样、由于没有找到解决方案且缺少支持、我不得不放弃使用 TI 器件。 感谢支持的 Gary。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好、Vlad

    很抱歉、由于我的另一个负载工作、不能很快支持。 我已经测试了 DCO 和 XT1 (外部为4MHz 高速晶振)、并且这两个选项都可以由 GPIO 唤醒。 因此、您的一侧应该存在一些硬件问题、也许您的 GPIO 引脚焊接不当、或者 GPIO 受到 ESD 或其他因素的损坏。(您可以更改其他器件进行下一个测试)您是否可以改回 MSP430? 我可以在将来为您提供更多的时间支持。

    此致

    Gary

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

    您能否立即更新您的项目?

    此致
    Gary