DEVKIT模块与SOC的功耗不同

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
7个职位/ 0个新职位
最后发表
essele
离线
最后看到:8个月1天前
加入:2020-12-19 33
DEVKIT模块与SOC的功耗不同

你好,

我只是开始使用DA14531DEVKIT-PRO的几个例子,我有两个子板,普通SoC和基于一个模块。

仅使用ARCH_EXT_SLEEP_ON的基本示例,在SOC版本上,我看到当前消耗(平均)约为1.6uA,而在基于一个模块上,我看到刚刚超过10uA(使用连接到J9的万用表测量)。

我假设这是由于te flash没有被正确地禁用如下:

https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。——软件/ power-down-da14531mods-spi-flash

然而……我禁用了SPI_FLASH…(# undef CFG_SPI_FLASH_ENABLE) . .即使我启用它,似乎也没有任何区别。

我尝试过把一个spi_flash_powerdown()在user_app_init(),然而,这显然不会工作,如果flash没有启用,它也不工作,如果它是…在这两种情况下,我都得到了300uA的消耗并且没有广告,所以我假设它挂起了(还没有尝试调试它)。

我是不是错过了什么?另一篇帖子中的帖子似乎明白了这一点,但我在冬眠的例子中看不到任何有意义的东西。

非常感谢,

李。

设备:
MHv_Dialog
离线
最后看到:1个月2个星期前
工作人员
加入:15 2013-12-06
嗨,李,

嗨,李,

你所有的观察都是正确的。问题是模块中的flash设备消耗过多的功率由于从选择引脚的状态(Aka芯片选择,spi启用等)。为了减少这种功耗,你所要做的就是确保SS引脚在每次唤醒时保持高。这是在函数中管理的set_pad_functions ()user_periph_setup.c.对于DA14586,你可以看到这个(例如SDK样例项目empty_peripheral_template):

#if define (__DA14586__) //禁止自发DA14586 SPI Flash唤醒GPIO_ConfigurePin(GPIO_PORT_2, GPIO_PIN_3, OUTPUT, PID_GPIO, true);# endif

对于DA14531模块,它应该是这样的:

#if define (__DA14531__) //禁止自发DA14531 SPI Flash唤醒GPIO_ConfigurePin(GPIO_PORT_0, GPIO_PIN_1, OUTPUT, PID_GPIO, true);# endif

模块和SoC之间的差异应该下降到大约300nA。

/ MHv

essele
离线
最后看到:8个月1天前
加入:2020-12-19 33
你好,

你好,

谢谢你的回答,但是我觉得不太对。代码已经有了这个…

#if define (__DA14586__) //禁止自发DA14586 SPI Flash唤醒GPIO_ConfigurePin(GPIO_PORT_2, GPIO_PIN_3, OUTPUT, PID_GPIO, true);#else //禁止自发SPI Flash唤醒GPIO_ConfigurePin(SPI_EN_PORT, SPI_EN_PIN, OUTPUT, PID_SPI_EN, true);# endif

...我想和你说的一样。

我已经试着调整这个以适应您的特定代码,但没有任何区别。

...我没有读过闪存的具体数据表,但大多数闪存都是以非省电模式启动的,不是吗?所以我猜你真的需要启动闪光灯,然后把它调到省电模式??还是我错过了什么?

李。

MHv_Dialog
离线
最后看到:1个月2个星期前
工作人员
加入:15 2013-12-06
你的代码是相同的

你的代码和我的一样,除了我的代码直接指定了pin码。

我记得你说过你已经试过启动闪光灯然后让它休眠了,是我误会了吗?

/ MHv

MHv_Dialog
离线
最后看到:1个月2个星期前
工作人员
加入:15 2013-12-06
嗨,李,

嗨,李,

我认为您的应用程序可能挂起了——在我的模块上强制挂起将导致大约250uA。

尝试从empty_peripheral_template项目开始,并将睡眠模式设置为扩展睡眠。通过Keil的JTAG将其加载到模块上(附加然后分离调试器),以运行代码并度量功耗。在SoC上做同样的事情,你应该会看到功耗的巨大差异(在我的板上大约是1mA)。然后添加上述SPI SS的硬件配置,并在模块上重复测量。SoC和模块上的电流消耗几乎相同。

/ MHv

essele
离线
最后看到:8个月1天前
加入:2020-12-19 33
你好,

你好,

这个问题现在解决了……不是你说的那样,实际上是我完全不了解事情是如何初始化的。我曾假定启用CFG_SPI_FLASH_ENABLE就足以正确启用flash,但事实并非如此。

作为参考,模块flash (P25Q11U)的数据表清楚地显示了9uA的待机电流和0.1uA的深功率下降电流,所以几乎是9uA的差异,这正是我所看到的。此外,该模块将在待机模式下开机,需要特别将其置于深度关机模式。

我使用的代码示例(ble_app_barebone)的主要问题是没有SPI或flash初始化代码实际上在那里,所以CFG_SPI_FLASH_ENABLE实际上不做任何事情,因此调用spi_flash_powerdown()不会工作。

的进一步调查冬眠的例子(如中引用另一篇有关问题),我和你可以找到所有需要的代码来初始化别针,预置SPI,然后调用spi_flash_powerdown user_app_init()()和所有一切都非常完美…我实际上看到了稍微低一点的能耗,在1.4uA左右……但这只是用万用表,所以可能会遗漏峰等。

所以这很好…谢谢。

essele
离线
最后看到:8个月1天前
加入:2020-12-19 33
进一步…我刚刚发现

进一步…我刚刚发现了这个,它完美地解释了一切……

http://lpccs-docs.dialog-semiconductor.com/da145xx_tutorial_sdk6_periphe..。