你好,
最近我拿到了DA14531MOD低功耗,符合数据表中指定的电流消耗。很长一段时间以来,我尝试的每个示例在深度睡眠和休眠模式下的当前消耗大约是10uA。原来,内部SPI flash在进入睡眠或休眠时没有关闭,据我所知,实际上没有关于这方面的任何文档。现在我正在使用一个肮脏的修复,把spi_flash_power_down()函数放在arch_set_deep_sleep()和arch_goto_sleep()函数的某处。这样,即使在广告之间,hibernation_mode示例代码的功耗也很低,而且仍然可以正常工作。
然而,最终我想让ble_app_sleepmode示例代码低功耗,但通过复制上面描述的修复,我无法关闭flash。改变sdk中的代码也是我不喜欢的,因为你将不能很容易地更新它,你可以破坏其他东西。
有没有一种方法可以在不修改sdk的情况下关闭DA14531MOD上的flash,但仍然有所有的代码存储在flash上?或者已经有一些类似ble_app_sleepmode的例子,但是在广告之间关闭flash ?
谢谢,
马丁
嗨innovativepower,
SDK的ble_app_sleepmode示例在发布或连接间隔之间使用扩展睡眠模式。当应用程序代码存储到Flash时,代码被复制到System-RAM中,并从那里启动。因此,您可以在user_app_on_init()或app_advertise_complete()回调函数中调用spi_flash_power_down()。不需要修改SDK文件。所有的实现都应该在用户应用程序文件中。
谢谢,PM_Dialog
你好,
谢谢你的回答。在hibernation_mode示例中,将spi_flash_power_down()函数放在user_app_on_init()中可以立即工作,但在ble_app_sleepmode示例中则不能。为了解决这个问题,我将flash的初始化从休眠示例复制到ble_app_sleepmode,现在它工作正常了。
谢谢,
马丁
嗨innovativepower,
很高兴你能把闪光灯断电,谢谢你的指示。如果您有任何后续问题,请提出一个新的论坛帖子。
谢谢,PM_Dialog