⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。

嗨罗希特,
>>我不理解为什么在睡眠模式I2C数据不读书,甚至对其进行初始化,按您的建议后,
正如我已经提到,这是不可能使用任何外设模块,包括I2C和SPI接口时,在任何可用的睡眠模式。这是由设计!
该设备还可以在广告和连接间隔之间进入休眠模式。
谢谢,PM_DIALOG.
嗨PM_Dialog,
好吧,我的意思是醒来后即使经过重新初始化,无法读取数据。
另外,昨天我分享了一个观察,请检查相同的,并让我知道你的反馈。
感谢和问候
罗希特R
嗨PM_Dialog,
从我结束一个更新,
我已经使用外围计时器并在睡眠模式下使用该定时器配置的装置,即,10秒计时装置是活动状态,并且时间过去后进入延长休眠和5秒称为唤醒呼叫背部的使用app_easy_timer。
有了这个配置,可以同时执行arch_extended_sleep()和periodic_wake_up_timer_used = EASY_TIMER_INVALID_TIMER;检查使用支架。并且,能够读取I2C数据。
但唯一的问题是手术的成功率降低了,10次手术中只有3次手术成功,其余7次手术失败。
感谢和问候
罗希特R
嗨,Rohit R
我设计相同的配置DA14583 MCU与Azoteq IQS621
如果你感兴趣,我们可以分享我们在这个项目上的经验,感谢联系我
致以最亲切的问候
Azdine BAHOU
azdinebahou@gmail.com
嗨Azdine BAHOU,
很抱歉这么晚回复你,因为我在做其他的项目,所以没有查看你的信息。
是的,如果你能帮我解决这个问题,这将是巨大的。
你会在这里分享你的项目细节,还是我要单独邮寄给你?
感谢和问候
罗希特R
嗨PM_Dialog,
正如我之前解释的那样,使用外围计时器(计时器0)配置睡眠模式。
步骤,
1)在user_config.h文件中,我已经启用了EXT_SLEEP_ON
2)使用外围定时器,在10sec之后调用arch_set_extended_sleep()函数,并启动5sec app_easy_timer()
3)在app_easy_timer回调函数中编写唤醒api如下:
静态孔隙app_wakeup_cb(空白)
{
periodic_wake_up_timer_used = EASY_TIMER_INVALID_TIMER;
arch_disable_sleep ();
如果(GetBits16 (SYS_STAT_REG PER_IS_DOWN))
{
periph_init ();
}
如果(arch_ble_ext_wakeup_get ())
{
arch_set_sleep_mode (app_default_sleep_mode);
arch_ble_force_wakeup ();
arch_ble_ext_wakeup_off ();
app_easy_wakeup ();
}
i2c_init ();/ /重新启动i2c
}
4)在user_peripheral.c文件下面更改,
空白user_app_adv_undirect_complete (uint8_t状态)
{
//如果广告被取消,则更新广告数据并重新开始广告
if (status == = GAP_ERR_CANCELED) / /取消
{
arch_ble_ext_wakeup_on ();
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
嗨罗希特,
你提到的:
“使用DMM我的定制电路板的测量消耗电流,它1.012毫安之间变化到791uA。”
这是平均电流消耗,或者在延长睡眠模式的设备时?你测量的电流消耗只为DA14583,或整个定制电路板?
我们强烈建议只测量DA14583的电流消耗-如果定制板有泄漏,消耗将会增加。
另外,由于它是DA14583,如果flash现在下电,那么消耗将再次增加。有一个函数用于将SPI置于关机模式- spi_flash_power_down() -在这种情况下,你将无法与flash交互,除非你指示SPI flash上电。在开始与flash交互之前,您应该调用spi_flash_release_from_power_down()。
多少钱功耗一旦广告停止,设备处于睡眠模式?
请尝试运行SDK的ble_app_sleepmode(或prox_reporter)示例,让设备进入永久休眠模式,然后测量当前的消耗。
请查看附件截图。高亮显示部分的消耗是多少?
//www.wsdof.com/sites/default/files/training_04_sleep_mode_configurations.pdf
谢谢,PM_DIALOG.
嗨PM_Dialog,
“这是当前的平均消耗,还是当设备处于长时间休眠模式时?”-我的设备会周期性地改变它的模式,即它在睡眠模式下保持5秒,然后在有源模式下保持10秒,根据我的观察,电流消耗大约是0.800mA(800uA)和1mA。参考这个,我得到平均电流大约900mA您是仅测量DA14583的当前消耗,还是整个定制板的消耗?”-我们测量了全定制电路板的电流消耗。
“另外,由于是DA14583,如果flash现在掉电,那么消耗会再次增加。有一个函数用于将SPI置于下电模式- spi_flash_power_down() -在这种情况下,您将无法与flash交互,除非您指示SPI flash上电。在开始与flash交互之前,您应该调用spi_flash_release_from_power_down()。-是否有任何示例解释使用SPI flash以降低功耗的步骤。意味着在包含这些“spi_flash_power_down()”和“spi_flash_release_from_power_down()”函数(如初始化或任何宏定义)之前必须注意的任何强制步骤。需要遵循这些步骤。
以及如何检查自定义板当前消费使用smarsnippet作为您共享的图像?我已经找过相关文件了,但没找到。请分享。
另外,请浏览我的代码,并让我知道你的反馈。有什么是我错过的,导致这个问题。
感谢和问候
罗希特R
嗨罗希特,
谢谢,PM_DIALOG.
嗨PM_Dialog,
谢谢你的反馈,
我会按照你的建议测试所有的点。
关于点不。7.-yes, I am connecting devices to mobile phones and assigning data through the app. And the same data I am storing into flash.
我没有按照你之前的建议在广告和连接间隔之间的睡眠时间配置设备。我使用定时器进入睡眠模式和唤醒使用app_easy定时器,你可以在我的代码中看到。
并且设备处于广告状态,我没有改变这部分
空白user_app_adv_undirect_complete (uint8_t状态)
{
//如果广告被取消,则更新广告数据并重新开始广告
if (status == = GAP_ERR_CANCELED) / /取消
{
arch_ble_ext_wakeup_on ();
user_app_adv_start();
}
}
也请考虑上述这些点,让我知道你对此的看法。
在此期间,我将测试由点的点,让你知道我的结果。
感谢和问候
罗希特R
嗨PM_Dialog,
抱歉回复晚了,
我已经将对话开发工具包与我的I2C底座传感器连接起来。然后亮出我的固件,用一个智能代码片段试图计算功率配置。下面是附件的结果。
还有,我试图禁用flash,因为你的建议,但代码进入nmi_handder我没有得到为什么?我还包含了spi_flash.h文件。你能分享一下步骤吗?
而在定制电路板,传感器直接与路径对话框MCU 3V3,所以我无法测试的定制电路板只有对话部分供电。
但我尝试使用开发工具包进行测试,在不连接传感器的情况下给我大约750mA。你能建议我们做些什么改变吗?
此外,为了对功率曲线计算智能段做什么都设置?
谢谢提前
罗希特R
嗨罗希特,
在附件截图中,你正在测试的例子是什么?当前睡眠模式下的消耗是多少?你按照教程做了吗?
在自定义板中,传感器在对话MCU的路径中直接使用3v3供电,所以我不能在自定义板中只测试对话部分。
这取决于你的设计——你正在测量整个定制板的当前消耗,
谢谢,PM_DIALOG.
嗨PM_Dialog,
附件图片是自定义代码。
在此之前,正如教程文档中提到的,我在Development kit上尝试了prox_report示例,它显示了正确的阅读方法。
但我无法在定制板上测试相同的例子,因为传感器也在通电,由于电流很高。但对于我的自定义代码显示了更多的当前。你能帮我看看固件出了什么问题吗?
是的,我在测量整个定制板的当前消耗量。
谢谢提前
罗希特R
嗨PM_Dialog,
我这边有个最新消息,
在我的自定义代码,我所做的是广告中配置的睡眠模式,下面是摘录,
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));
//设置扩展睡眠在广告期间
arch_set_extended_sleep ();
app_easy_gap_undirected_advertise_start ();
}
与这些上述变化,我测试的开发工具包的代码和所测量的电流消耗而不连接传感器到开发套件和我有更小的电流消耗。而且我没有写在代码中唤醒的程序呢。
现在,我的下一步是使用中断的唤醒设备。我有一个传感器RDY引脚,使我每5秒低。我已经尝试在RDY_PIN中断处理程序中唤醒设备,但我不能我的设备确实得到唤醒。
下面是检测低脉冲的GPIO配置。你能检查这个片段是什么问题在配置或任何其他参数需要启用在引脚配置。
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
嗨PM_Dialog,
关于我之前的帖子有什么更新吗?
而我得到这个RDY中断引脚为低电平时存在的I2C数据。按照传感器的文件,我得到RDY低的时候有任何数据。你能不能帮我我怎么能读I2C数据是否存在或睡眠期间不睡觉之后?
另外,在我从睡梦中醒来后,我想在广告中宣传我的控制数据包的从设备。你能帮我做一下这个功能吗,就是在广告中醒来后发送数据包意思是更新所有包,然后进入休眠状态,在当前固件中,我在mnf_data_update()函数中更新包。我要求在醒来后要把所有的数据包都发送出去然后睡觉,否则直到数据包完成才醒来。
为了达到我的要求,我需要在以下功能中做哪些更改?
/**
****************************************************************************************
* @brief应用唤醒回调函数。Registerd在API消息效用。
* @return无效
****************************************************************************************
*/
静态孔隙app_wakeup_cb(空白)
{
//如果state不是空闲的,忽略消息
if(ke_state_get(task_app)== app_connectable)
{
user_app_adv_start();
}
}
谢谢提前
罗希特R
嗨罗希特,
我们会直接联系你的。
问候,PM_Dialog
嗨PM_Dialog,
从我的端更新,我能够配置唤醒设备时,RDY引脚低。我已经配置了在广告期间睡眠和唤醒时,RDY引脚低。
但是我在外围定时器0中面临着不同的问题。我已经配置了定时计时器0,重新加载时间为200毫秒。在我的自定义应用程序中,我的要求是当检测到事件时启动30秒计时器,当定义的计时器经过时使time count = 0。当没有睡眠配置时,它绝对工作得很好,现在我已经合并了睡眠计时器0不能正常工作。
手段,我的时间计数获得零15秒内前30秒计时器结束。我不是低估的问题。即使我尝试了1分钟计时器也有1分钟流逝计时器计时得到0 withing 30秒前。
你能帮我看看是什么问题吗?我在调试模式下检查。
谢谢提前
罗希特R
嗨罗希特,
如果你想通过RDY中断唤醒,你可以使用唤醒控制器。实现应该与ble_app_sleepmode示例以及如何使用外部GPIO作为唤醒源类似。因此,既然您提到可以通过RDY唤醒,那么我假定您已经完成了类似的实现。
关于您后续关于SW Timer 0的问题,如果我理解正确,问题是设备处于睡眠模式时没有正确计数?我的理解正确吗?它是预期的,因为当延长睡眠时,系统可以同步唤醒,通过BLE定时器,或异步唤醒,通过外部中断(输入)通过唤醒控制器。
我们强烈建议,以提高每每一个问题一个新的论坛股票,使我们能更好地处理你的问题。有你所有的问题一票,是很难获得和搜索所有可用的信息。
谢谢,PM_DIALOG.
嗨PM_Dialog,
谢谢你的反馈。
是的,我也一样ble_sleep_mode例如唤醒使用RDY引脚的器件。
当RDY引脚变为低电平,则器件将被唤醒,它也从传感器事件,因此,如果事件中,我启动定时器0,等待30秒或1分钟规定时间再经过时间的流逝使数0。在此,我的定时器减少也就是说,如果我开始30秒计时器它得到30秒完成之前结束。
这个问题是在增加睡眠后引起的。我知道睡觉的时候其他的外围设备都关闭了,但我的问题是在醒来之后。请建议我如何处理这件事。
感谢和问候
罗希特R
嗨PM_Dialog,
我试图用低RDY引脚唤醒设备,但设备不稳定。我无法正常读取I2C数据。有时我得到数据,有时没有,我的RDY引脚低,只有当有数据在I2C寄存器的地址。
请帮助我,我应该做什么,使设备稳定,睡眠和唤醒正常,没有任何问题。这件事对我来说很紧急。
谢谢提前
罗希特R
页面