工具与软件:
在我们的项目中、我们利用传感器控制器定期测量电池、特别是每10分钟测量一次。 当指定的测量时间到达时、主 MCU 启动传感器控制器中的 ADC 任务并进入待机模式150ms、以在没有任何负载的情况下完成电池测量。 接着我们将引入8ms 的射频应力、并在高负载下再次测量一次电池。
激活 ADC 任务后、传感器控制器会切换到低功耗模式并等待130ms 以使电池达到稳定状态、尤其是在测量之前有任何高电流活动时。 然后它切换到工作模式、然后测量电池。
使用 Joulescope 监测相关过程时、我们在130ms 延迟内观察到一个小电流尖峰。 这种尖峰偶尔发生三次、大约每40ms 发生一次、在其他时间出现两次、一次以80ms 的间隔出现、另一次以40ms 的间隔出现。 它似乎与传感器控制器的唤醒相关。
什么可能导致传感器控制器在130ms 延迟期间唤醒、在此期间可能会消耗哪些活动的电流? 我可以确认主 MCU 在这段时间内保持待机模式。
请查看随附的 Joulescope 输出和用于传感器控制器 ADC 任务的代码片段。
在最初的65ms 延迟后也没有看到唤醒电流尖峰。
//进入低功耗模式
pwrRequestAndWaitForLowPowerMode ();
fwDelayUs(65000);
fwDelayUs(65000);
//返回激活模式
pwrRequestAndWaitForActiveMode();
//获取 ADC
fwAcquirePeripheral (PERIPHERAL_ADC);
//选择 ADC 输入
adcSelectIntInput (ADC_INPUT_VDDS);
adcEnableSync (ADC_REF_FIXED、ADC_SAMPLE_TIME_2P7_US、ADC_TRIGGER_MANUAL);
U16 adcval;
//对传感器进行采样并存储 ADC 值
adcGenManualTrigger();
adcReadFifo (adcval);
//禁用 ADC
adcDisable();
//释放 ADC
fwReleasePeripheral (PERIP_ADC);