你好,
我只是开始使用DA14531DEVKIT-PRO的几个例子,我有两个子板,普通SoC一个和基于模块的一个。
只使用Arch_ext_sleep_on的鞍骨电池示例,在SoC版本上,我看到当前的消耗(平均)约为1.6ua,但在基于模块上的一个我看到刚刚超过10ua(使用连接到J9的万用表测量)
我假设这是因为TE Flash没有按照以下情况正确禁用:
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。--software / power-down-da14531mods-spi-flash
然而……我禁用了SPI_FLASH…(# undef CFG_SPI_FLASH_ENABLE) . .即使我启用了它,似乎也没有任何区别。
我尝试在user_app_init()中置于spi_flash_powerdown(),但是如果闪光灯未启用,则清楚不会下班,如果它在两种情况下,它也不工作,我得到300A的消耗没有广告,所以我假设它挂起(还没有尝试调试它。)
我是不是漏掉了什么…另一篇帖子的招贴人似乎明白了,但我看不出冬眠的例子有什么意义。
非常感谢,
李。
设备:
嗨李,
您的所有观察都有效。问题是模块中的闪存设备由于从机选择引脚(AKA芯片选择,SPI Enable等)而导致的电源过多。为了减少这种功耗,您所要做的就是确保在每个唤醒时保持SS引脚。这是在功能中管理的set_pad_functions()的user_periph_setup.c..对于我们的DA14586,你可以看到这个(例如SDK示例项目empty_peripheral_template):
对于DA14531模块,它应该如下所示:
模块和SoC之间的差异应该下降到大约300nA。
/ mhv.
你好,
谢谢你的回答,但是我觉得不太对……代码中已经有了这个…
...我觉得效果和你说的一样
我尝试将此调整到特定代码,并且没有区别。
......我没有阅读闪光灯的特定数据表,但其中大多数都在非省电模式下启动不是它们吗?所以我假设你实际上需要启用闪光灯,然后将其放在省电模式中?或者我错过了什么?
李。
除了我的代码直接指定引脚,您的代码与我的代码相同。
我以为你提到你已经尝试启用闪光,然后把它放在睡眠中,我误解了什么吗?
/ mhv.
嗨李,
我认为你的应用程序可能是挂起 - 在我的模块上强制悬挂导线到大约250ua。
尝试以Extent_Peripheral_Template项目开头并将睡眠模式设置为扩展睡眠状态。通过来自Keil的JTAG(然后将调试器分离)的JTAG加载到模块上以运行代码并测量功耗。在SoC上做同样的事情,你应该看到功耗的巨大差异(在我的电路板上它约为1mA)。然后,如上所述添加SPI SS的硬件配置,并在模块上重复测量值。SOC上的电流消耗几乎是相同的。
/ mhv.
你好,
现在解决了......这不是你建议的,实际上我完全缺乏对初始化的事情的理解。我假设启用cfg_spi_flash_enable足以正确启用闪光灯,但绝对不是这种情况。
作为参考,模块flash (P25Q11U)的数据表清楚地显示了9uA待机电流和0.1uA深断电电流,所以差不多9uA的差异,这正是我所看到的。此外,该模块将在待机模式下开机,需要特别置于深度下电模式。
我使用的代码示例(ble_app_barebone)的主要问题是没有SPI或flash初始化代码实际上在那里,所以CFG_SPI_FLASH_ENABLE实际上不做任何事情,因此调用spi_flash_powerdown()不会工作。
一点进一步调查休眠示例(如在问题中链接的另一个帖子中引用),并且您可以找到所有所需的代码,以初始化引脚,初始化SPI,然后在User_App_Init中调用spi_flash_powerdown()()和一切都完美地工作......我实际上看到略低于1.4ua ......但这只是万用表,所以可能缺少峰值等。
所以这很棒......谢谢。
进一步......我刚刚找到了这一点完美地解释了这一点......
http://lpccs-docs.dialog-semicondiondumon.com/da145xx_tutorial_sdk6_periphe ...