你好所有的,
我正在圣地亚哥德孔波斯特拉大学(University of Santiago de Compostela)开发一个项目。在我们的应用程序中,我们的目标是使用DA14585设备实现超低功耗的应用程序。我们打算用一个1毫米²的太阳能电池在超级电容器中存储能量。因此,我们需要尽可能地降低功耗。
的操作系统将会为一个小时左右而储存能量系统以最低功耗模式,也就是说,一切在睡眠模式下,它就会醒来,衡量一个值与芯片上的ADC,允许外部系统通过BLE连接来访问它。最后,在读取该值之后,系统必须立即再次进入睡眠模式,以尽可能地节省能源。
我浏览了所有的例子,试图理解和测试所有的例子。我能够将系统配置为通过一个引脚读取模拟电压,并通过智能手机或带有蓝牙连接的PC访问它。过去两周我一直面临的问题是如何操作睡眠模式。我无法将芯片编程为同步睡眠模式,并在需要时(在电话或任何东西断开连接后)进入睡眠。
我真的很感谢你的帮助:)
我们拥有的硬件是DA14585的PRO开发工具包,它有一堆用于不同测试的子板。
关键词:
设备:
嗨DLesta,
您可以看一下SDK的ble_app_sleepmode示例。该项目可以在6.0.14.1114\projects\target_apps\ble_examples\ble_app_sleepmode SDK路径下找到。该设备在预定义的时间后停止广告,然后进入永久睡眠模式。系统也可以在广告或连接间隔之间休眠。请记住,当处于睡眠模式时,所有外围域都将关闭,因此您无法使用任何外围块,如ADC。
谢谢,PM_Dialog
你好,
谢谢你的快速回复。
我看了那个例子,我意识到在睡觉的时候外围设备是不能工作的。
我的问题是:在这个例子中,为了让系统在一定的时间后醒来,我应该修改什么?或者用另一种方式,同步睡眠模式是如何被编程的?我在不同的文档中看到了这种可能性,但我无法找到为此必须执行的具体指令,或将它们放置在哪里。
这个“特定的时间”必须以小时为单位。
谢谢你的帮助!
嗨DLesta,
您可以使用app_easy_timer()来周期性地唤醒,因为这个API使用的是BLE定时器,所以它可以在睡眠模式下使用。
让我们假设你想要醒来并开始做广告。这可以通过设置计时器来实现,如下所示:
cb_my_timeout app_easy_timer (100);
第一个参数指定在100 * 10ms = 1000ms = 1s之后超时的定时器。此时将调用回调cb_my_timerout() get。
Mmax定时器延迟41943秒。
谢谢,PM_Dialog