你好,
我正在将设计从da14583移动到da14586,无法获得相同的睡眠模式电流测量值。我有相同的PCB布局。
该设计支持的液晶显示器的使能引脚设置在端口2_3,也被SPI FLASH用作SPI_EN_GPIO_PORT。在14583芯片中,当我们准备进入睡眠状态时,我们将引脚设置为低输出,以关闭LCD的电源,因此在睡眠模式下,我们的电流消耗是38uA。
然而,当我在相同的PCB设计上对da14586做同样的事情时,在睡眠模式下,电流消耗上升到2.4 mA。如果我设置端口2 _3输出高,那么我们可以在睡眠模式下获得430uA消耗,但这是由于电流被LCD绘制,因为它现在是启用的。
如果我将端口2_3设置为低输出,您能告诉我附带的SPI闪存应该消耗多少电流吗?请注意,在功能集\u pad\u功能中,此行已设置。
//不允许自发闪光唤醒
GPIO_ConfigurePin(SPI_EN_GPIO_PORT, SPI_EN_GPIO_PIN, OUTPUT, PID_GPIO, true);
你也可以让我知道我可以找到细节如何保持SPI Flash在低功耗模式在所有时间。
谢谢
斯科特
设备:
嗨,斯福兰,
你可以使用power_down_da14586_flash()函数关闭SPI flash吗?我假设您不是从SPI flash引导。
谢谢,下午好
是的,我就是这么做的。我应该每次在set_pad_函数中都显式地这样做吗?我正在从SPI flash启动。如果闪光灯未关闭电源,预期的电流消耗是多少?
谢谢
斯科特
嗨,斯福兰,
因为你是从flash启动的,所以你不能关机。你能告诉我你是怎么测量睡眠电流的吗?
谢谢,下午好
我有一个万用表,在线路上有一个电池输入。我的设计包括一个DC/DC转换器,它将一对AA电池提升到3.3V,为芯片供电。
嗨,斯福兰,
请确保仅测量DA14856的电流消耗,并且没有其他外围设备的泄漏,好吗?
谢谢,下午好
我测量了我的外围设备(EEPROM, Accelerometer),它们总共绘制了10uA。我通过I2C连接到这两个部分,并检查了SCL和SDA引脚(他们在我的板上有拉升)从14586在我的代码中设置为高,然后我进入睡眠模式。我用一个scope检查了两者,看到SCL和SDA引脚在我的电源电压和没有可测量的下降跨越拉升。
我还移除了液晶屏,以消除它作为一个可能的电流漏源。
有没有办法确认我的代码进入睡眠状态?(退出调试器后检查寄存器)?
14586和14583之间是否存在任何可能导致这种情况的差异?我能够用583实现非常低的功耗。
非常感谢。
斯科特
嗨,斯福兰,
您能指出在睡眠模式下功耗是否保持430uA吗?你使用哪种睡眠模式?请看一看教程4:睡眠模式电流测量教程来自我们的支持网站。DA14586的功耗应该稍微增加一倍。你有一模一样的板子吗?
谢谢,下午好
你好,
14586的当前draw是430-10 = 420uA。
对于da14586,我们使用:
没有OTP拷贝的扩展睡眠- DA14585/6:只有与图像大小对应的系统RAM保持打开+ 32kB(上一张幻灯片中的第4块)
我发现全局变量在从睡眠模式醒来时丢失了。
你能说得更多一些吗:
“DA14586的功耗应该是原来的两倍”-这是否意味着如果我从da14583板上测量36uA的消耗,我将从DA14586板上看到72uA?
是的,我用的是同一块板。我刚刚用da14586 IC替换了da14583。
顺致敬意,
斯科特
嗨,斯福兰,
你能澄清一下:“我发现全局变量在从睡眠模式中醒来时丢失了。”全局变量是否存储在保留RAM中?
我假设功耗应该略小于72uA。如果你开始一个新的设计,我们会建议从DA14585开始- SDK有了很大的改进,我们有很多代码示例,还有DA14585上的软件路线图支持我们的下一代设备5th11月。
我认为问题与你们的PCB有关。你能截屏DA14586的原理图吗?不是所有的原理图-只有DA14586。请查看一些硬件设计指南:
//www.wsdof.com/sites/default/files/an-b-054_da14585_da14586_application_hardware_design_guidelines_v1.2.pdf
谢谢,下午好
你好,
在14583年,我们曾经把一些变量放在保留RAM中,一些放在普通的全局变量中。
然而,在从睡眠中醒来后,我们并没有失去任何非保留变量值
SDK 5和SDK 6中的全局变量处理有什么不同吗
此外,我还发现:
在Pro套件上运行prox_reporter固件,不需要从SDK进行任何更改,并测量电流。
根据14586的文件,睡眠电流为3uA(参考第21页“我们测量了3.4μ的延长睡眠模式(无OTPcopy)”)。
现在我刚刚在函数中的第行添加了void set_pad_函数(void)。这基本上是将SPI enable引脚设置为False,因为我们的LCD enable必须设置为False才能使其进入睡眠状态。
# ifdef __DA14586__
//不允许自发闪光唤醒
GPIO_ConfigurePin(SPI_EN_GPIO_PORT, SPI_EN_GPIO_PIN, OUTPUT, PID_GPIO, true);
#恩迪夫
+GPIO_配置引脚(SPI_EN_GPIO_端口,SPI_EN_GPIO_引脚,输出,PID_GPIO,假);
现在测得的睡眠电流为2mA或2000uA。固件正常发布广告。我们假设SPI闪存消耗所有电流。
之前在14583中,设置SPI启用引脚并没有导致如此大的电流消耗。
请告诉我们如何将SPI_EN_GPIO_端口、SPI_EN_GPIO_引脚设置为false,而不让SPI闪存消耗如此多的电流。
谢谢!
最好的,
斯科特
嗨,斯福兰,
关于你的第一个问题,你能再解释一下吗?如果我能正确理解的话,您的要求是将变量存储到保留内存中?如果我的假设错了,请纠正我。
请看一看软件示例:DA14585/586检测复位源从我们的支持门户。此示例演示如何将变量存储到保留RAM中。
关于你的最后一个问题,根据你的代码片段。我认为SPI_EN在GPIO_ConfigurePin()中配置为false。
谢谢,下午好
你好,
当我将P2_3配置为False时,我看到一个过大的电流。你能告诉我如何通过这个引脚设置使内置SPI闪存保持低功耗状态吗?
是的,我想在保留RAM中保留虚荣,这样我们就不必在醒来后重新加载它们。
最好的,
斯科特
嗨,斯福兰,
是否可以关闭所有外围设备并仅测量DA14586的功耗?耗电量是多少?另外,你能在Pro DK中复制它吗?
您检查过软件示例:DA14585/586检测复位源为了将数据存储到Ret RAM中?
谢谢,下午好
你好,
我在Pro DK上测量2mA。我的外围设备都没有连接。我现在正在查看应用程序说明,稍后将返回此线程。
为什么将P2_3设置为False会导致电流过大?
最好的,
斯科特
嗨,斯科特,
P2_3是SPI_EN。我会在内部询问团队,我会很快让你知道。请把你的测量结果告诉我。
谢谢,下午好
我从电路中移除了所有外围设备,因此板上只有DA14586。当P2_3设置为False时,电流消耗刚刚超过2 mA。
你有什么关于“他P2_3是SPI_EN”的更新吗?我会在内部询问团队,很快就会告诉你们。”
最好的,
斯科特
嗨,斯科特,
您是否可以在我们的开发工具包板上进行相同的测量,仅更改硬件,但保持所有其他相同的环境(包括软件)?
比尔,
PW_Dialog
我们以前做过这项工作,并在专业开发工具包板上测量了2mA。所有的软件都是相同的,除了SPI_EN引脚在我们的软件中被设置为低。当SPI_EN引脚设置为高时,电流消耗低(uA的10秒)
你好,
有更新吗?
最好的,
斯科特
嗨,斯福兰,
这是一种非常奇怪的行为。当移除所有外设只测量DA14585和SPI_EN是低的,因为功耗大约在2mA,似乎扩展睡眠模式失败。相同SW下,当SPI_EN为HIGH时,功耗为10uA?你能确保定制板没有任何渗漏吗?请使用一个非常简单的项目,如ble_app_barebone。执行power_down_da14586_flash()函数将Flash下电。在您的定制板和我们的开发套件中,当前的消耗量是多少?
谢谢,下午好