DA14580
基本开发套件
SDK 5.0.3.
你好,对话 -
我们正在继续开发基于BLE_APP_PHERIANTAL示例的电池供电的BLE设备。我已经设置到延长睡眠并使用App_easy_Timer回调以1秒钟间隔唤醒外设,以示出传感器数据并存储ADC读数。当我唤醒外围设备时,我不会唤醒BLE功能....并且不希望最小化电池电量。传感器读数后,我想返回延长睡眠,直到下一个传感器读取间隔。这一切都在功能上工作,但最近的功率分析表明,在唤醒到记录样本后,我不会重新进入完全扩展的睡眠模式。我希望使用扩展的睡眠模式配置,这将发生在主循环中,但这似乎不会发生这种情况。我在传感器采样例程的末尾放置了Arch_ble_ext_WakeUp_On(),但它似乎也不会将我恢复为完全扩展的睡眠模式。
我尝试执行相同的代码而不唤醒外围设备和采样传感器数据,并确认实现了延长的睡眠。
我需要做些什么来返回低扩展睡眠模式电源?
再次感谢,最大
设备:
嗨max44,
如果没有BLE操作,580将自动下降睡眠,内核定时器需要BLE核心以唤醒,因此当计时器将在要触发的时间器时自动唤醒BLE核心,之后,您应该拍摄测量,580将恢复睡眠,并将关闭外围设备。580将经过主循环,以便执行计时器的处理程序,因为调度消息位于主循环中的函数。现在考虑到你的设备不睡觉,你确定这是这种情况吗?您是否在测量时调用ARCH_DISABLE_SLEEP()?您是否在Pro Board上使用电源分布器检查,以确保您的设备无法睡眠?
谢谢mt_dialog.
公吨,
谢谢(你的)信息。我们建立了电流的克隆到电压转换电路,以便我们手上有类似的部件。我们看到的基线电流在已知的延长睡眠模式中肯定远低于我们在外围样本之间看到的。
为了提供更详细的详细信息,请执行测试:程序初始化并开始正常的BLE操作(与BLE_APP_PERIZEAL示例相同)。开发调试和UART配置为OFF,配置了扩展休眠模式。我经常通过keil加载到退出调试器的RAM来运行该程序。我也通过从EEPROM引导来运行。延迟10秒后,我调用延长睡眠并启动1秒计时器。在一个第二个定时器回调中,我使用periph_init()函数来打开外围设备。我不打电话给arch_disable_sleep()。然后,我运行几个ADC样本,将结果存储在RAM阵列中。在发起EEPROM页面写入之前,我在EEPROM数据中累计256字节页面。这将每64秒发生一次。 At the end of the one second sample routine I release the EEPROM, return the pads to the power on state, restart the 1 second timer, call arch_ble_ext_wakeup_on(), then exit. This repeats endlessly looping through sections of the EEPROM to see how long the battery lasts.
所以.....我有一个这个程序的版本,只是进入延长的睡眠,然后是一个无限循环,而不运行上面的外设样本来验证延长睡眠。回想一下,在BLE广告完成后,您就会为我提供建议,它完美地工作。电源分布器显示低电流,我们在我们的设计中测量了这左右2 UA。
运行通过ADC样本的程序的程序版本,一秒在1秒样本之间没有显示相同的低电流,就像在扩展睡眠模式下停止时一样。
我正处于起草第二个测试设置的中间,并将验证所有这些测试。同时,如果您看到任何内容,请告诉我,我在上面看不太正确。
谢谢,最大
嗨max44,
据我所知,我看不到会导致睡眠模式取消的东西,是否可以附上电源分布式快照来检查当前的消耗吗?您是否确定您看到的功耗增加是580,而不是任何电源和消耗能量的其他组件?
谢谢mt_dialog.
公吨,
一个很好的观点。让我在外部组件的状态下仔细看,看看我是否可以关闭一些东西以验证额外的电力拉伸是否来自于此。我们期待一些额外的当前,但以为这将是最小的。我会报告。
问候,最大
公吨,
你是对的。我终于跟踪了在ADC示例例程中配置GPIO输出的问题,以配置GPIO输出作为范围触发器。引脚具有外部上拉,导致GPIO在非活动状态时将GPIO沉入300UA,默认状态。我的错,我羞于承认。:(
但是,我重视您对操作的审查。这是良好的确认我们可以预期在定期ADC样本后掉回延长睡眠模式,我现在在纠正违规GPIO之后看到。一切都运行良好,我们处于调谐电源和测量电池寿命的阶段。
考虑这解决了。再次感谢良好的支持。
最大限度
嗨max44,
谢谢你让我们知道,很高兴我可以帮忙。
最好的问候mt_dialog.