您好!
我的客户使用 MSP430FR2633制作了应用
CapTIvate。 他们评估了电流消耗。
它们设置了"不活动超时= 10000"、以避免在"接近唤醒"后睡眠。 因此、确认了意外的电流消耗。
(此项目基于设计中心版本1.7的示例代码)
问题1:
似乎"不活动超时"也应用于"唤醒间隔"的扫描时序。 (一段时间内不睡眠)
是这样吗?
问题2:
我们希望仅将"不活动超时"应用于"接近唤醒"。 这是可行的吗?
此致、Rei
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.
您好!
我的客户使用 MSP430FR2633制作了应用
CapTIvate。 他们评估了电流消耗。
它们设置了"不活动超时= 10000"、以避免在"接近唤醒"后睡眠。 因此、确认了意外的电流消耗。
(此项目基于设计中心版本1.7的示例代码)
问题1:
似乎"不活动超时"也应用于"唤醒间隔"的扫描时序。 (一段时间内不睡眠)
是这样吗?
问题2:
我们希望仅将"不活动超时"应用于"接近唤醒"。 这是可行的吗?
此致、Rei
您好 Rei、
感谢您访问该论坛。
我首先要询问一些其他信息:
您也引用了哪个示例代码?
您希望有什么延迟? 为什么要将参数设置为1000?
活动模式扫描速率是多少?
《技术指南》中定义了"不活动超时"。 请在我们的文档中查看该信息。
"不活动超时是指在没有接近检测后 CPU 继续扫描所有传感器的时间。 超时结束时、MCU 重新进入超低功耗接近唤醒模式。 超时时间基于“活动扫描速率”乘以“非活动超时”值。
此参数的默认值为32个样本、这意味着 CPU 在接近检测唤醒后的32个样本保持活动状态、然后再返回 LPM。
在接近唤醒模式下进行的常规扫描在没有 CPU 参与的情况下完成。 增加不活动时间将增加 CPU 处于活动状态的时间、从而消耗更多功率。
对于问题2、是的、不活动超时适用于接近唤醒。 它与 GUI 中选择用于接近感应的传感器相关。
我希望我正确理解您的问题、我的回答有助于澄清问题。
如果您有其他问题、请随时联系论坛。
此致
Kostas
您好 Rei、
我将在今后几天离开,因此,这里提出了一个如何做到这一点的简短建议。
当定期唤醒以进行校准时退出 WOP (g_bConvCounterFlag=true),请求在激活模式下具有更短的时间(g_ui16UISesionTimeoutCtr),而不是较长的不活动时间。
在 CAPT_App.c 中、请修改以下内容
…………
案例 eUIWakeOnProx:
#if (CAPT_WAKEONPROX_ENABLE=true)
IF (g_bDetectionFlag || g_bConvCounterFlag || g_bMaxCountErrorFlag)
{
//
//如果设置了检测、转换计数器或最大计数错误标志,
//停止自主模式并重新加载活动会话
CAPT_STOPWakeOnProxMode (&CAPT_WAKEONPROX_SENSOR、0);
//=>在此处添加:
如果唤醒不是由(g_bDetectionFlag)引起的、而不是 由(g_bMaxCountErrorFlag)引起的
和(g_BConvCounterFlag)设置为
设置(g_ui16uISesionTimeoutCtr)=小值(例如10);
否则设为 (g_ui16uISesionTimeoutCtr)= g_uiApp.ui16InactivityTimeout (已设置)。
G_bDetectionFlag = false;
G_bConvCounterFlag = false;
G_bMaxCountErrorFlag = false;
G_uiApp.state = eUIActive;
// g_ui16uISesionTimeoutCtr = g_uiApp.ui16InactivityTimeout;
===========================
下面是一个简单的实现:
如果(!g_bDetectionFlag)
{
if (!g_bMaxCountErrorFlag)
{
IF (g_BConvCounterFlag)
G_ui16UsersionTimeoutCtr = 10;
其他
G_ui16uISesionTimeoutCtr = g_uiApp.ui16InactivityTimeout;
}
}
其他
G_ui16uISesionTimeoutCtr = g_uiApp.ui16InactivityTimeout;
如果唤醒是由 ConvCounterFlag 引起的,那么 SessionTimeout 将是短的,如果它是由任何其他事件引起的,它将保持与 InactivityTimeout 定义的相同。
我已经做了一些基本测试、似乎可以正常工作。
本章结尾提供了更多信息和示例
请告诉我该建议是否能解决您的问题。
谢谢
此致
Kostas