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.

[参考译文] MSP430FR5994:LOCKLPM5 与 LFXT

Guru**** 2540720 points
Other Parts Discussed in Thread: ENERGYTRACE

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1567878/msp430fr5994-locklpm5-vs-lfxt

器件型号:MSP430FR5994
主题中讨论的其他部件:ENERGYTRACE

工具/软件:

LOCKLPM5 位似乎不适用于 PJSEL0.4(可能是 PJSEL.5)。

我在文档中找不到有关该内容的任何说明(UG revP 2020 年 4 月)。  

我发现、这一点根本不含糊:

12.3.1 复位后的配置
BOR 复位后、所有端口引脚都处于高阻抗状态并采用施密特触发器及其模块功能
禁用以防止任何交叉电流。

但是、我的调查显示情况并非如此。

复位后、在清除 LOCKLPM5 位之前、我的代码 会启动 LFXT:它会设置 PJSEL 位、清除故障标志并将标志设置为已完全清除。  在调试器中跟踪所有这些内容可确认一切正常工作。

它不应该、因为 LOCKLPM5 仍被设置。  在清除引脚功能之前、不应应用该功能。  对吗?

不清除 LOCKLPM5 位是我的错、我对 LFXT 运行正常感到非常困惑。  我的应用其余部分依赖于适当的 32.768kHz 时钟、其行为正常。  LFXT 确实正在运行!

为了仔细检查行为、我注释掉了 PJSEL 配置。  LFXT 不启动。  清除时会自动再次设置 LFXT 故障标志、就像应该一样。  

因此、即使设置了 LOCKLPM5 位、它看起来更改为 PJSEL.4 和 PJSEL.5 也是适用的。

你怎么看?

此致、

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

    我在 FR5969(也是 slau367 指南部件)LaunchPad 上使用此代码位进行了测试:

      PJSEL0 |= BIT4|BIT5;        // enable LFXT pins.
      //  PM5CTL0 &= ~LOCKLPM5;
      CSCTL0 = CSKEY;
      CSCTL2 = SELA__LFXTCLK|SELS__DCOCLK|SELM__DCOCLK;
      CSCTL3 = DIVA__1|DIVM__1|DIVS__8;
      
      CSCTL4 &= ~LFXTOFF;         // LFXT on
      // wait for it to start
      do {
        CSCTL5 &= ~LFXTOFFG;      // clear osc fault flag
        SFRIFG1 &= ~OFIFG;
      } while(SFRIFG1 & OFIFG);
      
    
      TA0CCR0 = 32768/64;
      TA0CCTL0 = CCIE;
      TA0CTL = TASSEL__ACLK|MC__UP|TACLR;
      
      __bis_SR_register(GIE);       //  interrupt
    
      while (1);
      

    无论是否清除 LOCKLPM5、它都会落入 while (1) 环路。 作为测试、删除 PJSEL0 线路会导致其卡在 OFIFG 环路中。

    这似乎是一件事。 不是一个错误,但只是一些意想不到的事情。 如果您在清除 LOCKLPM5 之前配置时钟而不想尝试、这里很方便。

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

    感谢您发送编修。

    嗨、Fred、 LOCKLPM5 位是否适用于其他 IO 引脚、或者您刚刚观察到它  在您的测试中不适用于 PJSEL0.4?

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

    嗨、Pengfei、

    我非常确定 LOCKLPM5 适用于其他 I/O、或者在复位后我会在这里和那里出现一些干扰。  一切看起来都不错。  此外,这将是不太可能的这样一个 bug 被忽视这么长时间。

    但 LFXT 指令与 LOCKLPM5 位可能会带来麻烦...   在 LPM3.5 之外、由于 PJSEL 位会复位且 LOCKLPM5 不适用、这意味着 LFXT 停止且必须重新启动。  LFXT 活动中的这种干扰将影响 RTC 的计时。

    哪一个延伸? 我不知道。 MODOSC 应该在 LFXT 关闭时接管、但其容差裕度很大。

    在任何情况下、我认为在文档(UG 或勘误表,由您决定)中提及所有这些内容都是相关的。

    你不想吗?

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

    不是很方便,因为它意味着 LFXT 停止在 LPM3.5……

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

    您好、Fred、

    很抱歉给您带来不便。  

    如果在 MCU 复位后立即配置 LFXT、该怎么办? 我不确定它是否可以作为一种解决方法来最大限度地减少此问题的影响。  

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

    这就是我从第 1 天开始一直在做的事情、直到最近(在设置 LPM3.5 唤醒时)、我的代码中出现了问题 、但仍然可以正常工作。   

    LFXT/MODOSC 备份理念让事情为我们工作、因此它没有受到任何影响。

    计时精度尚未测量。

    根据 EnergyTrace、MODOSC 在 LPM3.5 模式下处于关闭状态。  因此、仅在唤醒时出现 LFXT 干扰。

    希望 它不会影响太多的计时、因为 从 LPM3.5 唤醒不应该经常发生。

    但是、除了我们的应用程序之外、其他一些应用程序可能会因这种行为而遭受更多的损失。  

    请相应地更新文档。

    此致、