因此,我一直在与DA14531开发套件Pro工作,我一直难以让MCU进入休眠模式。我只是想做一些初步的测试和功能描述,所以我只想使用示例代码。按照“睡眠模式教程”的说明,我无法让它进入休眠模式。在测试板上,我看到的是200-400 uA,这取决于电压以及我是否处于降压或升压模式。对此任何帮助都将不胜感激。
嗨djames,
感谢您在我们的公共蓝牙论坛发帖,很高兴您一直在使用我们的新Smartbond设备。在“休眠模式教程”中,有3种休眠模式配置(使用SPI Flash/SysRAM/OTP)。你能告诉我你是在哪种情况下测量200-400 uA吗?如果使用SysRAM,是否附加调试器?另外,哪些RAM块被保留?如果你能把这些解释告诉我,那就太好了。
谢谢,PM_Dialog
我目前使用的是SysRAM配置。对于SysRAM配置,我尝试了附加调试器和不附加调试器(物理上),并使用Keil和SmartSnippets工具对其进行编程。假设头文件中的配置被正确传递,所有3个RAM块都是打开的。我猜这就是电流增加的原因吧?
如果附加了调试器(来自Arm Keil IDE),这将阻止系统进入任何睡眠模式。您不需要删除物理调试器,只需按两次“启动/停止调试会话”按钮。你能指出SPI跳线是否在J1标头中?请试着卸载SPI跳线。然后,我建议您使用SmartSnippets工具箱中的Power分析器,检查设备是否停止发布广告并进入休眠状态。在hibernate教程中,使用了18秒超时的广告,所以设备会在18秒后进入休眠模式。
所以我能够在大约18秒后通过休眠模式的设置将功耗降至27ua。SPI跳线被移除了,我正在以buck模式运行3.3V。该测量使用安捷伦34465A DMM进行。我肯定还是做错了什么,但把板子从调试模式中拿出来确实有很大帮助。但我不确定剩下的问题是什么。
你能不能试试DA14531配置休眠模式为了让DK进入休眠模式的SW例子?你能检测到功耗的任何变化吗?我们所有的SW例子(包括休眠模式的SW例子)都不包含SDK,所以你应该把它们和SDK链接起来。请按照手册中描述的步骤操作使用Python Link脚本安装软件示例文档。
感谢发送示例代码。这略微降低了当前的消费,但只是勉强。之前我测量的是27.3 uA现在我测量的是26.9 uA。
我跑的DA14531睡眠模式教程(HTML)休眠电流为~1.8 uA。我用DA14531 Pro-DK的smartnippets工具箱的功率分析器测量了它。跳线的放置如图5所示:硬件设置中放置了jtag跳线
1.在user_proxr.h中定义cfg_app_goto_hibernate宏
#define CFG_APP_GOTO_HIBERNATION (__DA14531__
2.注释掉以下代码片段是user_prox.h中的代码片段
// CFG_SPI_FLASH_ENABLE和cfg_app_goto_hibernate配置错误/ / # endif
3.打开所有三个RAM块,将地址0重新映射到SysRAM,如下图所示:
#define CFG_HIBERNATION_RAM1 PD_SYS_DOWN_RAM_ON #define CFG_HIBERNATION_RAM2 PD_SYS_DOWN_RAM_ON #define CFG_HIBERNATION_RAM3 PD_SYS_DOWN_RAM_ON #define CFG_HIBERNATION_REMAP REMAP_ADDR0_TO_RAM1 #define CFG_HIBERNATION_PAD_LATCH_EN false #endif
4.在user_peripheral _setup.h文件中,配置GPIO,用于将设备从休眠模式唤醒。在本例中,我们选择P0_5作为唤醒GPIO。
#define HIB_WAKE_UP_PORT GPIO_PORT_0 #define HIB_WAKE_UP_PIN GPIO_PIN_5 #define HIB_WAKE_UP_PIN_MASK (1 << HIB_WAKE_UP_PIN) #endif .使用实例
5.在user_config.h中修改发布周期为5秒。5秒后设备将停止广告并进入休眠模式。
静态常量struct default_handlers_configuration user_default_hnd_conf ={/ /配置默认处理程序使用的广告操作/ /可能值:/ / - DEF_ADV_FOREVER / / DEF_ADV_WITH_TIMEOUT .adv_scenario = DEF_ADV_WITH_TIMEOUT / /配置广告DEF_ADV_WITH_TIMEOUT的时期。//以计时单位(3分钟)测量。.advertise_period = MS_TO_TIMERUNITS(5000), //配置默认处理程序的安全启动操作//如果启用了安全(CFG_APP_SECURITY) //可能的值:// - DEF_SEC_REQ_NEVER // - DEF_SEC_REQ_ON_CONNECT .security_request_scenario = DEF_SEC_REQ_NEVER};
6.构建项目。
7.从SmartSnippets工具箱打开Power Profiler。您将需要通过UART/SPI连接以启用功率分析器工具。按“初始化”和“开始”
8.将固件下载到System-RAM中。
9.系统将开始广告5秒,然后进入休眠模式。请检查附件中我安装的截图。当前在休眠mod的消耗大约是1.8uA。如果休眠电流在这个值附近,那么使用您的工具来测量它,以便进行更好的测量。
所以在做了一些挖掘和再次尝试之后,我决定换用WLCSP17子板而不是QFN24子板。令我惊讶的是,这解决了我的问题。在仔细检查原理图时,我注意到24引脚部分上有一些I/O引脚没有连接到17引脚部分上。去掉J8和J19上所有的跳线将我目前的消耗降低到700nA。经过一些试验和错误,它看起来像J8引脚1和2上的跳线会导致电流消耗增加26uA。我不确定这是否是唯一的我的板,但如果不是,我认为删除这个跳线应该包括在教程中列出的步骤。
非常感谢您宝贵的反馈。在J8引脚1和2上设置跳线,激活了映射在P0_9上的C_TRIG触发。那个pin只有在QFN24包上可用!我已经让团队知道了这一点,我们将在下周初进行一些测试。我会随时通知你的!
嗨djames,
感谢您在我们的公共蓝牙论坛发帖,很高兴您一直在使用我们的新Smartbond设备。在“休眠模式教程”中,有3种休眠模式配置(使用SPI Flash/SysRAM/OTP)。你能告诉我你是在哪种情况下测量200-400 uA吗?如果使用SysRAM,是否附加调试器?另外,哪些RAM块被保留?如果你能把这些解释告诉我,那就太好了。
谢谢,PM_Dialog
我目前使用的是SysRAM配置。对于SysRAM配置,我尝试了附加调试器和不附加调试器(物理上),并使用Keil和SmartSnippets工具对其进行编程。假设头文件中的配置被正确传递,所有3个RAM块都是打开的。我猜这就是电流增加的原因吧?
嗨djames,
如果附加了调试器(来自Arm Keil IDE),这将阻止系统进入任何睡眠模式。您不需要删除物理调试器,只需按两次“启动/停止调试会话”按钮。你能指出SPI跳线是否在J1标头中?请试着卸载SPI跳线。然后,我建议您使用SmartSnippets工具箱中的Power分析器,检查设备是否停止发布广告并进入休眠状态。在hibernate教程中,使用了18秒超时的广告,所以设备会在18秒后进入休眠模式。
谢谢,PM_Dialog
所以我能够在大约18秒后通过休眠模式的设置将功耗降至27ua。SPI跳线被移除了,我正在以buck模式运行3.3V。该测量使用安捷伦34465A DMM进行。我肯定还是做错了什么,但把板子从调试模式中拿出来确实有很大帮助。但我不确定剩下的问题是什么。
嗨djames,
你能不能试试DA14531配置休眠模式为了让DK进入休眠模式的SW例子?你能检测到功耗的任何变化吗?我们所有的SW例子(包括休眠模式的SW例子)都不包含SDK,所以你应该把它们和SDK链接起来。请按照手册中描述的步骤操作使用Python Link脚本安装软件示例文档。
谢谢,PM_Dialog
感谢发送示例代码。这略微降低了当前的消费,但只是勉强。之前我测量的是27.3 uA现在我测量的是26.9 uA。
嗨djames,
我跑的DA14531睡眠模式教程(HTML)休眠电流为~1.8 uA。我用DA14531 Pro-DK的smartnippets工具箱的功率分析器测量了它。跳线的放置如图5所示:硬件设置中放置了jtag跳线
1.在user_proxr.h中定义cfg_app_goto_hibernate宏
2.注释掉以下代码片段是user_prox.h中的代码片段
3.打开所有三个RAM块,将地址0重新映射到SysRAM,如下图所示:
4.在user_peripheral _setup.h文件中,配置GPIO,用于将设备从休眠模式唤醒。在本例中,我们选择P0_5作为唤醒GPIO。
5.在user_config.h中修改发布周期为5秒。5秒后设备将停止广告并进入休眠模式。
6.构建项目。
7.从SmartSnippets工具箱打开Power Profiler。您将需要通过UART/SPI连接以启用功率分析器工具。按“初始化”和“开始”
8.将固件下载到System-RAM中。
9.系统将开始广告5秒,然后进入休眠模式。请检查附件中我安装的截图。当前在休眠mod的消耗大约是1.8uA。如果休眠电流在这个值附近,那么使用您的工具来测量它,以便进行更好的测量。
谢谢,PM_Dialog
所以在做了一些挖掘和再次尝试之后,我决定换用WLCSP17子板而不是QFN24子板。令我惊讶的是,这解决了我的问题。在仔细检查原理图时,我注意到24引脚部分上有一些I/O引脚没有连接到17引脚部分上。去掉J8和J19上所有的跳线将我目前的消耗降低到700nA。经过一些试验和错误,它看起来像J8引脚1和2上的跳线会导致电流消耗增加26uA。我不确定这是否是唯一的我的板,但如果不是,我认为删除这个跳线应该包括在教程中列出的步骤。
嗨djames,
非常感谢您宝贵的反馈。在J8引脚1和2上设置跳线,激活了映射在P0_9上的C_TRIG触发。那个pin只有在QFN24包上可用!我已经让团队知道了这一点,我们将在下周初进行一些测试。我会随时通知你的!
谢谢,PM_Dialog