"Thread:SysConfig"中讨论的其他器件
我观察到在 低功耗模式下花费大量时间的模块中存在一些时间漂移(在一种情况下每天3秒)。 我仅安装了48MHz 晶体、因此我假设这是依赖于 RCOSC。 我有一个 GPIO、当模块位于电量充足的"基站"时、该 GPIO 被拉至接地。因此、我希望它启动并依靠48MHz 晶体进行所有计时。 我最初想、我可以用 SysConfig 配置 LF 时钟源自 HF、at init 执行:
if (GPIO_read(BASE_GPIO) != 0)
{
OSCClockSourceSet(OSC_SRC_CLK_LF, OSC_RCOSC_LF);
while (OSCClockSourceGet(OSC_SRC_CLK_LF) != OSC_RCOSC_LF)
;
}
但是、这不能 实现低功耗。 它在1mA 左右处于空闲状态、而如果 SysConfig LF 为 RCOSC、则它为~90uA。 可能还有另一条路线要去。 替代方案是使用 RSOSC 初始化、然后更改为 XOSC_HF (当您在 SysConfig 中选择"Demined from HF XOSC 时、似乎会发生这种情况)、但当我尝试通过 BLE 进行连接时、它超时:
if (GPIO_read(BASE_GPIO) == 0)
{
OSCClockSourceSet(OSC_SRC_CLK_LF, OSC_XOSC_HF);
while (OSCClockSourceGet(OSC_SRC_CLK_LF) != OSC_XOSC_HF)
;
}
我看到 SysConfig 输出仅用于构建.ccfg 并在引导时加载、因此我不确定这是正确的路由。