Other Parts Discussed in Thread: LP-MSPM0L1117, MSPM0L1117
器件型号: MSPM0L1117
您好:
我目前正在研究一款概念验证器件、遇到了我不完全理解的意外行为。 在此阶段、我使用 LP-MSPM0L1117 LaunchPad、因为它足以评估 MCU 是否满足我的要求。
我的主要目标是在 MSPM0L1117 实现尽可能低的功耗的同时保持精确的时间测量。 为了更大限度地降低功耗、器件进入 Standby1 模式。 根据文档、TimerG0 可在此模式下使用、因此我要将它用作时基。
为了降低 BOM 成本、计时器由内部 LFOSC 而不是外部 LFXT 提供时钟。 我从另一个 MCU 移植了与时序相关的代码、该 MCU 已在多个制造商提供的器件上成功使用。 但是、在 MSPM0L1117 上、行为不一致。
经过进一步调查、我找到了一个演示该问题的极小示例。 TimerG0 配置在 0xFFFF 的溢出中断、并以完整 LFOSC 频率 (~32kHz) 运行、同时器件保持运行模式(即不进入 Standby1)。 在中断服务例程中、我切换 GPIO 引脚并使用 Saleae 逻辑分析仪监测引脚。
GPIO 切换之间的预期周期约为 2 秒。 然而、在实践中、间隔最多为 900µs。 我从未从我合作过的其他制造商那里观察到这种类型的 MCU 行为。
我知道 LFOSC 精度被指定为约±3%、因此我不期望周期恰好为 2 秒。 但是、我不明白为什么中断不会在恒定周期发生。 当我将 LFOSC 时钟路由到输出引脚并进行测量时、频率看起来稳定在大约 33kHz。
当我切换到 LaunchPad 上可用的外部晶体振荡器时、中断周期变得稳定且高度精确、最大变化约为 30µs、这是可以接受和预期的。
关于将 LFOSC 与 TimerG0 配合使用、尤其是在时钟稳定性、同步或低功耗模式方面、是否存在任何问题? 在使用 LFOSC 时、是否有任何已知的限制或配置细节可以解释此行为、或任何实现更稳定时序的建议方法?


