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.

[参考译文] MSP430F5438A:RTC_A 显示奇怪的 PS1IFG 行为

Guru**** 2558250 points
Other Parts Discussed in Thread: MSP-FET

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/597627/msp430f5438a-rtc_a-shows-strange-ps1ifg-behaviour

器件型号:MSP430F5438A
主题中讨论的其他器件:MSP-FET

大家好!

对于一个低功耗应用、我使用 RTC_A 作为中断源来唤醒 MCU;ACLK=XT1=32768Hz。

初始代码如下(MCLK = DCO = 12MHz -足够快):

MOV #RT0PSHOLD、&RTCPS0CTL
MOV #RT1PSHOLD、和 RTCPS1CTL  //两个预分频器都处于保持状态-希望内部分频器应该被复位(顺便说一下、没有关于这个主题的描述)
MOV #RT0PSDIV_7、&RTCPS0CTL // CLK-SOURCE=ACLK、IRQ 未被启用。
MOV #RT1SSEL_2+RT1IP_7+RT1PSIE、&RTCPS1CTL
NOP
BIS #GIE+CPUOFF+SCG0+SCG1、SR //将 MCU 置于 LPM3中并等待中断

要点是、当我置位 RTCPS1CTL 时、IFG 也会立即置位。 这不仅发生在调试模式(IAR Workbench 和最新的 MSP-FET 调试器)中、而且也发生在运行时。 当然、在这种情况下、LPM3模式是无用的、并且永远无法实现正确的时序。
唯一的替代方法是在将 MCU 置于 LPM3之前手动复位 IFG、例如"BIC #RT1PSIFG、&RTCPS1CTL"。 令人疯狂的是、在另一个代码位置、预先设置的 IFG 不会出现问题。

那么、IFG-flag 有什么问题? 还很重要:当将预分频器设置为保持时、其分频器是否也会复位?

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

    您是否有 C 版本的代码以使其更易读? 此外、我想在我自己的设置中测试这一点、您能否提供重新创建问题的简化代码版本? 乍一看、我不确定是什么导致了问题、但我会不断挖掘。 不过、您的代码将会大有帮助。

    最后、当预分频器被保持时、分频器不会被复位。 默认情况下、它们设置为0 (除以2)、但如果您更改它们、然后将预分频器设置为保持、它们不会返回到0。

    此致、
    Caleb Overbay
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我现在至少发现了一个错误:我将 PMM 的 SVxL 部分提高到了全性能、但未按照勘误表 PMM9中的报告设置 SVMLE-FLAG。
    如果预分频器持续工作、那么很明显 IFG 可以设置得太早(尤其是在调试期间)-但调试器显然会覆盖 SVMLE-也许 JTAG 通信导致的延迟会覆盖这个问题吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Jurgen、

    感谢您的更新。 我无法理解您的上一个帖子。 修复 PMM 错误是否解决了该问题? 您能提供更多的说明吗?

    此致、
    Caleb Overbay
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果不设置 SVMLE-Flag、那么当从 LPM3返回时、内部2us 超时是不够的、因为 SVxL-比较 器需要更多的时间-然后会产生不稳定的 SVMLIFG、从而导致 POR -请参阅 PMM9。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Jurgen、

    我了解 PMM9、但问在该勘误表中添加变通办法是否有助于解决您遇到的另一个 RTC 问题?

    此致、
    Caleb Overbay
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为它现在起作用了-当然、当预分频器从不停止运行时、人们永远不知道中断何时真正发生。

    这是我的另一个问题:是否有可能以某种方式"重置"预分频器? 我的目的是在 LPM3中将 RTC 用作延迟源、而无需持续重新配置计时器。 但是、当我不知道分频器的精确状态时、几乎可以在任何时间发生中断。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Jurgen、

    当使用 RTCMODE 位 RTC 模块从日历模式切换到计数器模式时、RT0PS 和 RT1PS 的计数值被复位。 您还可以将"0"写入 RT0PS 和/或 RT1PS 寄存器、写入将立即生效。 这样、当将分频器用作延迟源时、您就可以知道精确的计数。

    此致、
    Caleb Overbay