睡眠模式配置

⚠️
你好。。谢谢你来到论坛。令人兴奋的消息!我们现在正在迁移到新的论坛平台,该平台将提供更好的功能,并包含在主对话网站中。所有员额和帐户都已迁移。我们现在只接受新论坛的流量-请在https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
71帖/ 0新
最后一篇
PM_Dialog
离线
最后一次露面:1天3小时前
职员
加入:2018-02-08 11:03
嗨,罗希特,

嗨,罗希特,

>>我不理解为什么在睡眠模式I2C数据不读书,甚至对其进行初始化,按您的建议后,

正如我已经提到,这是不可能使用任何外设模块,包括I2C和SPI接口时,在任何可用的睡眠模式。这是由设计!

该设备还可以在广告和连接间隔之间进入睡眠模式。

谢谢,PM_Dialog

拉贾普雷罗希特
离线
最后一次露面:1年1个月前
加入:2017-04-20 09:17
嗨pm_dialog,

嗨pm_dialog,

好吧,我的意思是醒来后即使经过重新初始化,无法读取数据。

此外,昨天我在测试时分享了一个观察,请查看相同的检查,让我知道您的反馈。

感谢和问候

罗希特R

拉贾普雷罗希特
离线
最后一次露面:1年1个月前
加入:2017-04-20 09:17
嗨pm_dialog,

嗨pm_dialog,

从我结束一个更新,

我已经使用外围计时器并在睡眠模式下使用该定时器配置的装置,即,10秒计时装置是活动状态,并且时间过去后进入延长休眠和5秒称为唤醒呼叫背部的使用app_easy_timer。

使用此配置,能够执行ARCH_EXTEDDED_SLEEP()和句点_WAKE_UP_TIMER_USED = EASY_TIMER_INVALID_TIMER;使用bkt检查。而且,能够读取I2C数据。

但唯一的问题是设备的操作成功率降低了,这意味着在10次操作中只有3次操作成功,而其余7次操作都失败了。

感谢和问候

罗希特R

阿坝州
离线
最后一次露面:1年2个月前
加入:2020-04-17 16:52
嗨rohit r,

嗨rohit r,

我设计相同的配置DA14583 MCU与Azoteq IQS621

如果你被邀请,我们可以分享我们在这个项目上的经验,感谢与我联系

致以最亲切的问候

阿兹丁巴胡

azdinebahou@gmail.com

拉贾普雷罗希特
离线
最后一次露面:1年1个月前
加入:2017-04-20 09:17
嗨Azdine BAHOU,

嗨Azdine BAHOU,

抱歉迟到的回复,我正在研究一些其他项目,所以我没有检查你的信息。

是的,如果你能帮我解决这个问题,这将是巨大的。

你会在这里分享你的项目细节,还是我要单独邮寄给你?

感谢和问候

罗希特R

拉贾普雷罗希特
离线
最后一次露面:1年1个月前
加入:2017-04-20 09:17
嗨pm_dialog,

嗨pm_dialog,

如前所述,使用外围定时器(定时器0)配置睡眠模式。

步骤,

1)在user_config.h文件中,我已经启用了EXT_SLEEP_ON

2) 使用外设计时器,10秒后调用arch_set_extended_sleep()函数并启动5秒app_easy_timer()

3)在app_easy_timer回调函数写入wakeup apis,如下所示,

静态孔隙app_wakeup_cb(空白)
{
句号_wake_up_timer_used = easy_timer_invalid_timer;
ARCH_DISABLE_SLEEP();
如果(GetBits16 (SYS_STAT_REG PER_IS_DOWN))
{
periph_init();
}

if(arch_ble_ext_wakeup_get()))
{
拱设置睡眠模式(应用默认睡眠模式);
ARCH_BLE_FORCE_WAKEUP();
拱门可外接唤醒关闭();
app_easy_wakeup();
}

i2c_init ();/ /重新启动i2c
}

4) 在下面的user_peripal.c文件中,

空白user_app_adv_undirect_complete (uint8_t状态)
{
//如果广告被取消,则更新广告数据并重新开始广告
如果(状态==间隙错误已取消)
{
拱门可外接唤醒开启();
user_app_adv_start();
}
}

结果,,

- 能够在外设计时器和App_easy_Timer调用回函数中保持BKT。

- 能够发送的数据包我的广告。

- 测量我的定制电路板的电流消耗使用DMM,它1.012毫安之间变化到791uA。

结论,

目前的消耗是远的,就像我之前告诉我的设备应该持续2年,但与此电流,我没有看到太多的区别,或者它不会进入睡眠。

我需要紧急帮助,我的团队给我压力,让我尽快解决这个问题。请查看这个反馈,并让我知道可以做些什么来增加设备寿命。

附上的代码链接 -

https://drive.google.com/file/d/1S_0wgnqJhgMoy3AiOd70uyj9dATt_yGS/view?u...

感谢和问候

罗希特R

PM_Dialog
离线
最后一次露面:1天3小时前
职员
加入:2018-02-08 11:03
嗨,罗希特,

嗨,罗希特,

你提到的:

“使用DMM我的定制电路板的测量消耗电流,它1.012毫安之间变化到791uA。”

这是平均电流消耗,或者在延长睡眠模式的设备时?你测量的电流消耗只为DA14583,或整个定制电路板?

我们强烈建议只测量DA14583的电流消耗-如果定制板有泄漏,消耗将会增加。

此外,由于它是DA14583,如果闪光灯现在断电,则消耗将再次增加。有一个函数,以便将SPI放在下电模式 - SPI_FLASH_POWER_DOWN() - 并且在这种情况下,除非您指示SPI闪光灯通电,否则您将无法与闪存进行交互。在开始与Flash互动之前,您应该调用SPI_FLASH_RELEASE_FROM_POWER_DOWN()。

多少钱功耗一旦广告停止,设备处于睡眠模式?

请尝试运行BLE_APP_SLEEPMODE(或PROX_REPORTER)SDK的示例,让设备进入永久睡眠模式,然后测量当前消耗。

请检查附带的屏幕截图。突出显示部分的消耗量是多少?

https://www.dialog-seminile.com/sites/default/files/training_04_sleep_mode_configurations.pdf.

谢谢,PM_Dialog

依恋:
拉贾普雷罗希特
离线
最后一次露面:1年1个月前
加入:2017-04-20 09:17
嗨pm_dialog,

嗨pm_dialog,

“这是平均电流消耗,还是在扩展睡眠模式下设备时? -我的设备会周期性地改变它的模式,即它在睡眠模式下保持5秒,然后在有源模式下保持10秒,根据我的观察,电流消耗大约是0.800mA(800uA)和1mA。参考这个,我得到平均电流大约900mA您是仅测量DA14583的电流消耗,还是测量整个定制电路板的电流消耗?”-我们测量了全定制电路板的电流消耗。

“另外,由于它是DA14583,如果闪光灯现在断电,那么消耗将再次增加。有一个功能,以便将SPI放在掉电模式下 - SPI_FLASH_POWER_DOWN() - 以及在这种情况下,您won’t be able to interact with the flash unless you instruct the SPI flash to be powered up. Before starting to interact with the flash, you should invoke spi_flash_release_from_power_down()." -是否有任何示例解释使用SPI flash以降低功耗的步骤。意味着在包含这些“spi_flash_power_down()”和“spi_flash_release_from_power_down()”函数(如初始化或任何宏定义)之前必须注意的任何强制步骤。需要遵循这些步骤。

以及如何检查自定义板当前消费使用smarsnippet作为您共享的图像?我已经找过相关文件了,但没找到。请分享。

另外,请浏览我的代码,并让我知道你的反馈。有什么是我错过的,导致这个问题。

感谢和问候

罗希特R

PM_Dialog
离线
最后一次露面:1天3小时前
职员
加入:2018-02-08 11:03
嗨,罗希特,

嗨,罗希特,

  1. 您提到1.012mA到791uA是整个电路板的平均电流消耗。这意味着您正在测量设备何时处于活动和延长睡眠模式。我不知道设计的组件是什么,但建议将所有外围组件(例如传感器)置于断电模式。您现在测量的是整个平均电流消耗,而不是DA14583!也许你可以检查你的PCB是否有泄漏。

  1. 例如,如果您与I2C接口(在活动模式下)交互,那么预期平均消耗量会增加,因为您在活动模式和I2C接口中测量整个电流:DA14583以及其他组件和泄漏等。

  1. 在测量睡眠电流时,也建议将闪光灯放入掉电模式。一旦设备处于永久睡眠模式,您只需调用SPI_FLASH_POWER_DOWN()“(当广告停止时)。此函数将为闪光灯发送相应的命令,然后将其敲入低电平能量模式。在开始与Flash互动之前,您应该调用SPI_FLASH_RELEASE_FROM_POWER_DOWN()。您只需要在应用程序文件中包含SPI_FLASH.H头文件。

  1. 为了测量只有DA14583消耗多少,我建议您遵循建议的教程。让芯片进入永久睡眠模式(广告停止),然后测量电流消耗。延长睡眠模式下的电流是多少?您可以在您的设计中进行快速测试吗?如果你能在Pro-DK中做到这一点,这将是伟大的,以便比较数字

  1. 该系统也将进入区间(广告或连接)之间的睡眠模式 - 有多少是广告间隔之间的休眠电流?所以,你可以明白消费也密切依赖于间隔 - 如果间隔越大,则系统会进入睡眠模式更多的时间,因此平均功耗将降低。

  1. 你能在设备播放广告时和停止播放并进入睡眠模式时分享屏幕截图吗?正常情况下,是应该开始广告5秒,然后5秒延长睡眠。

  1. 我在你的代码中看到你在使用无定向可连接广告。您是否有兴趣使用与对等设备相连的DA14583 ?

  1. 另外,你提到:“我的设备保持定期那就是它保持在睡眠模式5secs,然后在主动模式10secs改变其模式“--Do你的意思是当设备adverting,在adverting间隔的睡眠模式积极的?

  1. 一般来说,您可以从PRO主板J5引脚23供电您的定制板。这将允许您在SmartSnippets工具箱中使用PowerProfiler的所有功能。

谢谢,PM_Dialog

拉贾普雷罗希特
离线
最后一次露面:1年1个月前
加入:2017-04-20 09:17
嗨pm_dialog,

嗨pm_dialog,

谢谢你的反馈,

我会按照你的建议测试所有的点。

关于No.7-是的,我将设备连接到移动电话并通过应用分配数据。和我存储进入闪存的相同数据。

我没有按照你之前的建议在广告和连接间隔之间的睡眠时间配置设备。我使用定时器进入睡眠模式和唤醒使用app_easy定时器,你可以在我的代码中看到。

并且设备处于广告状态,我没有更改此部分

空白user_app_adv_undirect_complete (uint8_t状态)
{
//如果广告被取消,则更新广告数据并重新开始广告
如果(状态==间隙错误已取消)
{
拱门可外接唤醒开启();
user_app_adv_start();
}
}

也请考虑上述这些点,让我知道你对此的看法。

在此期间,我将测试由点的点,让你知道我的结果。

感谢和问候

罗希特R

拉贾普雷罗希特
离线
最后一次露面:1年1个月前
加入:2017-04-20 09:17
嗨pm_dialog,

嗨pm_dialog,

抱歉回复晚了,

我对具有I2C基本传感器的接口对话框开发套件。并闪烁我的固件并使用智能代码段试图计算电源配置文件。以下是附加结果。

还有,我试图禁用flash,因为你的建议,但代码进入nmi_handder我没有得到为什么?我还包含了spi_flash.h文件。你能分享一下步骤吗?

而在定制电路板,传感器直接与路径对话框MCU 3V3,所以我无法测试的定制电路板只有对话部分供电。

但是试着使用开发套件测试,在不连接传感器的情况下给我750mA左右的电流。你能建议做些什么改变吗。

此外,为了对功率曲线计算智能段做什么都设置?

提前致谢

罗希特R

依恋:
PM_Dialog
离线
最后一次露面:1天3小时前
职员
加入:2018-02-08 11:03
嗨,罗希特,

嗨,罗希特,

在所附的屏幕截图中,您正在测试的示例是什么?睡眠模式下的当前消耗量是多少?你遵循了教程吗?

>>和在自定义板中,传感器直接在路径中直接供电到对话框MCU,因此我无法在自定义板中测试对话框。

这取决于你的设计——你正在测量整个定制板的当前消耗,

谢谢,PM_Dialog

拉贾普雷罗希特
离线
最后一次露面:1年1个月前
加入:2017-04-20 09:17
嗨pm_dialog,

嗨pm_dialog,

附加的图像是自定义代码。

在此之前,正如教程文档中提到的,我在Development kit上尝试了prox_report示例,它显示了正确的阅读方法。

但我无法在自定义板上测试相同的例子,因为传感器也被电源打开并由于此电流很高。但是对于我的自定义代码告诉我更多的当前。你能帮我解决固件中的错误吗?

是的,我在测量整个定制板的当前消耗量。

提前致谢

罗希特R

拉贾普雷罗希特
离线
最后一次露面:1年1个月前
加入:2017-04-20 09:17
嗨pm_dialog,

嗨pm_dialog,

我这边有个最新消息,

在我的自定义代码,我所做的是广告中配置的睡眠模式,下面是摘录,

1) 在user_config.h文件中设置EXT_SLEEP_ON

2) 在名为arch\u set\u extended\u sleep()的user\u peripal.c文件中

空隙user_app_adv_start(无效)
{
//日程表的下一个广告数据更新
app_adv_data_update_timer_used = app_easy_timer(APP_ADV_DATA_UPDATE_TO, adv_data_update_timer_cb);

结构gapm\u start\u advision\u cmd*cmd;
CMD = app_easy_gap_undirected_advertise_get_active();

//动态添加特定制造商的数据
mnf_data_update();
app_add_ad_struct(cmd,&mnf_data,sizeof(struct mnf_specific_data_ad_structure));

//设置扩展睡眠在广告期间
arch_set_extended_sleep ();

app_easy_gap_undirected_advertise_start ();
}

与这些上述变化,我测试的开发工具包的代码和所测量的电流消耗而不连接传感器到开发套件和我有更小的电流消耗。而且我没有写代码中唤醒的程序呢。

现在,我的下一步是使用中断的唤醒设备。我有一个传感器RDY引脚,每5秒给我一个低电平。我已尝试在RDY_引脚中断处理程序中唤醒设备,但无法唤醒我的设备。

以下是检测低脉冲的GPIO配置。请检查此代码段是否包含在PIN配置期间需要启用的配置或任何其他参数的问题。

1) 硬件侧RDY引脚为输入端,通过电阻向上拉

2)配置片段,

// iqs62x_rdy_pin.
GPIO_ConfigurePin(IQS62X_GPIO_PORT, IQS62X_RDY_PIN, INPUT_PULLUP, PID_GPIO, false);
GPIO_EnableIRQ(IQS62X_GPIO_PORT, IQS62X_RDY_PIN, GPIO1_IRQn, true, true, 0);
GPIO_RegisterCallback (GPIO1_IRQn rdyinthaldr);

请帮我做这个。

提前致谢

罗希特R

拉贾普雷罗希特
离线
最后一次露面:1年1个月前
加入:2017-04-20 09:17
嗨pm_dialog,

嗨pm_dialog,

关于我之前的帖子有什么更新吗?

而我得到这个RDY中断引脚为低电平时存在的I2C数据。按照传感器的文件,我得到RDY低的时候有任何数据。你能不能帮我我怎么能读I2C数据是否存在或睡眠期间不睡觉之后?

另外,从睡眠中醒来后,我想在广告中宣传我的控制数据包的从属设备。你能帮我做一个功能吗?这个功能用于在醒来后发送广告包。意味着更新所有数据包,然后进入睡眠状态,在当前固件中,我在mnf_data_update()函数中更新数据包。我的要求是在唤醒后发送所有数据包,然后睡眠,否则直到数据包完成。

为了达到我的要求,我需要在以下功能中进行哪些更改?

/**
****************************************************************************************
* @brief应用唤醒回调函数。Registerd在API消息效用。
*@返回无效
****************************************************************************************
*/
静态孔隙app_wakeup_cb(空白)
{
//如果状态不是空闲,则忽略该消息
如果(ke_state_get(TASK_APP)== APP_CONNECTABLE)
{
user_app_adv_start();
}
}

提前致谢

罗希特R

PM_Dialog
离线
最后一次露面:1天3小时前
职员
加入:2018-02-08 11:03
嗨,罗希特,

嗨,罗希特,

我们将直接与您联系。

问候,PM_Dialog

拉贾普雷罗希特
离线
最后一次露面:1年1个月前
加入:2017-04-20 09:17
嗨pm_dialog,

嗨pm_dialog,

从我的终端更新,我能够在RDY引脚变低时配置唤醒设备。我已在广告期间配置睡眠,并在RDY引脚变低时醒来。

但我在外设计时器0中面临不同的问题。我已将周期计时器0配置为200毫秒的重新加载时间。在我的自定义应用程序中,我的要求是当检测到事件时启动30秒计时器,当定义的计时器已过时,使时间计数=0。在没有睡眠配置时,它绝对可以正常工作,现在我已合并睡眠计时器0,但未正常工作。

手段,我的时间计数获得零15秒内前30秒计时器结束。我不是低估的问题。即使我尝试了1分钟计时器也有1分钟流逝计时器计时得到0 withing 30秒前。

你能帮我看看是什么问题吗?我在调试模式下检查。

提前致谢

罗希特R

PM_Dialog
离线
最后一次露面:1天3小时前
职员
加入:2018-02-08 11:03
嗨,罗希特,

嗨,罗希特,

如果您想通过RDY中断醒来,则冷却使用唤醒控制器。该实现应与BLE_APP_SLEEPMODE示例类似,以及它如何使用外部GPIO作为唤醒源。所以,自从你提到你可以通过RDY唤醒,我假设你已经完成了类似的实现。

关于您关于SW定时器0的后续问题,如果我理解正确,问题是当设备处于睡眠模式时计数不正确?我的理解正确吗?这是因为当延长睡眠时,系统可以通过BLE定时器同步唤醒,或者通过唤醒控制器通过外部中断(输入)异步唤醒。

我们强烈建议,以提高每每一个问题一个新的论坛股票,使我们能更好地处理你的问题。有你所有的问题一票,是很难获得和搜索所有可用的信息。

谢谢,PM_Dialog

拉贾普雷罗希特
离线
最后一次露面:1年1个月前
加入:2017-04-20 09:17
嗨pm_dialog,

嗨pm_dialog,

谢谢你的反馈。

是的,我也一样ble_sleep_mode例如唤醒使用RDY引脚的器件。

当RDY引脚变为低电平,则器件将被唤醒,它也从传感器事件,因此,如果事件中,我启动定时器0,等待30秒或1分钟规定时间再经过时间的流逝使数0。在此,我的定时器减少也就是说,如果我开始30秒计时器它得到30秒完成之前结束。

这个问题在添加睡眠后出现。我知道在睡眠期间其他外围设备会关闭,但我的问题是醒来后。请告诉我如何处理这件事。

感谢和问候

罗希特R

拉贾普雷罗希特
离线
最后一次露面:1年1个月前
加入:2017-04-20 09:17
嗨pm_dialog,

嗨pm_dialog,

我试图使用RDY引脚唤醒设备,但设备不稳定。我无法正确阅读I2C数据。有时我有某个时间得到数据,而且只有在I2C寄存器的地址上存在数据时,我的RDY引脚才会降低。

请帮助我,我应该做什么,使设备稳定,睡眠和唤醒正常,没有任何问题。这件事对我来说很紧急。

提前致谢

罗希特R