⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.xmece.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
71个员额/ 0个新员额
最后发表
PM_Dialog
离线
最后看到:1周3天前
工作人员
加入:2018-02-08 11:03
嗨罗希特,

嗨罗希特,

>>我不理解为什么在睡眠模式下I2C数据不读取,即使按照你的建议初始化它

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

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

谢谢,PM_Dialog

Rajapurerohit
离线
最后看到:1年1个月前
加入:2017-04-20 09:17
你好,下午对话,

你好,下午对话,

我的意思是,即使在重新初始化之后在醒来后,也无法读取数据。

另外,昨天我分享了一个观察,请检查相同的,并让我知道你的反馈。

谢谢和问候

罗希特河

Rajapurerohit
离线
最后看到:1年1个月前
加入:2017-04-20 09:17
你好,下午对话,

你好,下午对话,

我这边有个最新消息,

我已经使用了外围计时器,并在睡眠模式下使用这个计时器配置的设备,即,10秒计时器设备是一个活动状态,在时间经过后进入延长睡眠,并使用app_easy_timer的5秒称为唤醒回叫。

使用此配置,可以执行arch_extended_sleep()和periodic_wake_up_timer_used=EASY_timer_INVALID_timer;使用BKT检查。还可以读取I2C数据。

但唯一的问题是手术的成功率降低了,10次手术中只有3次手术成功,其余7次手术失败。

谢谢和问候

罗希特河

ABAHOU
离线
最后看到:1年3个月前
加入:2020-04-17 16:52
嗨Rohit R,

嗨Rohit R,

我正在设计与Azoteq IQS621相同配置的DA14583 Mcu

如果你感兴趣,我们可以分享我们在这个项目上的经验,感谢联系我

顺致敬意,

Azdine BAHOU

azdinebahou@gmail.com

Rajapurerohit
离线
最后看到:1年1个月前
加入:2017-04-20 09:17
嗨Azdine BAHOU,

嗨Azdine BAHOU,

很抱歉回复得太晚,我正在做其他项目,所以我没有检查你的邮件。

是的,如果你能帮我解决这个问题就太好了。

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

谢谢和问候

罗希特河

Rajapurerohit
离线
最后看到:1年1个月前
加入:2017-04-20 09:17
你好,下午对话,

你好,下午对话,

正如我之前解释的那样,使用外围计时器(计时器0)配置睡眠模式。

步骤,

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

2)使用外围定时器,在10sec之后调用arch_set_extended_sleep()函数,并启动5sec app_easy_timer()

3) 在app_easy_定时器回调函数中编写的唤醒API如下所示,

静态无效应用程序\唤醒\ cb(无效)

定期唤醒定时器使用=容易定时器无效定时器;
拱_禁用_睡眠();
if(GetBits16(系统状态寄存器,PER向下))

periph_init();

if(arch_ble_ext_wakeup_get())

arch_set_sleep_mode (app_default_sleep_mode);
拱力唤醒();
arch_ble_ext_wakeup_off ();
app_easy_wakeup();

i2c_init()//重新初始化i2c

4)在user_peripheral.c文件下面更改,

无效用户\u应用\u高级\u无方向\u完成(uint8\t状态)

//如果广告被取消,则更新广告数据并再次开始广告
if (status == = GAP_ERR_CANCELED) / /取消

arch_ble_ext_wakeup_on ();
user_app_adv_start ();

结果,

-能够保持BKT在外设定时器和app_easy_定时器回拨功能中。

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

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

结论:,

电流消耗非常大,正如我早些时候所说的,我的设备应该可以使用20年,但有了这个电流,我看不出有多大的区别,或者它没有进入睡眠状态。

我需要紧急帮助,我的团队向我施加压力,要求我尽快解决这个问题。请转到此反馈,让我知道可以做些什么来延长设备寿命。

附件是代码链接-

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

谢谢和问候

罗希特河

PM_Dialog
离线
最后看到:1周3天前
工作人员
加入:2018-02-08 11:03
嗨罗希特,

嗨罗希特,

你提到过:

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

这是平均电流消耗,还是当设备处于延长睡眠模式时?您是仅测量DA14583的当前消耗,还是测量整个定制板的当前消耗?

我们强烈建议仅测量DA14583的电流消耗–如果定制电路板存在泄漏,则消耗将增加。

此外,由于它是DA14583,如果闪存现在断电,那么功耗将再次增加。有一个功能可以将SPI置于断电模式-SPI_flash_power_down()-在这种情况下,除非您指示SPI闪存通电,否则您将无法与闪存交互。在开始与闪存交互之前,您应该从\u power\u down()调用SPI\u flash\u release\u。

一旦广告停止,设备进入睡眠模式,耗电量是多少?

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

请查看附件截图。高亮显示部分的消耗是多少?

//www.xmece.com/sites/default/files/training_04_sleep_mode_configurations.pdf

谢谢,PM_Dialog

附件:
Rajapurerohit
离线
最后看到:1年1个月前
加入:2017-04-20 09:17
你好,下午对话,

你好,下午对话,

“这是平均电流消耗,还是设备处于延长睡眠模式-我的设备定期改变其模式,即保持睡眠模式5秒,然后保持活动模式10秒,根据我的观察,电流消耗分别约为0.800mA(800uA)和1mA。参考这一点,我得到的平均电流约为900mA您是仅测量DA14583的当前消耗,还是整个定制板的消耗?”-我们测量了整个定制板的当前消耗量。

“此外,由于它是DA14583,如果现在关闭闪存电源,则功耗将再次增加。有一个函数可以将SPI置于断电模式-SPI_flash_power_down()-在这种情况下,除非您指示SPI闪存通电,否则您将无法与闪存交互。在开始与flash交互之前,您应该调用spi_flash_release_from_power_down()-是否有任何示例解释了使用SPI闪存以降低功耗的步骤。是指在包含这些“spi_flash_power_down()”和“spi_flash_release_from_power_down()”函数(如初始化或任何宏)之前需要注意的任何强制性步骤。需要采取步骤来遵循这一点。

以及如何在共享图像时使用SmartSnippet检查自定义电路板的电流消耗?我已经搜索了相关文件,但没有找到。如果你有分享,请告诉我。

另外,请检查我的代码,并让我知道您的反馈。我是否遗漏了导致此问题的任何内容。

谢谢和问候

罗希特河

PM_Dialog
离线
最后看到:1周3天前
工作人员
加入:2018-02-08 11:03
嗨罗希特,

嗨罗希特,

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

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

  1. 在测量睡眠电流时,也建议将闪光灯置于断电模式。一旦设备处于永久睡眠模式,您只需调用spi_FLASH_power_down()(当广告停止时)。此函数将向闪存发送适当的命令,然后将其置于低能模式。在开始与闪存交互之前,您应该从\u power\u down()调用spi\u FLASH\u release\u。您只需要在应用程序文件中包含spi\u FLASH.h头文件。

  1. 为了测量只有DA14583消耗了多少,我建议您遵循建议的教程。让芯片进入永久睡眠模式(广告停止)然后测量电流消耗。在延长睡眠模式下的电流是多少?请在您的设计中进行一个快速测试。如果您也可以在Pro DK中进行测试,以便比较数字,那就太好了

  1. 系统也进入睡眠模式之间的间隔(广告或连接)-多少睡眠电流之间的广告间隔?因此,你可以理解,消费也密切依赖于间隔-如果间隔更大,那么系统将进入睡眠模式更多的时间,因此平均消费将更低。

  1. 当设备正在播放广告时,以及当设备停止播放广告并进入睡眠模式时,您是否可以共享屏幕截图?通常情况下,is应该开始广告宣传5秒钟,然后在延长睡眠时间5秒钟。

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

  1. 另外,你提到:“我的设备会周期性地改变它的模式,即它保持在睡眠模式5秒,然后保持在活动模式10秒”——你的意思是当设备在发布时,在发布间隔之间的睡眠模式是active ?

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

谢谢,PM_Dialog

Rajapurerohit
离线
最后看到:1年1个月前
加入:2017-04-20 09:17
你好,下午对话,

你好,下午对话,

谢谢你的反馈,

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

关于第7点-是的,我正在将设备连接到手机,并通过应用程序分配数据。我正在将相同的数据存储到闪存中。

我还没有像你之前建议的那样,在广告和连接间隔之间将设备配置为睡眠状态。我正在使用计时器进入睡眠模式,并使用app_easy timer醒来,正如您在我的代码中看到的那样。

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

无效用户\u应用\u高级\u无方向\u完成(uint8\t状态)

//如果广告被取消,则更新广告数据并再次开始广告
if (status == = GAP_ERR_CANCELED) / /取消

arch_ble_ext_wakeup_on ();
user_app_adv_start ();

请考虑以上几点,并让我知道你的看法。

同时,我会逐点测试,并让你知道我的结果。

谢谢和问候

罗希特河

Rajapurerohit
离线
最后看到:1年1个月前
加入:2017-04-20 09:17
你好,下午对话,

你好,下午对话,

很抱歉,回复太晚了,

我已经将Dialog开发工具包与我的I2C基本传感器连接起来。并刷新了我的固件,并使用智能代码段尝试计算电源配置文件。下面是附带的结果。

此外,我还尝试按照您的建议禁用flash,但代码输入到NMI_hanlder中,我不明白为什么?我还包括了spi_flash.h文件。你能分享一下这些步骤吗。

在自定义板中,传感器在对话MCU的路径中直接使用3v3供电,所以我不能在自定义板中只测试对话部分。

但我尝试使用开发工具包进行测试,在不连接传感器的情况下给我大约750mA。你能建议我们做些什么改变吗?

此外,在智能代码段上进行功率配置计算的所有设置是什么?

提前谢谢

罗希特河

PM_Dialog
离线
最后看到:1周3天前
工作人员
加入:2018-02-08 11:03
嗨罗希特,

嗨罗希特,

在附件截图中,你正在测试的例子是什么?当前睡眠模式下的消耗是多少?你按照教程做了吗?

>>在定制板中,传感器直接由Dialog MCU路径中的3v3供电,因此我无法在定制板中仅测试Dialog部分。

这取决于您的设计-您正在测量整个定制电路板的电流消耗,

谢谢,PM_Dialog

Rajapurerohit
离线
最后看到:1年1个月前
加入:2017-04-20 09:17
你好,下午对话,

你好,下午对话,

所附图像为自定义代码。

在此之前,正如在教程文档中提到的,我在开发工具包上尝试了prox_报告示例,它向我展示了正确的阅读。

但是我无法在自定义板上测试相同的示例,因为传感器也正在通电,并且由于电流很高。但是对于我的自定义代码,显示的电流更大。你能帮我解决固件中的问题吗?

是的,我正在测量整个定制电路板的电流消耗。

提前谢谢

罗希特河

Rajapurerohit
离线
最后看到:1年1个月前
加入:2017-04-20 09:17
你好,下午对话,

你好,下午对话,

我这边有一个更新,

在我的自定义代码中,我所做的是在广告期间配置睡眠模式,下面是代码片段,

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

2)在user_peripheral.c文件中调用arch_set_extended_sleep()在广告期间

空白user_app_adv_start(空白)

//安排下一个广告数据更新
app_adv_data_update_timer_used=app_easy_timer(app_adv_data_update_TO,adv_data_update_timer_cb);

struct gapm_start_advertise_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));

//在广告期间设置延长睡眠时间
拱门设置延长睡眠();

app_easy_gap_undirected_advertized_start();

通过上述更改,我在开发套件上测试了代码,并在没有将传感器连接到开发套件的情况下测量了电流消耗,我得到了更少的电流消耗。我还没有用代码编写唤醒程序。

现在,我的下一步是使用中断的唤醒设备。我有一个传感器RDY引脚,使我每5秒低。我已经尝试在RDY_PIN中断处理程序中唤醒设备,但我不能我的设备确实得到唤醒。

下面是检测低脉冲的GPIO配置。请检查此代码段配置中的问题是什么,或者在pin配置期间需要启用的任何其他参数。

1)硬件侧RDY引脚输入,用电阻拉出

2) 配置代码段,

//IQS62X_RDY_引脚
GPIO_配置引脚(IQS62X_GPIO_端口、IQS62X_RDY_引脚、输入_上拉、PID_GPIO、假);
GPIO_启用IRQ(IQS62X_GPIO_端口,IQS62X_RDY_引脚,GPIO1_IRQn,真,真,0);
GPIO_注册表回调(GPIO1_IRQn,rdyinthaldr);

请帮我一下。

提前谢谢

罗希特河

Rajapurerohit
离线
最后看到:1年1个月前
加入:2017-04-20 09:17
你好,下午对话,

你好,下午对话,

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

当i2c上有数据时,我得到这个RDY中断引脚低。根据传感器文档,当有任何数据时,我得到RDY低。你能帮助我如何读取i2c,无论在睡眠期间或睡眠后是否有数据?

另外,在我从睡梦中醒来后,我想在广告中宣传我的控制数据包的从设备。你能帮我做一下这个功能吗,就是在广告中醒来后发送数据包意思是更新所有包,然后进入休眠状态,在当前固件中,我在mnf_data_update()函数中更新包。我要求在醒来后要把所有的数据包都发送出去然后睡觉,否则直到数据包完成才醒来。

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

/**
****************************************************************************************
* @brief应用唤醒回调函数。在API消息实用程序中注册。
* @return无效
****************************************************************************************
*/
静态无效应用程序\唤醒\ cb(无效)

//如果state不是空闲的,忽略消息
if (ke_state_get(TASK_APP) == APP_CONNECTABLE)

user_app_adv_start ();

提前谢谢

罗希特河

PM_Dialog
离线
最后看到:1周3天前
工作人员
加入:2018-02-08 11:03
嗨罗希特,

嗨罗希特,

我们将直接与您联系。

你好,下午好

Rajapurerohit
离线
最后看到:1年1个月前
加入:2017-04-20 09:17
你好,下午对话,

你好,下午对话,

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

但是我在外围定时器0中面临着不同的问题。我已经配置了定时计时器0,重新加载时间为200毫秒。在我的自定义应用程序中,我的要求是当检测到事件时启动30秒计时器,当定义的计时器经过时使time count = 0。当没有睡眠配置时,它绝对工作得很好,现在我已经合并了睡眠计时器0不能正常工作。

也就是说,我的时间计数在30秒计时器结束前的15秒内为零。我并没有低估这个问题。甚至我也尝试了1分钟计时器,在1分钟计时器时间计数在30秒内为0之前。

你能帮我解决什么问题吗。我正在调试模式下检查。

提前谢谢

罗希特河

PM_Dialog
离线
最后看到:1周3天前
工作人员
加入:2018-02-08 11:03
嗨罗希特,

嗨罗希特,

如果您希望通过RDY中断唤醒,请冷使用唤醒控制器。实现方式应与ble_app_睡眠模式示例类似,以及如何使用外部GPIO作为唤醒源。因此,既然您提到可以通过RDY唤醒,我假设您已经完成了类似的实现。

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

我们强烈建议每一个问题提出一个新的论坛代码,这样我们可以更好地处理您的问题。你的所有问题都有一张票,很难获得和搜索所有可用的信息。

谢谢,PM_Dialog

Rajapurerohit
离线
最后看到:1年1个月前
加入:2017-04-20 09:17
你好,下午对话,

你好,下午对话,

谢谢你的反馈。

是的,我做了与ble_sleep_mode示例相同的操作,使用RDY引脚唤醒设备。

当RDY引脚低,然后设备醒来,它也从传感器事件,所以如果事件我开始计时器0,等待30秒或1分钟的定义时间,然后时间过去后计数0。在这里,我的计时器正在减少意味着如果我开始30秒计时器,它将在30秒之前结束。

这个问题是在增加睡眠后引起的。我知道睡觉的时候其他的外围设备都关闭了,但我的问题是在醒来之后。请建议我如何处理这件事。

谢谢和问候

罗希特河

Rajapurerohit
离线
最后看到:1年1个月前
加入:2017-04-20 09:17
你好,下午对话,

你好,下午对话,

我尝试使用RDY引脚低唤醒设备,但设备不稳定。我无法正确读取I2C数据。有时我无法获得数据,并且只有在I2C寄存器的地址上有数据时,我的RDY引脚才会变低。

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

提前谢谢

罗希特河

页面