不同的功耗DEVKIT模块与SOC

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.xmece.com/support.我们将在未来几天修复bug /优化搜索和标记。
7个帖子/ 0个新
最后发表
essele
离线
最后一次露面:5个月4天前
加入:2020-12-19 15:33
不同的功耗DEVKIT模块与SOC

你好,

我刚刚使用da14531devkit-pro的一些例子开始,我有两个子板,正常的SOC一个和模块基于一个。

使用ARCH_EXT_SLEEP_ON的简单例子,在SOC版本中,我看到了大约1.6uA的电流消耗(平均),而在基于模块的版本中,我看到超过10uA(使用连接到J9的万用表测量)

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

https://support.dialog-semicondiondiondum/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
离线
最后一次露面:三个月两个星期前
工作人员
加入:2013-12-06 15:10
嗨,李,

嗨,李,

你所有的观察结果都是正确的。问题是模块中的flash设备由于从选择引脚(Aka chip select, spi enable,等等)的状态而消耗过多的功率。为了减少这种功耗,您所要做的就是确保SS引脚在每次唤醒时都保持高位。这是在函数中管理的set_pad_functions ()user_periph_setup.c.对于我们的DA14586,您可以看到此(SDK示例Project Enterion_Peripheral_Template):

GPIO_ConfigurePin(GPIO_PORT_2, GPIO_PIN_3, OUTPUT, PID_GPIO, true); //设置自动DA14586 SPI Flash唤醒# endif

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

GPIO_ConfigurePin(GPIO_PORT_0, GPIO_PIN_1, OUTPUT, PID_GPIO, true); //设置自动DA14531 SPI Flash唤醒# endif

然后,模块和SoC之间的差异应该下降到大约300na。

/ MHv

essele
离线
最后一次露面:5个月4天前
加入:2020-12-19 15:33
你好,

你好,

谢谢你的答案,但我不认为这是合适的......这个代码已经有了......

GPIO_ConfigurePin(GPIO_PORT_2, GPIO_PIN_3, OUTPUT, PID_GPIO, true); //设置自动DA14586 SPI Flash唤醒GPIO_ConfigurePin(SPI_EN_PORT, SPI_EN_PIN, OUTPUT, PID_SPI_EN, true);# endif

......我认为哪个与您建议相同。

我已经尝试调整这到您的特定代码,它没有任何不同。

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

李。

mhv_dialog
离线
最后一次露面:三个月两个星期前
工作人员
加入:2013-12-06 15:10
您的代码与

你的代码与我的相同,除了我的代码直接指定pin。

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

/ MHv

mhv_dialog
离线
最后一次露面:三个月两个星期前
工作人员
加入:2013-12-06 15:10
嗨,李,

嗨,李,

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

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

/ MHv

essele
离线
最后一次露面:5个月4天前
加入:2020-12-19 15:33
你好,

你好,

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

供参考,模块闪光灯(P25Q11U)的数据表清楚地显示了9uA待机电流和0.1ua深度下电流,所以几乎是900A差异,这正是我所看到的。此外,该模块将在待机模式下打开电源,需要专门放入深断电模式。

代码示例的主要问题我正在使用(ble_app_barebone)是,没有一个spi或flash初始化代码实际上是在那里的,因此cfg_spi_flash_enable实际上并不实际做任何事情,因此对spi_flash_powerdown()的调用不起作用.

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

这太棒了…谢谢。

essele
离线
最后一次露面:5个月4天前
加入:2020-12-19 15:33
进一步…我刚刚发现

进一步…我刚刚发现了一个完美的解释……

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