你好,
我刚刚开始使用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\ U闪存。。。(#undef CFGŠU SPIŠU FLASHŠU ENABLE)。。即使我启用了它,也没有什么区别。
我尝试在user_app_init()中置于spi_flash_powerdown(),但是如果闪光灯未启用,则清楚不会下班,如果它在两种情况下,它也不工作,我得到300A的消耗没有广告,所以我假设它挂起(还没有尝试调试它。)
有什么我不知道的吗。。。另一篇文章中的海报似乎能理解这一点,但我在休眠示例中看不到任何有意义的东西。
非常感谢,
李。
设备:
嗨李,
您的所有观察都有效。问题是模块中的闪存设备由于从机选择引脚(AKA芯片选择,SPI Enable等)而导致的电源过多。为了减少这种功耗,您所要做的就是确保在每个唤醒时保持SS引脚。这是在功能中管理的set_pad_functions()的user_periph_setup.c.。对于我们的DA14586,您可以看到此(SDK示例Project Enterion_Peripheral_Template):
对于DA14531模块,它应该如下所示:
然后,模块和SoC之间的差异应该下降到大约300na。
/ mhv.
你好,
谢谢你的回答,不过我觉得不太对。。。代码已经有了这个。。。
... 我想和你说的一样。
我尝试将此调整到特定代码,并且没有区别。
......我没有阅读闪光灯的特定数据表,但其中大多数都在非省电模式下启动不是它们吗?所以我假设你实际上需要启用闪光灯,然后将其放在省电模式中?或者我错过了什么?
李。
除了我的代码直接指定引脚,您的代码与我的代码相同。
我以为你提到你已经尝试启用闪光,然后把它放在睡眠中,我误解了什么吗?
/ mhv.
嗨李,
我认为你的应用程序可能是挂起 - 在我的模块上强制悬挂导线到大约250ua。
尝试以Extent_Peripheral_Template项目开头并将睡眠模式设置为扩展睡眠状态。通过来自Keil的JTAG(然后将调试器分离)的JTAG加载到模块上以运行代码并测量功耗。在SoC上做同样的事情,你应该看到功耗的巨大差异(在我的电路板上它约为1mA)。然后,如上所述添加SPI SS的硬件配置,并在模块上重复测量值。SOC上的电流消耗几乎是相同的。
/ mhv.
你好,
现在解决了......这不是你建议的,实际上我完全缺乏对初始化的事情的理解。我假设启用cfg_spi_flash_enable足以正确启用闪光灯,但绝对不是这种情况。
供参考,模块闪光灯(P25Q11U)的数据表清楚地显示了9uA待机电流和0.1ua深度下电流,所以几乎是900A差异,这正是我所看到的。此外,该模块将在待机模式下打开电源,需要专门放入深断电模式。
我使用的代码示例(ble\u app\u barebone)的主要问题是没有任何SPI或flash初始化代码实际在其中,因此CFG\u SPI\u flash\u ENABLE实际上不起任何作用,因此对SPI\u flash\u powerdown()的调用将不起作用。
一点进一步调查休眠示例(如在问题中链接的另一个帖子中引用),并且您可以找到所有所需的代码,以初始化引脚,初始化SPI,然后在User_App_Init中调用spi_flash_powerdown()()和一切都完美地工作......我实际上看到略低于1.4ua ......但这只是万用表,所以可能缺少峰值等。
所以这很棒......谢谢。
进一步......我刚刚找到了这一点完美地解释了这一点......
http://lpccs-docs.dialog-semicondiondumon.com/da145xx_tutorial_sdk6_periphe ...